use*_*852 33 youtube youtube-dl youtube-livestreaming-api
只是想知道是否可能 - 当我将视频网址复制到YouTube-dl时,它会吐出来
[https @ 0x7fc351416080] inflate return value: -3, incorrect header check
Last message repeated 15 times
Run Code Online (Sandbox Code Playgroud)
在那之后,它吐出了几行似乎不想正确复制的红色文本,所以我拿了一个片段

有谁知道这是否可能?
JAL*_*JAL 52
我将以此直播活动为例:
https://www.youtube.com/watch?v=6aXR-SL5L2o
首先,列出视频的格式:
$ ~ youtube-dl --list-formats https://www.youtube.com/watch\?v\=6aXR-SL5L2o
[youtube] 6aXR-SL5L2o: Downloading webpage
[youtube] 6aXR-SL5L2o: Downloading video info webpage
[youtube] 6aXR-SL5L2o: Extracting video information
[youtube] 6aXR-SL5L2o: Downloading formats manifest
[youtube] 6aXR-SL5L2o: Downloading MPD manifest
[info] Available formats for 6aXR-SL5L2o:
format code extension resolution note
91 mp4 144p HLS , h264, aac @ 48k
92 mp4 240p HLS , h264, aac @ 48k
93 mp4 360p HLS , h264, aac @128k
94 mp4 480p HLS , h264, aac @128k
95 mp4 720p HLS , h264, aac @256k (best)
Run Code Online (Sandbox Code Playgroud)
选择您要下载的格式,然后从清单中获取视频的HLS m3u8 URL.我将95 mp4 720p HLS , h264, aac @256k用于这个例子:
? ~ youtube-dl -f 95 -g https://www.youtube.com/watch\?v\=6aXR-SL5L2o
https://manifest.googlevideo.com/api/manifest/hls_playlist/id/6aXR-SL5L2o.1/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/cmbypass/yes/goi/160/sgoap/itag%3D140/sgovp/itag%3D136/hls_chunk_host/r16---sn-ab5l6ne7.googlevideo.com/gcr/us/playlist_type/DVR/mm/32/mn/sn-ab5l6ne7/ms/lv/mv/u/pl/17/dover/3/fexp/9416126,9416891,9419451,9422596,9423554,9427790,9428193,9428398,9428974,9429011,9431012,9431164,9432683,9433096,9433946,9434343,9434833,9434847,9435186,9435741/upn/UNF1TiBtavY/sver/3/mt/1462544320/ip/64.125.177.124/ipbits/0/expire/1462565936/sparams/ip,ipbits,expire,id,itag,source,requiressl,ratebypass,live,cmbypass,goi,sgoap,sgovp,hls_chunk_host,gcr,playlist_type,mm,mn,ms,mv,pl/signature/67EC57CB964D9D944DE2E1AB40F0E496DA2C73B4.8FBEF1974DF9DB1E614B9C96BA0FF8E52076B04F/key/dg_yt0/playlist/index.m3u8
Run Code Online (Sandbox Code Playgroud)
现在,你有HLS播放列表,您可以在VLC打开这个网址,并使用"记录"保存它,或者写一个小的ffmpeg的命令:
ffmpeg -i \
https://manifest.googlevideo.com/api/manifest/hls_playlist/id/6aXR-SL5L2o.1/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/cmbypass/yes/goi/160/sgoap/itag%3D140/sgovp/itag%3D136/hls_chunk_host/r16---sn-ab5l6ne7.googlevideo.com/gcr/us/playlist_type/DVR/mm/32/mn/sn-ab5l6ne7/ms/lv/mv/u/pl/17/dover/3/fexp/9416126,9416891,9419451,9422596,9423554,9427790,9428193,9428398,9428974,9429011,9431012,9431164,9432683,9433096,9433946,9434343,9434833,9434847,9435186,9435741/upn/UNF1TiBtavY/sver/3/mt/1462544320/ip/64.125.177.124/ipbits/0/expire/1462565936/sparams/ip,ipbits,expire,id,itag,source,requiressl,ratebypass,live,cmbypass,goi,sgoap,sgovp,hls_chunk_host,gcr,playlist_type,mm,mn,ms,mv,pl/signature/67EC57CB964D9D944DE2E1AB40F0E496DA2C73B4.8FBEF1974DF9DB1E614B9C96BA0FF8E52076B04F/key/dg_yt0/playlist/index.m3u8 \
-c copy output.ts
Run Code Online (Sandbox Code Playgroud)
小智 14
没有必要传递任何东西ffmpeg你可以只获取所需的格式,在这个例子中,它是"95"格式.
所以一旦你知道它是95,你只需输入:
youtube-dl -f 95 https://www.youtube.com/watch\?v\=6aXR-SL5L2o
Run Code Online (Sandbox Code Playgroud)
也就是说:
youtube-dl -f <format number> <url>
Run Code Online (Sandbox Code Playgroud)
它将开始在工作目录上生成一个<somename>.<probably mp4>.part部分下载的文件,让它去,然后按下<Ctrl-C>以停止捕获.
该文件仍将被命名<something>.part,重命名<whatever>.mp4为... 它在那里...
该ffmpeg代码:
ffmpeg -i $(youtube-dl -f <format number> -g <url>) -copy <file_name>.ts
Run Code Online (Sandbox Code Playgroud)
也适合我,但声音和视频不同步,使用youtube-dl似乎只会产生更好的结果,虽然它也使用ffmpeg.
这种方法的缺点是你在下载时无法观看视频,你可以打开另一个FF或Chrome,但似乎mplayer无法处理视频输出直到youtube-dl/ ffmpeg正在运行.
一些带有 m3u 流媒体的网站无法youtube-dl一步下载,您可以尝试这样的操作:
$ URL=https://www.arte.tv/fr/videos/078132-001-A/cosmos-une-odyssee-a-travers-l-univers/
$ youtube-dl -F $URL | grep m3u
HLS_XQ_2 m3u8 1280x720 VA-STA, Allemand 2200k
HLS_XQ_1 m3u8 1280x720 VF-STF, Français 2200k
$ CHOSEN_FORMAT=HLS_XQ_1
$ youtube-dl -F "$(youtube-dl -gf $CHOSEN_FORMAT)"
[generic] master: Requesting header
[generic] master: Downloading webpage
[generic] master: Downloading m3u8 information
[info] Available formats for master:
format code extension resolution note
61 mp4 audio only 61k , mp4a.40.2
419 mp4 384x216 419k , avc1.66.30, mp4a.40.2
923 mp4 640x360 923k , avc1.77.30, mp4a.40.2
1737 mp4 720x406 1737k , avc1.77.30, mp4a.40.2
2521 mp4 1280x720 2521k , avc1.77.30, mp4a.40.2 (best)
$ youtube-dl --hls-prefer-native -f 1737 "$(youtube-dl -gf $CHOSEN_FORMAT $URL)" -o "$(youtube-dl -f $CHOSEN_FORMAT --get-filename $URL)"
[generic] master: Requesting header
[generic] master: Downloading webpage
[generic] master: Downloading m3u8 information
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 257
[download] Destination: Cosmos_une_odyssee_a_travers_l_univers__HLS_XQ_1__078132-001-A.mp4
[download] 0.9% of ~731.27MiB at 624.95KiB/s ETA 13:13
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72425 次 |
| 最近记录: |