Youtube-dl食用技巧

Posted by xx on November 10, 2018

结论

综下

如果一条视频有1080P的选项

获取MP4格式,直接youtube-dl -f 137+140 URL 获取webm格式,直接youtube-dl -f 248+251 URL

自己替换URL中的值

安装

基于Ubuntu 16.04

apt-get install python
pip install --upgrade youtube-dl
apt-get install ffmpeg

Youtube

由于Youtube的视频在大于等于1080P的时候,视频和音频是分开的,所以下载要先下载视频和音频然后合并起来 直接下载是这样的,没有声音

这里以https://www.youtube.com/watch?v=zW3YB2ptGws中的视频为例

youtube-dl -F [url]来获取视频的格式码

youtube-dl -F https://www.youtube.com/watch?v=zW3YB2ptGws

可见 137是1080P的视频,140和157都是音频

然后用youtube-dl -f [format code] [url]来下载视频

所以用youtube-dl -f 137+140 https://www.youtube.com/watch?v=zW3YB2ptGws下载,合并得到MP4文件

如果是 137+251 合并到的是MKV文件

下载字幕和视频

youtube-dl --write-sub [url]

youtube-dl --write-sub https://www.youtube.com/watch?v=zW3YB2ptGws

得到英文字幕

列出可以下载的字幕

youtube-dl --list-subs https://www.youtube.com/watch?v=zW3YB2ptGws

下载中文字幕

youtube-dl --write-sub --sub-lang zh-CN https://www.youtube.com/watch?v=zW3YB2ptGws

下载Bilibili视频

以这个为例

https://www.bilibili.com/video/av25383955

【底特律:变人】震撼人心的BGM是怎样炼成的(作曲团队采访)

youtube-dl -F https://www.bilibili.com/video/av25383955

code为1

youtube-dl -f 1 https://www.bilibili.com/video/av25383955

下载完成以后记得重命名为1-2.flv,便于下一步操作。

先转换为ts格式;

for i in {1..2};do ffmpeg -i $i.flv -c copy -bsf:v h264_mp4toannexb -f mpegts $i.ts;done

进行合并即可

ffmpeg -i "concat:1.ts|2.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart 01.mp4

最后结果

参考 https://www.jianshu.com/p/076b59bd577d https://blog.csdn.net/qq_28484355/article/details/79181245