如何使用Python程序中的youtube-dl

我想访问shell命令的结果:

youtube-dl -g "www.youtube.com..." 

将其输出direct url打印到文件; 从一个Python程序:

 import youtube-dl fromurl="www.youtube.com ...." geturl=youtube-dl.magiclyextracturlfromurl(fromurl) 

那可能吗 ? 我尝试了解源代码中的机制,但是丢失了: youtube_dl/__init__.pyyoutube_dl/youtube_DL.pyinfo_extractors

这并不困难, 实际上也有logging :

 import youtube_dl ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s'}) with ydl: result = ydl.extract_info( 'http://www.youtube.com/watch?v=BaW_jenozKc', download=False # We just want to extract the info ) if 'entries' in result: # Can be a playlist or a list of videos video = result['entries'][0] else: # Just a video video = result print(video) video_url = video['url'] print(video_url) 

这是一个方法。

我们在列表中设置选项的string,就像我们设置命令行参数一样。 在这种情况下opts=['-g', 'videoID'] 。 然后,调用youtube_dl.main(opts) 。 这样,我们编写自定义的.py模块, import youtube_dl ,然后调用main()函数。

如果youtube-dl是一个terminal程序,你可以使用subprocess模块来访问你想要的数据。

查看这个链接了解更多细节: 在Python中调用外部命令

我想这个

 from subprocess import call command = "youtube-dl https://www.youtube.com/watch?v=NG3WygJmiVs -c" call(command.split(), shell=False) 

使用unix系统中已经安装了youtube-dl的subprocess,我可以编写这个脚本。 希望它能提供一些实际的见解

https://www.quora.com/What-are-the-best-Python-scripts-youve-ever-written/answer/Prasanna-Kumar-92?; snids = 850206706& idx = 0