Vimeo stahování videa přes blob URL

vimal

Vimeo stahování videa přes blob URL
« kdy: 12. 05. 2017, 13:25:09 »
HTML5 s sebou přináší podivné záhady ve videu DASH,kdy jednotlivé m4s soubory jsou nepřehratelné, protože jsou nějak zašifrované.

Ale narazil jsem na dost magický způsob, jak získat url videa z vimea. Ve zkratce stačí v elementu  video nahradit hodnotu src z původní (blob:https%3A//player.vimeo.com/2duuid...107.) na libovolný řetězec a magicky se zde ihned pom opět přepíše na opravdický mp4 soubor https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/0blabla12.mp4?token=1494591123....715fb

Může mi někdo vysvětli, proč dělají takovéhle psí kusy. Zdá se mi to jako opravdová magie, ale asi tam je nějaký event listener na změnu atributu, která spustí "vložení url)

CO je také s podivem, že normálně se video přehrává pomocí https://skyfire.vimeocdn.com/149...44/sep/audio nebo video/.../chop/segment-1.m4s segmentů, jak jsem psal výše, nějak zašifrovaný,
metadata jsou  v https://45skyfiregce-vimeo.akamaized.net/ex...../master.json?...., kde jsou asi ty klíče


Takže je to rada jak stáhnout to video v mp4.

Dotazy:
1. video má bohužel nejnižší rozlišení 640x360. Jak se dopídit url pro nejvyšší rozlišení (1280x720)?
2. co tedy přesně je to video src=blob? Je možné nějak naskriptovat, aby se ten blob převedl na videosoubor , ale je tam zádrhel, že segmenty mají oddělené audio a video, takže to by potřebovalo ffmpeg....
3. Dá se nějak pracovat s tím blob? Jako třeba uložit kompletně?
« Poslední změna: 15. 05. 2017, 08:59:36 od Petr Krčmář »


jj2

Proč na to jdeš tak vědecky? Nejsem moc veliký fanda videa na webu ale jenom tak ze zvědavosti jsem zkusil stáhnout nejaké random a youtube-dl to dává i v 1080p. Tu je log třeba z toho něco vyzjistíš...

Kód: [Vybrat]
$ youtube-dl -v https://vimeo.com/216131664
[debug] System config: []
[debug] User config: ['--no-check-certificate']
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://vimeo.com/216131664']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.05.09
[debug] Python version 3.6.1 - Linux-4.10.13-1-ARCH-x86_64-with-arch
[debug] exe versions: ffmpeg 3.3, ffprobe 3.3
[debug] Proxy map: {'https': 'http://localhost:3128', 'http': 'http://localhost:3128', 'no': 'localhost,127.*,192.168.*', 'ftp': 'http://localhost:3128'}
[vimeo] 216131664: Downloading webpage
[vimeo] 216131664: Extracting information
[vimeo] 216131664: Downloading webpage
[vimeo] 216131664: Downloading JSON metadata
[vimeo] 216131664: Checking Original video URL
[vimeo] 216131664: Downloading akfire_interconnect m3u8 information
[vimeo] 216131664: Downloading fastly_skyfire m3u8 information
[vimeo] 216131664: Downloading akfire_interconnect_quic MPD information
[vimeo] 216131664: Downloading akfire_interconnect_quic MPD information
[vimeo] 216131664: Downloading fastly_skyfire MPD information
[vimeo] 216131664: Downloading fastly_skyfire MPD information
[debug] Invoking downloader on 'https://skyfire.vimeocdn.com/1494626668-0x43e96a0bff15ec5f965ed3b52bcb3f9732275890/216131664/sep/video/746977295,746977299,746977298,746977297/../'
[dashsegments] Total fragments: 98
[download] Destination: DOUBLE KING-216131664.fdash-fastly_skyfire_sep-video-746977299.mp4
[download] 100% of 217.93MiB in 11:22
[debug] Invoking downloader on 'https://skyfire.vimeocdn.com/1494626668-0x43e96a0bff15ec5f965ed3b52bcb3f9732275890/216131664/sep/video/746977295,746977299,746977298,746977297/../'
[dashsegments] Total fragments: 98
[download] Destination: DOUBLE KING-216131664.fdash-fastly_skyfire_sep-audio-746977299.m4a
[download] 100% of 17.91MiB in 01:27
[ffmpeg] Merging formats into "DOUBLE KING-216131664.mp4"
[debug] ffmpeg command line: ffmpeg -y -i 'file:DOUBLE KING-216131664.fdash-fastly_skyfire_sep-video-746977299.mp4' -i 'file:DOUBLE KING-216131664.fdash-fastly_skyfire_sep-audio-746977299.m4a' -c copy -map 0:v:0 -map 1:a:0 'file:DOUBLE KING-216131664.temp.mp4'
Deleting original file DOUBLE KING-216131664.fdash-fastly_skyfire_sep-video-746977299.mp4 (pass -k to keep)
Deleting original file DOUBLE KING-216131664.fdash-fastly_skyfire_sep-audio-746977299.m4a (pass -k to keep)

youtube-dl -F na tebe vysype všecky dostupné formáty.  ffmpeg to potom slepí dohromady pokud je audio oddělený od videa. S pythonem to neumím takže o tom co se děje pod pokličkou ti moc neporadím. Provozovatelé videoserverů navíc vymýšlí neustále nové a nové opičárny jak uživatelům znepříjemnit stahování, takže i když konečně zjistíš jak na to, nebude ti to fungovat dýl jak měsíc nebo dva.

Filip

vimeo soukromá videa bez URL
« Odpověď #2 kdy: 31. 05. 2017, 15:02:33 »
Ahoj,  dlouho jsem hledal , jak stáhnout video, které nemá url je blokované , soukromé.

navod je EASY

1- do chromu nainstalovat VIMEO SUPER DOWNLOADER   (ten samotný vám ale video ke stáhnutí nabídne..až..)
2- najdi video, které chcete stáhnout (není potřeba ho poustet atd..)
3- zmákní F12 (precvakni v CONSOLE)
4- zmáčkni F5 aby se ti refresnula stánka
5- najed na plugin vimeo nahore v pravo , nabídne ke stazení video a s výběrem kvality..

vimal

Re:Vimeo stahování videa přes blob URL
« Odpověď #3 kdy: 31. 05. 2017, 15:51:18 »
Filipe v plném rozlišení? Tp ,že je video soukromé, je nějak omezující? Můj návod na to nejde?

Jinak youtube-dl je král, samozřejmě umí DASH a stáhne to bez problému v libovolné kvalitě.

PS: jak technicky funguje , že ty segmenty videa DASH jsou zašifrované a browser je odšifruje? kde získá klíč?
 Pokud si stáhnute zašifrovaný segment (obvykle m4s, m4a,m4v....), jak ho pak dešifruji (a jak získám klíč?)