youtube-dl下载太慢了,我选yt-dlp
前言
最近过年嘛,过年前照例来下载一些贺岁歌曲,现在国内没啥人做贺岁专辑,这方面还得看马来西亚华人,他们每年都有出专辑,质量很不错!
国内平台自然是没有(或者不全的),需要在YouTube下载~
之前我都是用Chrome插件下载完再使用脚本合并视频,有点繁琐,今年试试自动下载的黑科技~
作为对比的这俩工具,都用 pip 安装即可
pip install youtube-dl
pip install yt-dlp
youtube-dl
PS:youtube-dl 之前曾经被Github封禁了,后面应该是迫于开源界的压力,又恢复了这个仓库
首先这是项目地址: https://github.com/ytdl-org/youtube-dl
具体咋用,文档写得很详细
参数很复杂
最主要的问题是下载速度太慢了(一秒50、60k) (应该是被YouTube之类的网站识别出来,限流了)
下载合集中的多个视频
youtube-dl --proxy http://127.0.0.1:10809 -f "bestvideo[ext=mp4,height<=1080]+bestaudio[ext=m4a]/bestvideo[ext=mp4,height<=720]+bestaudio[ext=m4a]/bestvideo[ext=mp4,height<=480]+bestaudio[ext=m4a]/best[ext=mp4,height<=480]/best" -o "%(title)s.%(ext)s" --embed-thumbnail --playlist-start 1 --playlist-end 9 "https://www.youtube.com/watch?v=xxx&list=xxx"
参数说明
下面这俩组合起来表示下载合集里第1-9个视频
--playlist-start 1
--playlist-end 9
-f 后面跟着的一大串,表示从1080p开始下载,不行的话就逐步降级到480p
设置代理啥的就不说了
yt-dlp
使用体验非常不错,推荐!
这是一个后面新出的工具,参数简化了很多,而且支持使用外部下载器(例如 Aria2)
先看看基本用到的命令长啥样~
下载单个视频
yt-dlp -f 137+140 --proxy http://127.0.0.1:10809 --merge-output-format mp4 https://www.youtube.com/watch?v=xxx
下载合集中的多个视频
yt-dlp -I 1:9 --proxy http://127.0.0.1:10809 --merge-output-format mp4 "https://www.youtube.com/watch?v=xxx&list=xxx"
选择格式使用的是下面这样的参数
-f 137+140
初看可能一头雾水,但其实这是YouTube的画质代码
在YouTube上面,1080p及以上分辨率的视频,画面和声音是分开的,画面一般是mp4或者webm这种格式,声音是m4a格式,所以要下载高清视频,需要分别下载画面和声音,然后自行合并。
PS:在之前我确实是分开下载然后写个脚本使用ffmpeg来批量合并的,不过用这个工具就不用这么复杂了,它可以自动调用ffmpeg来合并视频(不过要确保系统中已经安装了ffmpeg哈)。
上面这个 137 和 140 就是画面和声音的代码。
那这么知道各种画质和音质的代码是啥呢?使用 -F 参数就行。
yt-dlp -F --proxy http://127.0.0.1:10809 "https://www.youtube.com/watch?v=xxx"
用了这个参数,就可以把指定视频的各种画质代码都显示出来,按需选择组合就行
[youtube] Extracting URL: https://www.youtube.com/watch?v=kjuB12RFtDE
[youtube] kjuB12RFtDE: Downloading webpage
[youtube] kjuB12RFtDE: Downloading android player API JSON
[info] Available formats for kjuB12RFtDE:
ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27 0 │ mhtml │ images storyboard
sb1 mhtml 80x45 1 │ mhtml │ images storyboard
sb0 mhtml 160x90 1 │ mhtml │ images storyboard
140 m4a audio only 2 │ 4.42MiB 129k https │ audio only mp4a.40.2 129k 44k medium, m4a_dash
251 webm audio only 2 │ 4.66MiB 137k https │ audio only opus 137k 48k medium, webm_dash
22 mp4 1280x720 25 2 │ ~ 44.82MiB 1284k https │ avc1.64001F 1284k mp4a.40.2 0k 44k 720p
136 mp4 1280x720 25 │ 39.41MiB 1155k https │ avc1.4d401f 1155k video only 720p, mp4_dash
247 webm 1280x720 25 │ 39.53MiB 1158k https │ vp9 1158k video only 720p, webm_dash
137 mp4 1920x1080 25 │ 117.11MiB 3431k https │ avc1.640028 3431k video only 1080p, mp4_dash
248 webm 1920x1080 25 │ 75.15MiB 2202k https │ vp9 2202k video only 1080p, webm_dash
从这结果就可以看出,上面的 137 是 1080p 的 mp4视频;140 是 129k 的音频。
至于外部下载器,我没搞,默认下载速度就很快了,一秒几m,够用就不折腾了。
参考资料
youtube-dl下载太慢了,我选yt-dlp的更多相关文章
- YouTube视频下载方法汇总
YouTube是一个视频共享网站,YouTuber们自己拍摄并制作视频,上传到YouTube,然后用户观看.分享并评论这些内容.虽然在线观看很方便,但是有些时候你却只能处于离线的状态,比如出差.旅游. ...
- Youtube高清视频下载的3种方法
经常看视频的朋友都听说或使用过youtube, 它是一个综合性的视频网站,包含的内容多种多样,能满足不同的人的需求,最要的是广告少,资源良心,不像有些网站,动不动就是1分种以上的长广告.有些因为工作 ...
- YouTube视频下载的12个软件(Win和Mac)
如今,观看视频已经成为人们生活中重要的一部分.很多时候,我们都需要用到视频,比如教育用途.会议报告.休闲娱乐以及广告宣传等.如果你觉得有时候资源不好找的话,不放去看下YouTube.YouTube是世 ...
- 用python做youtube自动化下载器 代码
目录 项目地址 思路 流程 1. post i. 先把post中的headers格式化 ii.然后把参数也格式化 iii. 最后再执行requests库的post请求 iv. 封装成一个函数 2. 调 ...
- mac中使用brew安装软件,下载太慢怎么办?
mac中使用brew安装软件,下载太慢怎么办? 本文所说的软件是指较大的软件,如果软件较小,例如软件只有几M,那么使用此方法后,提升会非常小. 了解brew原理: 1: 从网络下载安装包 2: 执行一 ...
- youtube视频下载和搬运的方法
youtube全球最大的视频网站, 全世界每天有三分之一的网民在youtube上观看视频, 可是大部分人不知道, 在这些网民有一小部分人是依靠youtube生存的, 他们上传视频到youtube, y ...
- Youtube 视频下载
Youtube 视频下载 由于特殊原因,需要下载 Youtube 的视频. https://www.clipconverter.cc/
- 如何下载火山小视频-附火山小视频下载youtube视频下载网站
火山小视频下载方法: 1. 打开火山小视频APP 2. 点开某个视频,点击右下角分享按钮,在分享弹框中点击复制链接,或者通过分享到微信QQ等获取视频链接 3. 打开在线免费的火山小视频解析下载工具 h ...
- 7个好用的在线YouTube视频下载工具
title: 7个好用的在线YouTube视频下载工具 toc: false date: 2018-10-10 15:11:00 categories: methods tags: youtube C ...
- ubuntu---github下载太慢的解决办法
git clone --recursive https://github.com/tensorflow/tensorflow 下载太慢了,20:05-21:17 才下载了17%,等的太急人了. ** ...
随机推荐
- LcdTools如何使用PX01进行EDP屏EDID比对及设置显示EDID比对结果
PX01点EDP屏在上电过程会自动读取屏EDID,那怎么进行EDID比对呢? LcdTools打开点屏工程,在上电时序函数中先用SetCmpEDID()指令设置EDID比对值,再调用CheckEDID ...
- jquery根据自定义属性选择标签
<div myattr="test"></div> 使用$("div[myattr='test']")进行选择 <a href=& ...
- docker-compose编排启动LNMP
2-1.docker-compose启动php #生成php镜像 [root@rocky8 data]#vim /data/dockerfile/ubuntu_php/Dockerfile FRO ...
- python渗透测试入门——取代netcat
1.代码及代码讲解. 实验环境:windows10下的linux子系统+kali虚拟机 import argparse import socket import shlex import subpro ...
- Go | 函数(包)的使用
本文通过一个实现加减乘除运算的小程序来介绍go函数的使用,以及使用函数的注意事项,并引出了对包的了解和使用. 实现加减乘除运算 传统方法实现: var n1 float64 = 1.2 var n2 ...
- Day03.2:Java的基础语法
Java基础语法 注释 (注释不会被运行,仅仅作为解释或笔记提供给作者帮助回忆) 单行注释格式:// 多行注释格式: /**/ 文档注释格式:/** */ 示例图 标识符 概念:所有的组成部分都需要名 ...
- 3.JS
1.简介 JavaScript 因为互联网而生,紧随着浏览器的出现而问世 1997年7月,ECMAScript 1.0发布. 1998年6月,ECMAScript 2.0版发布. 1999年12月,E ...
- yum的$releaser与$basearch
最近配置centos 的yum 源时,想要配置一个通配的yum源,注意到发行的网络yum源的url地址中通常有两个变量 https://vault.centos.org/$releaser/cloud ...
- 广州2022CCPC补题
I Infection 知识点: 树上背包 第一次写树上背包的题目,没想到就是在区域赛中 神奇的是树上背包的复杂度,看起来是\(O(n^3)\),但是实际计算只有\(O(n^2)\) 学会树上背包后可 ...
- Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析
上篇文章谈到BlockingQueue的使用场景,并重点分析了ArrayBlockingQueue的实现原理,了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列. 但是Blocki ...