youtube-dl:设置元数据属性和嵌入python的缩略图?

时间:2015-11-20 21:45:39

标签: python youtube-dl

如何设置元属性并从实际的python代码中嵌入缩略图?我可以轻松地从命令行嵌入和添加元属性,例如:

youtube-dl https://www.youtube.com/watch?v=5wK5-ChsDsQ -x --audio-format mp3 --add-metadata --xattrs --embed-thumbnail --prefer-ffmpeg --postprocessor-args "-metadata comment='my comment'" -o 'yt_%(id)s_.mp3' --verbose

python代码的文档显示了一个基本示例,但没有任何高级内容,例如添加元数据和嵌入缩略图。

2 个答案:

答案 0 :(得分:2)

您必须添加后处理器:

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {
    'writethumbnail': True,
    'postprocessors': [
        {
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
        },
        {'key': 'EmbedThumbnail'},
        {'key': 'FFmpegMetadata'},
    ],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['http://www.youtube.com/watch?v=5wK5-ChsDsQ'])

答案 1 :(得分:0)

与python相比,我更喜欢使用命令,因为它具有充分解释的文档。因此,我建议您制作一个包含首选命令的bash脚本。然后运行将调用bash脚本并运行命令的python程序。

Linux:yt_script.sh:

#!/bin/sh
youtube-dl $1 -x --audio-format mp3 --add-metadata --xattrs --embed-thumbnail --prefer-ffmpeg --postprocessor-args "-metadata comment='my comment'" -o 'yt_%(id)s_.mp3' --verbose
exit 0

,然后在python文件中调用bash脚本,将URL作为参数。

python_program.py:

import subprocess
subprocess.call(["Path/to/yt_script.sh","https://www.youtube.com/watch?v=5wK5-ChsDsQ"])

不要忘记在终端中输入chmod u+x Path/to/yt_script.sh来验证bash脚本。

然后运行python /Path/to/python_program.py从终端运行程序。

您可能还需要将参数(youtube URL)传递给命令。 您可以通过如下编辑“ python_program.py”来做到这一点:

import subprocess
import sys
subprocess.call(["Path/to/yt_script.sh",sys.argv[1]])

然后您要做的就是打开终端,运行python程序,并在命令末尾添加YouTube URL,如下所示:python /Path/to/python_program.py https://www.youtube.com/watch?v=5wK5-ChsDsQ

我希望这可以清除一切!