目的:解放双手自动保存备份油管视频和批量下载岛TV视频

追星用,傻瓜向,废话流水账,菜狗的乱折腾
目的是解放双手自动保存备份油管视频,核心脚本是 yt-dlp
运行需要python环境,官方建议3.6+,搭配ffmpeg一起使用
一切的安装和操作环境全基于墙外,请在墙内的朋友自动设置科学上网

yt-dlp 其实就是 youtube-dl 的一个分支版本,所用功能和命令指示可以无缝切换
之所以选用yt-dlp,是因为youtube-dl下载保存油管视频时遭到了限速,最高只能80左右K/s
除了油管,脚本还支持下载bilibili、niconico、tiktok、爱奇艺、芒果TV、网易云、QQ音乐等平台
以及虽然官网支持列表里没有列,但是经本人实绩操作验证岛TV的视频也可以轻松下载
详情请参照 官方支持列表

📝 Windows 电脑系统环境安装教程
📝 Linux Ubuntu 18.04 LTS x64 安装教程
📝 脚本命令参数简译及使用参考

----------

Windows 电脑系统环境安装教程

1. 安装python环境

1.进入python官方下载页,脚本建议python 3.6+,所以我们选择下载python3,

32位还是64位依照你的系统来,建议安装64位

2.执行安装程序,记得勾选 Add Python 3.X to PATH (将Python 3.X 新增到 PATH),执行安装

安装完成以后,打开 Windows 的命令行程序(CMD命令提示符)
在窗口中输入python命令(注意字母p是小写的),
如果出现 Python 的版本信息,并看到命令提示符>>>,就说明安装成功了,如下图所示。

按下Ctrl+Z快捷键,或者输入exit()命令即可退出交互式编程环境,回到 Windows 命令行程序。

2. 安装pip

1.在Python官网上下载Windows版本pip安装包,下载地址:https://pypi.org/project/pip/#files

2.解压文件夹,复制文件夹的路径,路径中不要含有中文和特殊字符

3.CMD命令提示符,输入cd 文件夹路径

cd pip解压文件夹路径

4.输入python setup.py install运行安装

python setup.py install


在CMD控制台输入python -m pip --version,出现版本号则成功安装

如果显示'pip'不是内部命令,也不是可运行的程序,
说明缺少环境变量,需要在系统环境变量PATH中添加环境变量

3. 安装ffmpeg

1.进入官网,选择需要下载的文件,官方网址:http://ffmpeg.org/download.html#build
windows系统下需要下载二进制文件,我选择通过红色windows标识框选出进入新的页面下载


2.解压文件夹,复制bin文件夹的路径,路径中不要含有中文和特殊字符

3.计算机-属性-高级系统设置-环境变量-系统变量-Path-编辑,将bin文件夹路径添加进去,确定即可
该设置是win10设置,其他的系统可能需要通过";"分割

验证有没有安装成功可以通过CMD命令提示符,输入ffmpeg -version,如出现版本号则安装成功

4. 安装yt-dlp

上述基础环境设置完成后,即可通过pip轻松安装yt-dlp

python -m pip install -U yt-dlp

如果提示 Python was not found; XXXXX,则可尝试将python替换为python3py

升级yt-dlp

yt-dlp -U



Linux Ubuntu 18.04 LTS x64 安装教程

服务器运营商:Vltur
系统版本:Ubuntu 18.04 LTS x64

正常情况安装

sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp

sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp

简单粗暴pip安装流

python3 -m pip install -U yt-dlp

一个接着前文配置ins下载的设置和修改流水帐

因为前文录制ins时逃避了python3造成的脚本错误,安装的是python2.7
因此在这里需要利用linux python版本可共存的特性额外进行修改安装python3

安装 python3

apt install python

安装 pip3

apt install python3-pip

修改默认python版本

首先先查看系统中有那些Python版本

ls /usr/bin/python*


再查看目前系统默认的Python版本:

python --version

可以得知系统中安装了python2.7(默认)和python3.6
删除默认的Python软链接

sudo rm /usr/bin/python

创建一个新的软链接指向需要的Python版本

sudo ln -s /usr/bin/python3.6 /usr/bin/python

这样系统默认的python版本就是python3.6了
于此同时前文PyInstaStories脚本使用代码中python pyinstastories.py XXXXpython
需修改为系统中安装的python 2.X版本,即

python2.7 pyinstastories.py --username ins帐号用户名 --password ins帐号密码 -d 目标ins帐号IDA 目标ins帐号IDB 目标ins帐号IDC --taken-at --hq-videos



脚本命令参数简译及使用参考

1. 标准用法

因为yt-dlp的参数指令和youtube-dl完全一致,
所以最基本的格式是 yt-dlp [OPTIONS] URL [URL...]
可以在下载链接加上双引号,以应对地址中含有特殊符号而可能导致的错误

2. 个人常用案例

Youtube视频

以最高画质和音质下载该视频or该帐号的全部视频,视频文件将以【日期 - 视频标题 (视频ID).格式】的命名方式保存于 当前文件夹/youtube帐号/ 下,并同时保存嵌入视频封面。下载过的视频将保存记录,下次执行相同指令时将跳过不重复下载
-u "你的油管帐号ID" -p "你的油管帐号密码" 可加可不加,如有需要下载仅关注才可见的隐藏和shorts视频

yt-dlp -o '%(uploader)s/%(upload_date)s - %(title)s (%(id)s).200B.%(ext)s' --download-archive archive.txt -f "bv+ba/b" --write-thumbnail --embed-thumbnail -u "你的油管帐号ID" -p "你的油管帐号密码" --ignore-errors "视频地址or主页地址"

上述代码可以设置定期自动执行,以自动抓取保存youtube帐号新投稿的视频
同时可以通过--batch-file进行批量油管帐号自动抓取(一行一个网址)
有地区限制的视频请自行设置代理

批量下载岛TV视频

岛TV视频就没有很快捷的一键下载方式了,但是通过--batch-file可以将需要下载的视频罗列在一个txt文件中(一行一个网址),一次性批量下载

yt-dlp -o '%(upload_date)s-%(title)s.200B.%(ext)s' --download-archive archive.txt -f "bv+ba/b" --batch-file 批量地址txt路径

通用下载公式

yt-dlp -o '%(upload_date)s-%(title)s.200B.%(ext)s' -f "bv+ba/b" "视频地址"

视频地址里也可填入M3U8或Dash串流地址,以便下载直播视频
有地域限制的视频请自行设置对应的代理

-o '%(upload_date)s-%(title).200Bs.%(ext)s'改写标题名为 上传日期 - 视频标题名.格式
更多改写规则具体参考-o 输出模板,可用可不用,这边是为了方便排序所以增加了上传时间
在下载诸如TikTok和推特视频时因文件名太长而造成无法下载视频的报错,可以通过在命名输出里增加字节限制来解决
.80s上限80个字 或 .200B上限200字符数

-f "bv+ba/b"为下载最高规格的原生音质和原生画质,格式不局限于mp4
油土鳖支持的mp4格式视频清晰度最高只有1080p,2k、4k清晰度原生画质只有webm格式
如果想要2K、4K清晰度的MP4视频需要额外转码,例如增加--recode-video mp4指令
如果油土鳖只想下载最高1080的MP4格式可以用-f 136/137/mp4/bestvideo,140/m4a/bestaudio
更加细节的转码格式配置可以参考ffmpeg的转码视频参数设置

-u "用户名" -p "密码"一些需要登陆才可以查看的视频可通过该指令登陆
​-video-password "视频密码"对应一些设置了视频密码的视频(像vimeo、优土豆)

--write-sub下载视频自带的字幕文件
--all-subs下载视频所有可用的字幕文件

--convert-subs 格式转换字幕格式(当前支持: srt|ass|vtt)
--embed-subs在视频中嵌入字幕(仅适用于mp4,webm和mkv视频)

--write-thumbnail下载视频缩略图
--embed-thumbnail将缩略图嵌入音频作为封面艺术

3. 参数简译

官方文档:https://github.com/yt-dlp/yt-dlp
翻译引用元:https://www.jianshu.com/p/2a7244199bfa

1. 通用选项

-h, --help                       打印帮助文档
--version                        打印版本信息
-U, --update                     更新到最新版(需要权限)
-i, --ignore-errors              遇到下载错误时跳过
--abort-on-error                 遇到下载错误时终止
--dump-user-agent                显示当前使用的浏览器(User-agent)
--list-extractors                列出所有的提取器(支持的网站)
--extractor-descriptions         同上
--force-generic-extractor        强制使用通用提取器下载
--default-search PREFIX          使用此前缀补充不完整的URLs,例如:"ytsearch2 yt-dl" 从youtube搜索并下载两个关于yt-dl视频. 使用"auto"youtube-dl就会猜一个,一般效果等价于"ytsearch"("auto_warning"猜测时加入警告).我已知支持的PREFIX:ytsearch (youtube), ytsearchdate (youtube), yvsearch (yahoo videos), gvsearch (google videos)
--ignore-config                  不读取配置文件,当时用了全局配置文件/etc/youtube-dl.conf:不再读取 ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)
--config-location PATH           使用指定路径下的配置文件
--flat-playlist                  列出列表视频但不下载
--mark-watched                   标记看过此视频 (YouTube only)
--no-mark-watched                不标记看过此视频 (YouTube only)
--no-color                       打印到屏幕上的代码不带色 

2. 网络选项

--proxy URL                      使用HTTP/HTTPS/SOCKS协议的代理.如:socks5://127.0.0.1:1080/.
--socket-timeout SECONDS         放弃连接前等待时间
--source-address IP              绑定的客户端IP地址
-4, --force-ipv4                 所有连接通过IPv4
-6, --force-ipv6                 所有连接通过IPv6

3. 地理限制

--geo-verification-proxy URL     使用此代理地址测试一些有地理限制的地址
--geo-bypass                     绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
--no-geo-bypass                  不 绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
--geo-bypass-country CODE        强制绕过地理限制通过提供准确的ISO 3166-2标准的国别代码(实验) 注:以上三个实验参数实测未成功

4. 视频选择

--playlist-start NUMBER          指定列表中开始下载的视频(默认为1)
--playlist-end NUMBER            指定列表中结束的视频(默认为last)
--playlist-items ITEM_SPEC       指定列表中要下载的视频项目编号.如:"--playlist-items 1,2,5,8"或"--playlist-items 1-3,7,10-13"
--match-title REGEX              下载标题匹配的视频(正则表达式或区分大小写的字符串)
--reject-title REGEX             跳过下载标题匹配的视频(正则表达式或区分大小写的字符串)
--max-downloads NUMBER           下载NUMBER个视频后停止
--min-filesize SIZE              不下载小于SIZE的视频(e.g. 50k or 44.6m)
--max-filesize SIZE              不下载大于SIZE的视频(e.g. 50k or 44.6m)
--date DATE                      仅下载上传日期在指定日期的视频
--datebefore DATE                仅下载上传日期在指定日期或之前的视频 (i.e. inclusive)
--dateafter DATE                 仅下载上传日期在指定日期或之后的视频 (i.e. inclusive)
--min-views COUNT                不下载观影数小于指定值的视频
--max-views COUNT                不下载观影数大于指定值的视频
--match-filter FILTER            通用视频过滤器. Specify any key (see help for -o for a list of available keys) to match if the key is present, !key to check if the key is not present, key > NUMBER (like "comment_count > 12", also works with >=, <, <=, !=, =) to compare against a number,key = ‘LITERAL‘ (like "uploader = ‘Mike Smith‘", also works with !=) to match against a string literal and & to require multiple matches. Values which are not known are excluded unless you put a question mark (?) after the operator. For example, to only match videos that have been liked more than 100 times and disliked less than 50 times (or the dislike functionality is not available at the given service), but who also have a description, use --match-filter "like_count > 100 & dislike_count <? 50 & description" .
--no-playlist                    当视频链接到一个视频和一个播放列表时,仅下载视频
--yes-playlist                   当视频链接到一个视频和一个播放列表时,下载视频和播放列表
--age-limit YEARS                下载合适上传年限的视频
--download-archive FILE          仅下载档案文件中未列出的影片,已下载的记录ID
--include-ads                    同时下载广告(实验)

5. 下载选项

-r, --limit-rate RATE            最大bps (e.g. 50K or 4.2M)
-R, --retries RETRIES            重试次数 (默认10), or "infinite".
--fragment-retries RETRIES       一个分段的最大重试次数(default is 10), or "infinite" (DASH, hlsnative and ISM)
--skip-unavailable-fragments     跳过不可用分段(DASH, hlsnative and ISM)
--abort-on-unavailable-fragment  放弃某个分段当不可获取时
--keep-fragments                 下载完成后,将下载的片段保存在磁盘上; 片段默认被删除
--buffer-size SIZE               设置缓冲区大小buffer (e.g. 1024 or 16K) (default is 1024)
--no-resize-buffer               不自动调整缓冲区大小.默认情况下自动调整
--playlist-reverse               以相反的顺序下载播放列表视频
--playlist-random                以随机的顺序下载播放列表视频
--xattr-set-filesize             Set file xattribute ytdl.filesize with expected file size (experimental)
--hls-prefer-native              使用本机默认HLS下载器而不是ffmpeg
--hls-prefer-ffmpeg              使用ffmpeg而不是本机HLS下载器
--hls-use-mpegts                 使用TS流容器来存放HLS视频,一些高级播放器允许在下载的同时播放视频
--external-downloader COMMAND    使用指定的第三方下载工具,当前支持:aria2c,avconv,axel,curl,ffmpeg,httpie,wget
--external-downloader-args ARGS  给第三方下载工具指定参数,如:--external-downloader aria2c --external-downloader-args -j8

6. 文件系统选项

-a, --batch-file FILE            文件中包含需要下载的URL
--id                             仅使用文件名中的视频ID
-o, --output TEMPLATE            Output filename template, see the "OUTPUT TEMPLATE" for all the info
--autonumber-start NUMBER        指定%(autonumber)s的起始值(默认为1)
--restrict-filenames             将文件名限制为ASCII字符,并避免文件名中的“&”和空格
-w, --no-overwrites              不要覆盖文件
-c, --continue                   强制恢复部分下载的文件。 默认情况下,youtube-dl仅在可能时将恢复下载。
--no-continue                    不要恢复部分下载的文件(从头开始重新启动)
--no-part                        不使用.part文件 - 直接写入输出文件
--no-mtime                       不使用Last-modified header来设置文件最后修改时间
--write-description              将视频描述写入.description文件
--write-info-json                将视频元数据写入.info.json文件
--write-annotations              将视频注释写入.annotations.xml文件
--load-info-json FILE            包含视频信息的JSON文件(使用“--write-info-json”选项创建)
--cookies FILE                   文件从中读取Cookie(经测试,export cookies插件可以使用,但firebug导出的cookies导致错误,chrome下请用cookies.txt)注意:不同平台windows、Linux、OSX之间需要转换CE LF才能使用!
--cache-dir DIR                  文件存储位置。youtube-dl需要永久保存一些下载的信息。默认为$XDG_CACHE_HOME/youtube-dl或/.cache/youtube-dl。目前,只有YouTube播放器文件(对于具有模糊签名的视频)进行缓存,但可能会发生变化。
--no-cache-dir                   不用缓存
--rm-cache-dir                   删除所有缓存文件

7. 缩略图

--write-thumbnail                把缩略图写入硬盘
--write-all-thumbnails           将所有缩略图写入磁盘
--list-thumbnails                列出所有可用的缩略图格式

8. 详细/模拟选项

-q, --quiet                      激活退出模式
--no-warnings                    忽略警告
-s, --simulate                   不下载不存储任何文件到硬盘,模拟下载模式
--skip-download                  不下载视频
-g, --get-url                    模拟下载获取视频直连
-e, --get-title                  模拟下载获取标题
--get-id                         模拟下载获取id
--get-thumbnail                  模拟下载获取缩略图URL
--get-description                模拟下载获取视频描述
--get-duration                   模拟下载获取视频长度
--get-filename                   模拟下载获取输出视频文件名
--get-format                     模拟下载获取输出视频格式
-j, --dump-json                  模拟下载获取JSON information.
-J, --dump-single-json           模拟下载获取每条命令行参数的JSON information.如果是个播放列表,就获取整个播放列表的JSON
--print-json                     下载的同时获取视频信息的JSON
--newline                        进度条在新行输出
--no-progress                    不打印进度条
--console-title                  在控制台标题栏显示进度
-v, --verbose                    打印各种调试信息
--dump-pages                     打印下载下来的使用base64编码的页面来调试问题(非常冗长)
--write-pages                    将下载的中间页以文件的形式写入当前目录中以调试问题
--print-traffic                  显示发送和读取HTTP流量
-C, --call-home                  联系youtube-dl服务器进行调试
--no-call-home                   不联系youtube-dl服务器进行调试

9. 解决方法

--encoding ENCODING              强制指定编码(实验)
--no-check-certificate           禁止HTTPS证书验证
--prefer-insecure                使用未加密的连接来检索有关视频的信息(目前仅支持YouTube)
--user-agent UA                  指定user agent
--referer URL                    指定自定义的referer,仅限视频来源于同一网站
--add-header FIELD:VALUE         指定一个自定义值的HTTP头文件,使用分号分割,可以多次使用此选项
--bidi-workaround                围绕缺少双向文本支持的终端工作。需要在PATH中有bidiv或fribidi可执行文件
--sleep-interval SECONDS         在每次下载之前休眠的秒数,或者每次下载之前的随机睡眠的范围的下限(最小可能的睡眠秒数)与-max-sleep-interval一起使用。
--max-sleep-interval SECONDS     每次下载前随机睡眠范围的上限(最大可能睡眠秒数)。只能与--min-sleep-interval一起使用。

10. 视频格式选项

-f, --format FORMAT              视频格式代码,查看"FORMAT SELECTION"获取所有信息
--all-formats                    获取所有视频格式
--prefer-free-formats            开源的视频格式优先,除非有特定的请求
-F, --list-formats               列出请求视频的所有可用格式
--youtube-skip-dash-manifest     不要下载关于YouTube视频的DASH清单和相关数据
--merge-output-format FORMAT     如果需要合并(例如bestvideo + bestaudio),则输出到给定的容器格式。mkv,mp4,ogg,webm,flv之一。如果不需要合并,则忽略

11. 字幕选项

--write-sub                      下载字幕文件
--write-auto-sub                 下载自动生成的字幕文件 (YouTube only)
--all-subs                       下载所有可用的字幕
--list-subs                      列出所有字幕
--sub-format FORMAT              字幕格式,接受格式偏好,如:"srt" or "ass/srt/best"
--sub-lang LANGS                 要下载的字幕的语言(可选)用逗号分隔,请使用--list-subs表示可用的语言标签

12. 验证选项

-u, --username USERNAME          使用ID登录
-p, --password PASSWORD          账户密码,如果此选项未使用,youtube-dl将交互式地询问。
-2, --twofactor TWOFACTOR        双因素认证码
-n, --netrc                      使用.netrc认证数据
--video-password PASSWORD        视频密码(vimeo, smotri, youku)

13. Adobe Pass 选项

--ap-mso MSO                     Adobe Pass多系统运营商(电视提供商)标识符,使用--ap-list-mso列出可用的MSO
--ap-username USERNAME           MSO账号登录
--ap-password PASSWORD           账户密码,如果此选项未使用,youtube-dl将交互式地询问。
--ap-list-mso                    列出所有支持的MSO

14. 后处理选项

-x, --extract-audio              将视频文件转换为纯音频文件(需要ffmpeg或avconv和ffprobe或avprobe)
--audio-format FORMAT            指定音频格式: "best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav"; "best" by default;-x存在时无效
--audio-quality QUALITY          指定ffmpeg/avconv音频质量,为VBR插入一个0(best)-9(worse)的值(默认5),或者指定比特率
--recode-video FORMAT            必要时将视频转码为其他格式(当前支持: mp4|flv|ogg|webm|mkv|avi)
--postprocessor-args ARGS        给后处理器提供这些参数
-k, --keep-video                 视频文件在后处理后保存在磁盘上; 该视频默认被删除
--no-post-overwrites             不要覆盖后处理文件; 默认情况下,后处理文件将被覆盖
--embed-subs                     在视频中嵌入字幕(仅适用于mp4,webm和mkv视频)
--embed-thumbnail                将缩略图嵌入音频作为封面艺术
--add-metadata                   将元数据写入视频文件
--metadata-from-title FORMAT     从视频标题中解析附加元数据,如歌曲标题/艺术家。格式语法和--output相似.也可以使用带有命名捕获组的正则表达式。解析的参数替换现有值。Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise". Example (regex): --metadata-from-title "(?P<artist>.+?) - (?P<title>.+)"
--xattrs                         将元数据写入视频文件的xattrs(使用dublin core 和 xdg标准)
--fixup POLICY                   自动更正文件的已知故障。never(不做警告), warn(只发出警告), detect_or_warn (默认;如果可以的话修复文件,否则警告)
--prefer-avconv                  后处理时相较ffmpeg偏向于avconv
--prefer-ffmpeg                  后处理优先使用ffmpeg
--ffmpeg-location PATH           ffmpeg/avconv程序位置;PATH为二进制所在文件夹或者目录.
--exec CMD                       在下载后对文件执行命令,类似于find -exec语法.示例:--exec‘adb push {} /sdcard/Music/ && rm {}‘
--convert-subs FORMAT            转换字幕格式(当前支持: srt|ass|vtt)

本地配置

可以通过将任何支持的命令行选项放置到配置文件来配置。
在 Linux 和 OS X 上,
系统范围的配置文件位于 /etc/yt-dlp.conf,用户范围的配置文件位于 ~/.config/yt-dlp/config
在Windows上,
用户范围的配置文件位置是 APPDATA\yt-dlp\config.txt 或 C:\Users\user name\yt-dlp.conf
默认情况下,配置文件可能不存在,所以可能需要自己创建它。

配置文件中的选项与常规命令行中所调用的选项相同,
因此在 - 或者 -- 后面不得包含空格,例如-o 或--proxy不能写成- o 或者-- proxy

可以使用--ignore-config来禁用配置文件,也可以使用--config-location启用自定义配置文件

输出模板

-o选项允许用户指定输出文件名称的模板
允许的名称和序列类型如下:

id (字符串):                     视频标识符
title (字符串):                  视频标题
url (字符串):                    视频网址
ext (字符串):                    视频文件扩展名
alt_title (字符串):              视频的次要标题
display_id (字符串):             视频的替代标识符
uploader (字符串):               视频上传器的全名
license (字符串):                视频许可的许可证名称
creator (字符串):                视频的创建者
release_date (字符串):           视频发布时的日期(YYYYMMDD)
timestamp (数字):                视频可用时的UNIX时间戳
upload_date (字符串):            视频上传日期(YYYYMMDD)
uploader_id (字符串):            视频上传器的昵称或ID
location (字符串):               视频被拍摄的物理位置
duration (数字):                 以秒为单位的视频长度
view_count (数字):               有多少用户在该平台上观看过视频
like_count (数字):               视频的正面评级的数量
dislike_count (数字):            视频的负面评级的数量
repost_count (数字):             视频的转贴次数
average_rating (数字):           用户给出的平均评分,使用的比例取决于网页
comment_count (数字):            视频上的评论数量
age_limit (数字):                视频年龄限制(年)
is_live (布尔值):                这个视频是一个实时流还是一个固定长度的视频
start_time (数字):               按照URL中的指定开始复制的时间(以秒为单位)
end_time (数字):                 按照URL中的指定,结束复制的时间(以秒为单位)
format (字符串):                 格式的可读描述
format_id (字符串):              指定的格式代码 --format
format_note (字符串):            关于格式的附加信息
width (数字):                    视频的宽度
height (数字):                   视频的高度
resolution (字符串):             宽度和高度的文本描述
tbr (数字):                      音频和视频的平均比特率,以KBit / s为单位
abr (数字):                      以KBit / s为单位的平均音频比特率
acodec (字符串):                 正在使用的音频编解码器的名称
asr (数字):                      以赫兹为单位的音频采样率
vbr (数字):                      以KBit / s为单位的平均视频比特率
fps (数字):                      帧率
vcodec (字符串):                 正在使用的视频编解码器的名称
container (字符串):              容器格式的名称
filesize (数字):                 如果预先知道的话,字节数
filesize_approx(数字):           字节数的估计值
protocol (字符串):               将用于实际下载的协议
extractor (字符串):              提取器的名称
extractor_key (字符串):          提取器的键名
epoch (数字):                    创建文件时的Unix纪元
autonumber (数字):               从零开始,每次下载将增加的五位数字
playlist (字符串):               包含视频的播放列表的名称或ID
playlist_index (数字):           根据播放列表的总长度填充前导零的播放列表中的视频索引
playlist_id (字符串):            播放列表标识符
playlist_title (字符串):         播放列表标题
playlist_uploader (字符串):      播放列表上传者的全名
playlist_uploader_id (字符串):   播放列表上传者的昵称或ID

可用于属于某个逻辑章节或部分的视频:

chapter (字符串):                视频所属章节的名称或标题
chapter_number (数字):           视频所属章节的编号
chapter_id (字符串):             视频所属章节的ID

可用于某个系列或节目的情节的视频:

series (字符串):                 该视频片段所属的系列或节目的标题
season (字符串):                 视频剧集所属季节的标题
season_number (数字):            视频片段属于的季节的数量
season_id (字符串):              视频片段属于的季节的ID
episode (字符串):                视频片段的标题
episode_number (数字):           一个季节内的视频片段的数量
episode_id (字符串):             视频情节的ID

适用于音乐专辑的音轨或音乐专辑的媒体:

track (字符串):                  曲目的标题
track_number (数字):             专辑或光盘中的曲目编号
track_id (字符串):               轨道的Id
artist (字符串):                 曲目的艺术家
genre (字符串):                  曲目的类型
album (字符串):                  曲目所属专辑的标题
album_type (字符串):             相册的类型
album_artist (字符串):           专辑中出现的所有艺术家列表
disc_number (数字):              轨道所属的光盘或其他物理介质的编号
release_year (数字):             发行专辑时的年(YYYY)

输出模板还可以包含任意的分层路径 '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s'
这将导致下载与该路径模板相对应的目录中的每个视频。任何丢失的目录将自动为您创建

最后修改:2022 年 07 月 29 日
如果觉得我的文章对你有用,请随意赞赏