|
@@ -529,51 +529,51 @@ youtube-dl makes the best effort to be a good command-line program, and thus sho
|
|
|
|
|
|
From a Python program, you can embed youtube-dl in a more powerful fashion, like this:
|
|
|
|
|
|
- ```python
|
|
|
- import youtube_dl
|
|
|
+```python
|
|
|
+import youtube_dl
|
|
|
|
|
|
- ydl_opts = {}
|
|
|
- with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
|
|
- ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
|
|
|
- ```
|
|
|
+ydl_opts = {}
|
|
|
+with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
|
|
+ ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
|
|
|
+```
|
|
|
|
|
|
Most likely, you'll want to use various options. For a list of what can be done, have a look at [youtube_dl/YoutubeDL.py](https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L69). For a start, if you want to intercept youtube-dl's output, set a `logger` object.
|
|
|
|
|
|
Here's a more complete example of a program that outputs only errors (and a short message after the download is finished), and downloads/converts the video to an mp3 file:
|
|
|
|
|
|
- ```python
|
|
|
- import youtube_dl
|
|
|
+```python
|
|
|
+import youtube_dl
|
|
|
|
|
|
|
|
|
- class MyLogger(object):
|
|
|
- def debug(self, msg):
|
|
|
- pass
|
|
|
+class MyLogger(object):
|
|
|
+ def debug(self, msg):
|
|
|
+ pass
|
|
|
|
|
|
- def warning(self, msg):
|
|
|
- pass
|
|
|
+ def warning(self, msg):
|
|
|
+ pass
|
|
|
|
|
|
- def error(self, msg):
|
|
|
- print(msg)
|
|
|
+ def error(self, msg):
|
|
|
+ print(msg)
|
|
|
|
|
|
|
|
|
- def my_hook(d):
|
|
|
- if d['status'] == 'finished':
|
|
|
- print('Done downloading, now converting ...')
|
|
|
+def my_hook(d):
|
|
|
+ if d['status'] == 'finished':
|
|
|
+ print('Done downloading, now converting ...')
|
|
|
|
|
|
|
|
|
- ydl_opts = {
|
|
|
- 'format': 'bestaudio/best',
|
|
|
- 'postprocessors': [{
|
|
|
- 'key': 'FFmpegExtractAudio',
|
|
|
- 'preferredcodec': 'mp3',
|
|
|
- 'preferredquality': '192',
|
|
|
- }],
|
|
|
- 'logger': MyLogger(),
|
|
|
- 'progress_hooks': [my_hook],
|
|
|
- }
|
|
|
- with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
|
|
- ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
|
|
|
- ```
|
|
|
+ydl_opts = {
|
|
|
+ 'format': 'bestaudio/best',
|
|
|
+ 'postprocessors': [{
|
|
|
+ 'key': 'FFmpegExtractAudio',
|
|
|
+ 'preferredcodec': 'mp3',
|
|
|
+ 'preferredquality': '192',
|
|
|
+ }],
|
|
|
+ 'logger': MyLogger(),
|
|
|
+ 'progress_hooks': [my_hook],
|
|
|
+}
|
|
|
+with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
|
|
+ ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
|
|
|
+```
|
|
|
|
|
|
# BUGS
|
|
|
|