![如何使用脚本将 JPG 缩略图嵌入到 ogg/opus 音频文件中?](https://linux22.com/image/146537/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%E5%B0%86%20JPG%20%E7%BC%A9%E7%95%A5%E5%9B%BE%E5%B5%8C%E5%85%A5%E5%88%B0%20ogg%2Fopus%20%E9%9F%B3%E9%A2%91%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%9F.png)
我正在使用 youtube-dl 下载 ogg 音频文件及其各自的缩略图,但我不确定如何将缩略图嵌入到音频文件中。
答案1
Ogg 格式不支持显式嵌入图像。您可以做的是将图像转换为 base64 并将其添加到自定义标签/注释下。
你可以检查这个问答更多细节
答案2
这个问题已在这问题。但是,它尚未合并,因此尚未通过正式版本提供。此外,您可能已经下载了作品文件和缩略图。
我使用这个脚本,它会遍历文件夹中以结尾的所有文件,并添加以缩略图opus
结尾的相应文件。jpg
您需要确保两个文件都存在并且具有相同的名称,没有实施安全检查。
我只是复制粘贴了代码的一部分三脉冲在上述问题中实施。所有功劳都归于三脉冲。它需要mutagen
python 包,可以通过pip
.
#!/usr/bin/env python3
from glob import glob
from mutagen.oggopus import OggOpus
from mutagen.flac import Picture
from base64 import b64encode
ext_audio = 'opus'
ext_thumb = 'jpg'
for f in glob('*.{}'.format(ext_audio)):
thumb = f.rstrip(ext_audio) + ext_thumb
covart = Picture()
covart.data = open(thumb, 'rb').read()
covart.type = 3 # Cover (front)
audio = OggOpus(f)
audio['metadata_block_picture'] = b64encode(covart.write()).decode('ascii')
audio.save()