python - YouTube-dl 从 Reddit 下载并命名视频

标签 python python-3.x youtube-dl praw

我已经能够编写我的第一个脚本了!它的作用是转到子 reddit,获取顶部提交,然后使用 youtube-dl 下载视频。 它有效!

import praw
import os

user_agent = "mybot"

r = praw.Reddit(user_agent=user_agent)

submissions = r.get_subreddit('unexpectedjihad').get_top(limit=10)
urls = []
def yt() :
    for x in submissions:
        urls.append(str(x.url))
    return urls

yt_urls = yt()

for item in yt_urls:
    print "downloading..." + " "
    os.system("youtube-dl" + " " + item)
    print "done"

接下来我要做的是让 Youtube-dl 将文件名设置为与 reddit 提交的标题相同。

我对于应该如何匹配标题视频和视频文件感到非常困惑。我该怎么办? 非常感谢

最佳答案

根据the docs ,您想将 -o 传递给 youtube-dl,例如:

for item in submissions:
   os.system('youtube-dl -o {}.%(ext)s {}'.format(item.title, item.url))

但是,考虑到由此可能产生的问题,直接嵌入 YDL 可能会更简单,例如:

import youtube_dl
# ... reddit stuff here ...

for item in submissions:
   # see options at https://github.com/rg3/youtube-dl/blob/master/youtube_dl/YoutubeDL.py#L89
   ydl_opts = {'outtmpl': item.title + '.%(ext)s'}
   with youtube_dl.YoutubeDL(ydl_opts) as ydl:
       ydl.download([item.url, ])

关于python - YouTube-dl 从 Reddit 下载并命名视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580940/

相关文章:

function - 编写函数的简单方法,该函数使用不同的给定输入执行不同的步骤

python - 用 Python 写一个 csv 文件 : error with function writerows

python - 如何从源代码重建 python youtube-dl

python - Odoo Python3 base64 错误 : TypeError: expected bytes-like object, 不是文本

python-3.x - AttributeError : 'str' object has no attribute 'write' , youtube-dl kivy

Android MediaPlayer Streaming YouTube 音频流意外的大声静态

python - scipy.stats.gamma 库中的参数 a 是什么

python - Matplotlib:事后更改颜色图

python - 如何连接多个文本或 xml 文件但省略每个文件中的特定行?

python - secret 圣诞老人计划