Youtube-dl е конзолен инструмент, написан на python, за сваляне на медийни файлове, видео и звук, от Мрежата. Поддържа множество сайтове, като в общия случай синтаксисът е:
youtube-dl [options] <address> |
Когато сваляме от Youtube, а и от много други сайтове, адресът е ясно изписан или имаме опция да го копираме/видим.
Когато обаче попаднем на сайт, който използва плеера на jwplayer.com, нямаме такава възможност. Адресът на страницата или десният клик върху плеера не ни дават повече информация, като в най-добрият случай ни препращат към JW Player.
В този случай трябва да подходим малко „по-творчески“ и да използваме инструментите за разработчици. В Chrome (chromium) това става чрез Menu > More tools > Developer tools или Ctrl+Shift+I. След това трябва да намерим секцията, в която става извикването на JW Player.
В този пример адресът на видеофайла е https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/index.m3u8
Извикването на този адрес с youtube-dl с параметър F ни дава информация за наличните потоци:
В случая най-добър е потокът с код на формата 7449, затова и него ще използваме:
angie@angie-laptop ~ $ youtube-dl https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/index.m3u8 -f 7449 [generic] index: Requesting header [generic] index: Downloading m3u8 information [download] Destination: index-index.mp4 ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3) configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --disable-ffserver --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc --enable-libzimg libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libavresample 3. 5. 0 / 3. 5. 0 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100 [hls,applehttp @ 0xb55db60] Opening 'https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/hls_2m_00000.ts' for reading Input #0, hls,applehttp, from 'https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/hls_2m_.m3u8': Duration: 01:24:54.16, start: 1.420289, bitrate: 0 kb/s Program 0 Metadata: variant_bitrate : 0 Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp Metadata: variant_bitrate : 0 Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1024x576 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Metadata: variant_bitrate : 0 Output #0, mp4, to 'file:index-index.mp4.part': Metadata: encoder : Lavf57.71.100 Stream #0:0: Video: h264 (Main) ([33][0][0][0] / 0x0021), yuv420p(tv, bt709), 1024x576 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc Metadata: variant_bitrate : 0 Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp Metadata: variant_bitrate : 0 Stream mapping: Stream #0:1 -> #0:0 (copy) Stream #0:0 -> #0:1 (copy) Press [q] to stop, [?] for help [hls,applehttp @ 0xb55db60] Opening 'https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/hls_2m_00001.ts' for reading [hls,applehttp @ 0xb55db60] Opening 'https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/hls_2m_00002.ts' for reading …. [hls,applehttp @ 0xb55db60] Opening 'https://d2isnqcrxtt6yq.cloudfront.net/w_cybf05/hls_2m_00509.ts' for reading frame=152670 fps= 55 q=-1.0 Lsize= 1254797kB time=01:24:54.15 bitrate=2017.9kbits/s speed=1.83x video:1171170kB audio:78097kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.442685% [ffmpeg] Downloaded 1284912618 bytes [download] 100% of 1.20GiB |
Резултатният файл е записан под името index-index.mp4, като то е образувано от наличните метаданни. След окончателното сваляне, не е проблем неговото преименуване.
Успех!
Коментари
Публикуване на коментар