本页面介绍了 youtube-dl 中用于提取、处理和嵌入元数据(如视频标题、描述和缩略图)以及将字幕嵌入下载的媒体文件中的元数据和字幕处理系统。这些系统作为后处理流水线的一部分运行,在媒体内容成功下载后执行。
有关格式转换后处理的信息,请参阅格式转换。
来源: youtube_dl/postprocessor/embedthumbnail.py28-133
元数据和字幕处理在 youtube-dl 的后处理系统中进行。在视频文件下载后,后处理器按顺序运行,以根据用户偏好修改文件。
来源: youtube_dl/extractor/rtve.py173-179
youtube-dl 中的元数据处理包括从源平台提取媒体内容信息,对其进行适当格式化,然后将其嵌入下载的文件中。
系统处理各种类型的元数据,包括:
| 元数据类型 | 描述 | 来源 |
|---|---|---|
| 基本信息 | 标题、描述、上传日期等。 | 提取器的信息字典 |
| 媒体信息 | 时长、格式、分辨率等。 | 媒体检查和提取 |
| 缩略图 | 视频缩略图/专辑封面 | 平台特定的缩略图 URL |
| 播放列表 | 播放列表信息、曲目编号 | 播放列表提取器 |
| 章节 | 视频章节标记 | 平台特定的提取器 |
来源: youtube_dl/extractor/rtve.py162-171
来源: youtube_dl/postprocessor/embedthumbnail.py33-133
字幕处理负责从各种平台提取、转换和可能的嵌入字幕轨道。
youtube-dl 支持多种字幕格式:
| 格式 | 扩展 | 描述 |
|---|---|---|
| WebVTT | .vtt | Web Video Text Tracks 格式 |
| SubRip | .srt | SubRip 文本格式 |
| Timed Text | .ttml | Timed Text Markup Language |
| LRC | .lrc | 歌词/卡拉 OK 格式 |
| JSON | .json | 平台特定的 JSON 字幕格式 |
来源: youtube_dl/extractor/rtve.py173-179
来源: youtube_dl/extractor/rtve.py173-179
字幕提取过程因平台而异。例如,在 RTVE 提取器中,字幕从 JSON 文件中提取。
来源: youtube_dl/extractor/rtve.py173-179
RTVEALaCartaIE 中的实现展示了如何提取字幕。
sbtFile 键定位。_get_subtitles 方法下载包含字幕信息的 JSON 文件。缩略图嵌入是一种特殊的元数据处理形式,它将视频缩略图或专辑封面嵌入媒体文件中。
来源: youtube_dl/postprocessor/embedthumbnail.py24-133
EmbedThumbnailPP 类提供了将缩略图嵌入媒体文件的功能。该过程包括:
为确保跨平台兼容性,youtube-dl 使用各种兼容性函数来处理不同的 Python 版本和操作系统。
来源: youtube_dl/compat.py1-50 youtube_dl/extractor/rtve.py9-13 youtube_dl/swfinterp.py7-10
compat 模块提供了许多用于确保 Python 2 和 3 之间一致性的函数。
compat_str。compat_urllib_parse。compat_struct_unpack。compat_b64decode。这些函数在元数据和字幕处理代码中广泛使用,以一致地处理编码/解码和数据结构。
提取器负责从源平台收集元数据和字幕信息。
来源: youtube_dl/extractor/rtve.py145-171
像 RTVEALaCartaIE 这样的提取器会将包括元数据和字幕信息在内的信息字典填充。
一些元数据和字幕处理操作依赖于外部工具。
| 工具 | 目的 | 用途 |
|---|---|---|
| FFmpeg | 格式转换、元数据嵌入 | 多个后处理器 |
| AtomicParsley | MP4/M4A 文件的元数据嵌入 | EmbedThumbnailPP |
来源: youtube_dl/postprocessor/embedthumbnail.py80-129
不同的文件格式在元数据和字幕处理方面需要不同的方法。
| 格式 | 元数据工具 | 字幕嵌入 |
|---|---|---|
| MP3 | FFmpeg | 外部 .srt/.vtt 文件 |
| MP4 | AtomicParsley/FFmpeg | 可嵌入为轨道 |
| MKV | FFmpeg | 可嵌入为轨道 |
| FLV | 有限支持 | 有限支持 |
来源: youtube_dl/postprocessor/embedthumbnail.py80-129
youtube-dl 中的元数据和字幕处理系统提供了强大的功能,用于通过丰富的元数据和字幕内容来增强下载的媒体文件。这些系统与提取器和其他后处理器协同工作,提供完整的媒体下载体验,使用户能够与媒体内容本身一起保留重要的上下文信息。