积极维护YouTube-DL GitHub回购

2020-10-29 10:31:47

Youtube-dl是youtube-dl的一个分支,目的是让社区测试的功能更快地合并到工具中,因为youtube-dl的开发似乎正在放慢脚步。(https://web.archive.org/web/20201014194602/https://github.com/ytdl-org/youtube-dl/issues/26462))。

或者,如果安装了pyinstaller,则只需执行make_win.bat。/dist中将有一个youtube-dlc.exe。

构建Windows的新方法是使用python pyinst.py(请使用python3 64位)作为32位版本,使用32位版本的python(此处也使用3位),然后运行python pyinst32.py。

对于Unix:您将需要所需的构建工具python、make(GNU)、pandoc、zip、nosetests,然后只需键入以下内容。

不要使用-U更新!相反,重新下载二进制文件,或者当使用pip安装时,在安装时使用上面描述的。我将为二进制文件添加一些令人难忘的短链接,这样您就可以更容易地下载它们。

YouTube-DLC是一个命令行程序,可以从YouTube.com和其他几个网站下载视频。它需要版本2.6、2.7或3.2+的Python解释器,并且它不特定于平台。它应该可以在您的Unix系统、Windows或MacOS上运行。它被发布到公共领域,这意味着您可以修改、重新分发或随心所欲地使用它。

-h,--help打印此帮助文本并退出--version打印程序版本并退出-U,--update将此程序更新为最新版本。确保您有足够的权限(如果需要,使用sudo运行)-i,--Ignore-下载错误时继续出现错误,例如跳过播放列表中不可用的视频--出现错误时中止下载更多视频(在播放列表或命令行中)--dump-user-agent显示当前浏览器标识--list-提取器列出所有支持的提取器--提取器描述所有支持的提取器的输出描述--force-Generic-提取器强制提取要使用通用提取器--default-search前缀使用此前缀作为不合格URL的前缀。例如,从谷歌视频为YouTube-DLC&34;大苹果下载了两个视频。使用值";AUTO";让YouTube-DLC猜测(";AUTO_WARNING";在猜测时发出警告)。";错误";只是抛出一个错误。默认值";FIXUP_ERROR";修复损坏的URL,但如果无法修复,则会发出错误,而不是搜索。--Ignore-config不读取配置文件。在全局配置文件/etc/youtube-dlc.conf中给定时:不读取~/.config/youtube-dlc/config(Windows上为%appdata%/youtube-dlc/config.txt)中的用户配置--config-位置配置文件的路径位置;config的路径或其包含目录的路径。--Flat-播放列表不提取播放列表的视频,仅列出它们。--mark-已观看标记已观看的视频(仅限YouTube)--no-mark-已观看不标记已观看的视频(仅限YouTube)-no-color不在输出中发出色码。--Flat-播放列表不提取播放列表的视频,仅列出它们。--mark-已观看的标记视频(仅限YouTube)--无标记-已观看的不标记已观看的视频(仅限YouTube)-无颜色不在输出中发出颜色代码。

--代理URL使用指定的HTTP/HTTPS/SOCKS代理。要启用SOCKS代理,请指定正确的方案。例如socks5://127.0.0.1:1080/。为直接连接传入空字符串(--proxy&34;";)--socket-timeout秒放弃前等待的时间,以秒为单位--源地址IP客户端IP地址要绑定到-4,--force-ipv4通过IPv4-6建立所有连接,--force-ipv6通过IPv6建立所有连接

--Geo-Verify-Proxy URL使用此代理来验证某些受地理限制的站点的IP地址。由--proxy(如果选项不存在,则为None)指定的默认代理用于实际下载。--通过伪造X-Forwarded-for HTTP标头绕过地理绕过地理限制--no-geo-绕过不通过伪造X-Forwarded-For HTTP标头绕过地理限制--Geo-BYPASS-国家代码使用显式提供的双字母ISO 3166-2国家/地区代码强制绕过地理限制--Geo-BYPASS-IP-BLOCK IP_BLOCK以CIDR表示法明确提供IP块的绕过地理限制。

--PLAYLIST-开始编号播放列表视频(默认值为1)--PLAYLIST-结束编号播放列表视频(默认值为LAST)--PLAYLIST-Items Item_spec Playlist要下载的视频项目。如果要下载播放列表中索引为1、2、5、8的视频,请指定播放列表中以逗号分隔的视频索引,如:";--PlayList-Items 1,2,5,8";。您可以指定范围:";--PlayList-Items 1-3,7,10-13";,它将下载索引为1、2、3、7、10、11的视频,12和13.--Match-Title REGEX仅下载匹配的标题(正则表达式或无大小写的子字符串)--Reject-Title REGEX跳过匹配标题的下载(regex或无大小写的子串)--max-下载数量在下载数量文件后中止--min-文件大小不下载任何小于大小的视频(例如50k或44.6m)--max-文件大小不下载任何大于大小的视频(例如50k或44.6m)--date仅下载在此日期上载的视频--date之前的日期仅下载视频。在此日期或之前上传(包括在内)--日期之后仅下载在此日期或之后上传的视频(即,包括在内)--min-点击量计数不下载任何观看次数少于计数的视频--max-点击量计数不下载任何点击量超过计数的视频--Match-Filter通用视频过滤器。指定要匹配的任何密钥(有关可用密钥的列表,请参阅";输出模板)。!key要检查密钥是否不存在,key&>number(如";COMMENT_COUNT>;12";,也适用于>;=,<;=,!=,=)以与数字进行比较,key=';文字';(如";Uploader=';Mike Smith';";,还与!=)配合使用以匹配字符串文字,并与&;配合使用以要求多个匹配。除非您打上问号(?),否则将排除未知的值。在接线员之后。例如,要仅匹配被喜欢超过100次而不喜欢少于50次的视频(或者不喜欢功能在给定服务中不可用),但也有描述的人,请使用--Match-filter";like_count>;100&;dislike_count<;?50&;description";.--否-如果URL引用视频和播放列表,则播放列表仅下载视频。--是-播放列表,如果URL引用视频和播放列表,则下载播放列表。--年龄-限制年限仅下载适合给定年龄的视频--下载-存档文件仅下载存档文件中未列出的视频。记录所有下载视频的ID。--include-adds下载广告(试验性)。

-r,--限制速率以字节/秒为单位的最大下载速率(例如50K或4.2M)-R,--重试次数重试次数(默认值为10),或";无限";。--片段-重试次数片段重试次数(默认值为10),或";无限";(DASH、hlsnative和ISM)--SKIP-UNAVAILABLE-片段跳过不可用片段(DASH、hlsnative和ISM)--ABORT-ON-UNAvailable-片段在某些片段不可用时中止下载--KEEP-片段在下载完成后将下载的片段保留在磁盘上;默认情况下,片段被擦除--下载缓冲区的缓冲区大小大小(例如,1024或16K)(默认值为1024)--no-resize-buffer不会自动调整缓冲区大小。默认情况下,缓冲区大小从初始值SIZE自动调整。--HTTP-CHUNK-SIZE块大小用于基于块的HTTP下载的块的大小(例如,10485760或10M)(默认为禁用)。对于绕过网络服务器施加的带宽限制可能很有用(实验性)--playlist-反向下载播放列表视频--playlist-以随机顺序随机下载播放列表视频--xattr-set-filesize设置文件xattribute ytdl.filesize,具有预期的文件大小--HLS-PREFER-NATIVE使用本地HLS下载器而不是ffmpeg-HLS-PREFER-ffmpeg使用ffmpeg而不是本地HLS下载器--HLS-USE-mpegts使用用于HLS视频的mpegts容器,允许在下载视频时播放视频(某些播放器可能无法播放它)-EXTERNAL-Downloader命令使用指定的外部下载器代替FMPPEG-HLS-USE-mpegts使用mpegts容器下载HLS视频(某些播放器可能无法播放)-外部-Downloader命令使用指定的外部下载器。当前支持aria2c、avconv、axel、curl、ffmpeg、httpy、wget--ternal-downloader-args参数将这些参数提供给外部下载程序。

-a,--批处理文件包含要下载的URL的文件(';-';对于标准输入),每行一个URL。以';#';开头的行

--WRITE-SUB WRITE字幕文件--WRITE-AUTO-SUB WRITE自动生成的字幕文件(仅限YouTube)--ALL-SUBS下载视频的所有可用字幕--LIST-SUBS列出视频的所有可用字幕格式,接受格式首选项,例如:";SRT";或";ASS/SRT/BEST";--SUB-LANG要下载的字幕的语言(可选),用逗号分隔,可用语言标签使用-LIST-SUBS。

-u,--用户名用户名使用此帐户ID登录-p,--密码密码帐户密码。如果省略此选项,YouTube-DLC将交互询问。-2,--双因素双因素验证码-n,--netrc使用.netrc验证数据--视频密码(Vimeo,Smotri,Youku)。

--ap-mso MSO Adobe Pass多系统运营商(TV提供商)标识符,使用--ap-list-mso查看可用MSO列表--ap-username用户名多系统运营商帐户登录--ap-password密码多系统运营商帐户密码。如果省略此选项,YouTube-DLC将交互询问。--ap-list-mso列出所有支持的多系统操作符。

-x,--Extract-dio将视频文件转换为纯音频文件(需要ffmpeg或avconv和ffbe或avbe)--音频格式指定音频格式:";BEST";,";AAC";,";mp3";,";m4a";,";opus";,";Vorbis";或";wav";;";默认情况下,Best";;无-x效果--音质指定ffmpeg/avconv音质,VBR或特定码率如128K(默认为5)插入0-9(较好)到9(较差)之间的值--remux-video格式必要时将视频重新复用为另一种容器格式(目前支持:mp4|mkv,目标容器格式必须支持视音频编码,重复用可能失败)--recde-视频格式,必要时将视频编码为另一种格式(目前支持:mp4|flv|ogg|webm|mkv|avi)--后处理器-args将这些参数交给后处理器-k,--Keep--视频后处理后将视频文件保留在磁盘上;默认情况下,视频被擦除--无后期覆盖不会覆盖后期处理文件;后期处理文件默认被覆盖--Embed-Subs在视频中嵌入字幕(仅适用于MP4、WebM和MKV视频)--Embed-缩略图在音频中嵌入缩略图作为封面艺术--add-metadata将元数据写入视频文件--标题元数据格式从视频标题解析其他元数据,如歌曲标题/艺术家。格式语法与--output相同。也可以使用具有命名捕获组的正则表达式。解析的参数将替换现有值。示例:--METADATA-FROM-TITLE";%(艺术家)s-%(TITLE)s";与酷玩乐园";这样的标题匹配。示例(Regex):--标题中的元数据";(?p<;艺术家&>;.+?)-(?p<;标题&>;.+)";--xattrs将元数据写入视频文件的xattrs(使用都柏林核心和xdg标准)--修正策略自动更正文件的已知错误。Never(不执行任何操作)、WARN(仅发出警告)、DETECT_OR_WARN(默认设置;如果可以修复文件,则执行WARN)--PERFER-avconv首选avconv而不是ffmpeg运行后处理器--PERFER-ffmpeg首选ffmpeg而不是avconv运行后处理器(默认)--ffmpeg-ffmpeg/avconv二进制文件的位置路径位置;二进制文件的路径或其包含目录的路径。--exec cmd在下载和后处理之后对文件执行命令,类似于find';s-exec语法。示例:--exec';adb Push{}/sdcard/Music/&;&;rm{}&39;--Convert-subs格式将字幕转换为其他格式(目前支持:SRT|ASS|VTT|LRC)。

您可以通过将任何受支持的命令行选项放入配置文件来配置YouTube-DLC。在Linux和MacOS上,系统范围的配置文件位于/etc/youtube-dlc.conf,用户范围的配置文件位于~/.config/youtube-dlc/config。在Windows上,用户范围的配置文件位置为%appdata%\youtube-dlc\config.txt或C:\Users\<;用户名>;\youtube-dlc.conf。请注意,默认情况下,配置文件可能不存在,因此您可能需要自己创建它。

例如,使用以下配置文件YouTube-DLC将始终提取音频,而不是复制mtime,使用代理并将所有视频保存在您的home目录下的Movies目录下:

#以#开头的行是注释#Always Extract Audio-x#请勿复制mtime--no-mtime#使用此代理--proxy 127.0.0.1:3128#保存主目录中Movies目录下的所有视频-o~/Movies/%(Title)s.%(Ext)s。

请注意,配置文件中的选项正好与常规命令行调用中使用的选项aka开关相同,因此在-或--之后不能有空格,例如-o或--proxy,而不能有-o或--proxy。

如果您想要禁用特定YouTube-DLC运行的配置文件,可以使用--Ignore-config。

如果您想要为特定的YouTube-DLC运行使用自定义配置文件,也可以使用--config-location。

您可能还希望为支持身份验证的提取器配置自动凭据存储(通过提供带有--username和--password的登录和密码),以便不在每次执行YouTube-DLC时将凭据作为命令行参数传递,并防止在shell命令历史记录中跟踪纯文本密码。您可以在每个解压程序的基础上使用.netrc文件来实现这一点。为此,您需要在$HOME中创建一个.netrc文件,并将读/写权限限制为仅限您:

之后,您可以按以下格式添加解压程序的凭据,其中,Extractor是小写的解压程序名称:

要使用.netrc文件激活身份验证,您应该将--netrc传递给YouTube-DLC或将其放在配置文件中。

在Windows上,您可能还需要手动设置%HOME%环境变量。例如:

基本用法是在下载单个文件时不设置任何模板参数,如youtube-dlc-o comy_Video.flv";https://some/video";.。但是,它可能包含下载每个视频时将替换的特殊序列。可以根据Python字符串格式化操作来格式化特殊序列。例如,%(名称)s或%(名称)05d。为了清楚起见,这是一个百分号,后跟括号中的名称,然后是格式化操作。允许的名称随附。

.