Youtube-dl python library documentation

Is there any documentation for using youtube-dl as a python library in a project?

I know that I can use the main class, but I can not find any documentation or an example ...

import youtube_dl ydl = youtube_dl.YoutubeDL(params) ... ? 
+5
source share
3 answers

If you download the version from github , you can create sphinx documents that are useful for development. Then, using the pythons help function, usually gives some idea that the purpose of the function

 >>> import youtube_dl as yt >>> help(yt) 

In addition, I find ipython a useful tool for learning code using %edit magic.

 %edit yt.main 

will lead you directly to the source of the main function.

+4
source

The official documentation contains a section on embedding youtube-dl. You are on the right track;

 import youtube_dl with youtube_dl.YoutubeDL({}) as ydl: ydl.download(['http://www.youtube.com/watch?v=BaW_jenozKc']) 

- a good minimal program.

+3
source

similar question: How to use youtube-dl from python program

Check this file in the sources: https://github.com/rg3/youtube-dl/blob/master/youtube_dl/__init__.py

You need the dict options (originally created using parameters obtained from the command line):

 ydl_opts = { 'usenetrc': opts.usenetrc, 'username': opts.username, 'password': opts.password, # ... all options list available in sources 'exec_cmd': opts.exec_cmd, } 

and then instantiate YoutubeDL and call some methods with self- YoutubeDL names:

 with YoutubeDL(ydl_opts) as ydl: ydl.print_debug_header() ydl.add_default_info_extractors() # PostProcessors # Add the metadata pp first, the other pps will copy it if opts.addmetadata: ydl.add_post_processor(FFmpegMetadataPP()) if opts.extractaudio: ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, nopostoverwrites=opts.nopostoverwrites)) if opts.recodevideo: ydl.add_post_processor(FFmpegVideoConvertor(preferedformat=opts.recodevideo)) if opts.embedsubtitles: ydl.add_post_processor(FFmpegEmbedSubtitlePP(subtitlesformat=opts.subtitlesformat)) if opts.xattrs: ydl.add_post_processor(XAttrMetadataPP()) if opts.embedthumbnail: if not opts.addmetadata: ydl.add_post_processor(FFmpegAudioFixPP()) ydl.add_post_processor(AtomicParsleyPP()) # Please keep ExecAfterDownload towards the bottom as it allows the user to modify the final file in any way. # So if the user is able to remove the file before your postprocessor runs it might cause a few problems. if opts.exec_cmd: ydl.add_post_processor(ExecAfterDownloadPP( verboseOutput=opts.verbose, exec_cmd=opts.exec_cmd)) # Update version if opts.update_self: update_self(ydl.to_screen, opts.verbose) # Remove cache dir if opts.rm_cachedir: ydl.cache.remove() # Maybe do nothing if (len(all_urls) < 1) and (opts.load_info_filename is None): if not (opts.update_self or opts.rm_cachedir): parser.error(u'you must provide at least one URL') else: sys.exit() try: if opts.load_info_filename is not None: retcode = ydl.download_with_info_file(opts.load_info_filename) else: retcode = ydl.download(all_urls) except MaxDownloadsReached: ydl.to_screen(u'--max-download limit reached, aborting.') retcode = 101 
+2
source

Source: https://habr.com/ru/post/1205227/


All Articles