在国内看了一个Python的教程,没想到被骗了。是个二道贩子重新压制的,自己加了片头片尾,然后噩梦来了,先18集遇到的是声音不匹配始终是差一点,难受的要死。后面开始就他妈的连声音也没有了,只有片头的几秒有声音。一点都不上心,后来照着片头一找,我去连网站都停了。然后找资源,一看youtube和youku上面都有,开始尝试下载下来,youku的没成功,youtube的倒是可以就是慢的要死。几经搜索找到了应对的方法。
###0x00 安装软件
sudo apt-get install youtube-dl aria2
###0x01 原理介绍 这里使用的是aria2的多线程方式来下载,还有一点就是在所有的youtube资源里面,速度最快的是画质为best的那个即22 看下面的介绍。
youtube-dl用法
查看使用帮助
youtube-dl -h
一些常用的参数:
youtube-dl --list-extractors #查看支持网站列表 youtube-dl -U #程序升级 youtube-dl --get-format URL #获取视频格式 youtube-dl -F URL #获取所有格式(目前仅支持YouTube),例如: youtube-dl -F https://www.youtube.com/watch?v=nCfrfCzaB2A [youtube] Setting language [youtube] n-BXNXvTvV4: Downloading video webpage [youtube] n-BXNXvTvV4: Downloading video info webpage [youtube] n-BXNXvTvV4: Extracting video information 格式编号 format code extension resolution note 171 webm audio only DASH audio , audio@ 48k (worst) 140 m4a audio only DASH audio , audio@128k 160 mp4 144p DASH video , video only 242 webm 240p DASH video , video only 133 mp4 240p DASH video , video only 243 webm 360p DASH video , video only 134 mp4 360p DASH video , video only 244 webm 480p DASH video , video only 135 mp4 480p DASH video , video only 247 webm 720p DASH video , video only 136 mp4 720p DASH video , video only 248 webm 1080p DASH video , video only 137 mp4 1080p DASH video , video only 271 webm 1440p DASH video , video only 264 mp4 1440p DASH video , video only 272 webm 2160p DASH video , video only 138 mp4 2160p DASH video , video only 100 webm 360p 3D 82 mp4 360p 3D 84 mp4 720p 3D 17 3gp 176x144 36 3gp 320x240 5 flv 400x240 43 webm 640x360 18 mp4 640x360 22 mp4 1280x720 (best) 如果你想下真正的最高画质需要分别下上面的138和140,然后用视频软件合成。 下载普通的视频只需要youtube-dl https://www.youtube.com/watch?v=nCfrfCzaB2A 默认下载下来的格式为webm youtube-dl -f format URL #下载指定格式的视频,这里以下载1080p原画质量的视频格式为例: youtube-dl -f 137 http://www.youtube.com/watch?v=n-BXNXvTvV4 所以要下载最快的就得用下面这样的例子记住这个`22` youtube-dl -f 22 http://www.youtube.com/watch?v=n-BXNXvTvV4
下面说说aria2多线程
youtube-dl https://www.youtube.com/*** --external-downloader aria2c --external-downloader-args "-x 16 -k 1M" 参数说明 --external-downloader aria2c //调用外部下载工具 --external-downloader-args //外部下载工具指定参数 -x 16 //启用aria2 16个线程,最多就支持16线程 -K 1M //指定块的大小
总结
综上,最快的方法就是用下面的这个命令(地址部分替换成自己的)
youtube-dl -f 22 https://www.youtube.com/playlist\?list\=PLFx-dS8yeeGPPQAdpV6hiAqgi4Qzohcmk --external-downloader aria2c --external-downloader-args "-x 16 -k 1M"
如果使用了socks5的代理还可以加上代理
youtube-dl -f 22 --proxy 'socks5://127.0.0.1:1080' https://www.youtube.com/playlist\?list\=PLFx-dS8yeeGPPQAdpV6hiAqgi4Qzohcmk --external-downloader aria2c --external-downloader-args "-x 16 -k 1M"
音频下载Download Audio from YouTube
-i
– ignore errors
-c
– continue
-t
– use video title as file name
--extract-audio
– extract audio track
--audio-format mp3
– convert to mp3
--audio-quality 0
– the best audio quality
--yes-playlist
– affirm that url points to a playlist
YT_URL
– video url from youtube
# Download single entry 用最高品质单次下载 youtube-dl -i --extract-audio --audio-format mp3 --audio-quality 0 YT_URL # Download playlist 高品质下载整个歌单 youtube-dl -ict --yes-playlist --extract-audio --audio-format mp3 --audio-quality 0 https://www.youtube.com/playlist?list=UUCvVpbYRgYjMN7mG7qQN0Pg # Download playlist, --download-archive downloaded.txt add successfully downloaded files into downloaded.txt 下载“download.txt”中的所有歌曲 youtube-dl --download-archive downloaded.txt --no-overwrites -ict --yes-playlist --extract-audio --audio-format mp3 --audio-quality 0 --socket-timeout 5 https://www.youtube.com/playlist?list=UUCvVpbYRgYjMN7mG7qQN0Pg # Retry until success, no -i option while ! youtube-dl --download-archive downloaded.txt --no-overwrites -ct --yes-playlist --extract-audio --audio-forma
在youtube-dl的全局配置文件里面(默认没有此文件,要自己建,于是自己vim一个),我的配置如下:
sudo vim /etc/youtube-dl.conf #内容如下: # Lines starting with # are comments # Always extract audio #-x # Do not copy the mtime #--no-mtime # Use this proxy #--proxy 127.0.0.1:3128 # External-downloader :ARIA2 # Down load via external tool arai2c to expedite and gain a 16x download speed --external-downloader aria2c --external-downloader-args "-x 16 -k 1M" # Save all videos under Movies directory in your home directory -o ~/Yt/%(title)s.%(ext)s