Próbuję pobrać wideo za pomocą src url blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
Czy istnieje proces, który można wykonać, aby pobrać wszystkie tego typu filmy?
Próbuję pobrać wideo za pomocą src url blob:https%3A//www.youtube.com/23aea5c8-9ae2-40dc-9417-e675ea99b386
.
Czy istnieje proces, który można wykonać, aby pobrać wszystkie tego typu filmy?
Odpowiedzi:
Znalazłem sposób na pobranie wideo za pomocą blob url
in Vimeo
(czytając tutaj zrozumiałem, jak to zrobić). Piszę tutaj proste kroki. Używam Google Chrome:
More Tools
→Developer Tools
Sprawdź, czy w tagu wideo jest coś takiego:
<video preload="" src="blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></video>
http://player.vimeo.com/video/XYZ
jeśli go znalazłeś, możesz przejść bezpośrednio do punktu 7, w przeciwnym razie wykonaj kroki 4, 5, 6.Teraz poszukaj tego ciągu https://skyfire.vimeocdn.com/.../master.json?base64_init=1
na stronie (używając Widoku programisty), powinieneś go znaleźć wewnątrz funkcji javascript, jak to:
(function(e,a){var t={"cdn_url":"https://f.vimeocdn.com","view":1,"request":{"files":{"dash":{"origin":"gcs","url":"https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1","cdn":"
Skopiuj link w polu adresu URL na nowej karcie Chrome, na przykład https://48skyfiregce-a.akamaihd.net/.../master.json?base64_init=1
otwórz go w przeglądarce, otworzy Ci się plik json taki jak ten:
{
"clip_id": XYZ,
"base_url": "../",
"video": [
{ ... ... ...
Teraz utwórz adres URL ze swoim identyfikatorem w XYZ
ten sposób:https://player.vimeo.com/video/XYZ
blob:https://player.vimeo.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
wewnątrz tagu wideo na ostatni adres URL (ten utworzony w poprzednim kroku # 6).Teraz zauważysz, że magicznie zmieniło się pole src wewnątrz tagu wideo (jeśli nie, spróbuj krok 7 wiele razy) ...
<video preload="none" src="https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg"></video>
Użyj tego nowego linku, aby pobrać bezpośrednio, to coś takiego: https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/XX/XXX/X/XXXXXXXX/XXXXXXXXX.mp4?token=abcdefg
<video>
znacznik w strukturze DOM narzędzi deweloperskich i zmienić src
atrybut z blob:...
na x
. Nic się nie stanie - w porządku. Teraz zmień to ponownie, na y
. Chrome przekształci go „magicznie” na adres URL, jak w kroku 8 lub 9. :-)
Ta odpowiedź dotyczy adresów URL na Twitterze -
Znajdziesz taki kod
<div id="playerContainer" class="player-container full-screen-enabled" data-config="{"is_360":false,"duration":28617,"scribe_widget_origin":true,"heartbeatEnabled":true,"video_url":"https:\/\/video.twimg.com\/ext_tw_video\/844504104512749568\/pu\/pl\/e91Du5N2TZ09ZaW_.m3u8","disable_embed":"0","videoInfo":{"title":null,"description":null,"publisher":{"screen_name":"MountainButorac","name":"Mountain Butorac","profile_image_url":"https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_normal.jpg"}},"cardUrl":"https:\/\/t.co\/SdSorop3uN","content_type":"application\/x-mpegURL","owner_id":"14120461","looping_enabled":true,"show_cookie_override_en":true,"visit_cta_url":null,"scribe_playlist_url":"https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1","source_type":"consumer","image_src":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","heartbeatIntervalInMs":5000.0,"use_tfw_live_heartbeat_event_category":true,"video_loading_timeout":45000.0,"status":{"created_at":"Wed Mar 22 11:05:14 +0000 2017","id":844505243538931714,"id_str":"844505243538931714","text":"Took my Goddaughter to meet the pope. She stole his hat! https:\/\/t.co\/SdSorop3uN","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":844504104512749568,"id_str":"844504104512749568","indices":[57,80],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/844504104512749568\/pu\/img\/FFt3qkbeOh0RlGfZ.jpg","url":"https:\/\/t.co\/SdSorop3uN","display_url":"pic.twitter.com\/SdSorop3uN","expanded_url":"https:\/\/twitter.com\/MountainButorac\/status\/844505243538931714\/video\/1","type":"photo","sizes":{"small":{"w":340,"h":604,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"large":{"w":576,"h":1024,"resize":"fit"},"medium":{"w":576,"h":1024,"resize":"fit"}}}]},"source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"geo":null,"coordinates":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"show_cookie_override_all":true,"video_session_enabled":false,"media_id":"844504104512749568","view_counts":null,"statusTimestamp":{"local":"4:05 AM - 22 Mar 2017"},"media_type":1,"user":{"screen_name":"MountainButorac","name":"Mountain Butorac","profile_image_url":"https:\/\/pbs.twimg.com\/profile_images\/808318456701521920\/vBvlAASx_bigger.jpg"},"watch_now_cta_url":null,"tweet_id":"844505243538931714"}" data-source-type="consumer">
2. Kopiuj Wklej powyżej kodu w notatniku ++. Wymień wszystkie "
z "
i \/
WTH /
w Notepad ++. (Użyj CTRL + H)
Dostaniesz coś takiego
{
"is_360": false,
"duration": 28617,
"scribe_widget_origin": true,
"heartbeatEnabled": true,
"video_url": "https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8",
"disable_embed": "0",
"videoInfo": {
"title": null,
"description": null,
"publisher": {
"screen_name": "MountainButorac",
"name": "Mountain Butorac",
"profile_image_url": "https://pbs.twimg.com/profile_images/808318456701521920/vBvlAASx_normal.jpg"
}
},
"cardUrl": "https://t.co/SdSorop3uN",
"content_type": "application/x-mpegURL",
"owner_id": "14120461",
"looping_enabled": true,
"show_cookie_override_en": true,
"visit_cta_url": null,
"scribe_playlist_url": "https://twitter.com/MountainButorac/status/844505243538931714/video/1",
"source_type": "consumer",
"image_src": "https://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"heartbeatIntervalInMs": 5000.0,
"use_tfw_live_heartbeat_event_category": true,
"video_loading_timeout": 45000.0,
"status": {
"created_at": "Wed Mar 22 11:05:14 +0000 2017",
"id": 844505243538931714,
"id_str": "844505243538931714",
"text": "Took my Goddaughter to meet the pope. She stole his hat! https://t.co/SdSorop3uN",
"truncated": false,
"entities": {
"hashtags": [],
"symbols": [],
"user_mentions": [],
"urls": [],
"media": [{
"id": 844504104512749568,
"id_str": "844504104512749568",
"indices": [57, 80],
"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/844504104512749568/pu/img/FFt3qkbeOh0RlGfZ.jpg",
"url": "https://t.co/SdSorop3uN",
"display_url": "pic.twitter.com/SdSorop3uN",
"expanded_url": "https://twitter.com/MountainButorac/status/844505243538931714/video/1",
"type": "photo",
"sizes": {
"small": {
"w": 340,
"h": 604,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"large": {
"w": 576,
"h": 1024,
"resize": "fit"
},
"medium": {
"w": 576,
"h": 1024,
"resize": "fit"
}
}
}]
},
"source": "\u003ca href=\"http://twitter.com/download/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c/a\u003e",
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"retweet_count": 0,
"favorite_count": 0,
"favorited": false,
"retweeted": false,
"possibly_sensitive": false,
"lang": "en"
},
"show_cookie_override_all": true,
"video_session_enabled": false,
"media_id": "844504104512749568",
"view_counts": null,
"statusTimestamp": {
"local": "4:05 AM - 22 Mar 2017"
},
"media_type": 1,
"user": {
"screen_name": "MountainButorac",
"name": "Mountain Butorac",
"profile_image_url": "https://pbs.twimg.com/profile_images/808318456701521920/vBvlAASx_bigger.jpg"
},
"watch_now_cta_url": null,
"tweet_id": "844505243538931714"
}
Z powyższego formatu JSON zobacz wartość video_url
https://video.twimg.com/ext_tw_video/844504104512749568/pu/pl/e91Du5N2TZ09ZaW_.m3u8
Problem polega na tym, że po 1 sierpnia 2016 r. Twitter nie używa już filmów .mp4, ale konwertuje do nowego formatu HLS, adaptacyjnego przesyłania strumieniowego, z rozszerzeniem pliku .m3u8 .
Pliki .m3u8 są w zasadzie tylko opakowaniem plików tekstowych, są bardzo małe (300-500 bajtów), a po otwarciu w edytorze tekstu zawierają łącza do różnych rozmiarów wideo
EXTM3U EXT-X-INDEPENDENT-SEGMENTS EXT-X-STREAM-INF: ID-PROGRAMU = 1, SZEROKOŚĆ PASMA = 256000, ROZDZIELCZOŚĆ = 180x320, KODEKS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504104512749568 / pu 180x320 / _Z42SY5zwMlLdFYx.m3u8 EXT-X-STREAM-INF: ID-PROGRAMU = 1, SZEROKOŚĆ PASMA = 832000, ROZDZIELCZOŚĆ = 360x640, KODEKS = "mp4a.40.2, avc1.42001f" / ext_tw_video / 844504104512 Phfjbbx2yinirLi.m3u8
<div id="playerContainer"
id="playerContainer"
elementu, poszukaj og:video:url
i otwórz adres URL w treści oraz sprawdź jego źródło.
document.querySelector('video').src
w konsoli konsoli narzędzi programisty przeglądarki.
<video src="blob:https://www.example.tv/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<source src="https://cdn.example.tv/api/media/tv/xyzxyz/index" type="application/x-mpegurl">
</video>
Miałem też blob:
adres URL video/@src
, ale oglądając Developer tools
> Network
podczas odtwarzania okazało się, że video/source/@src
był to adres URL m3u8
listy odtwarzania.
Film z m3u8
kopią zapasową można łatwo pobrać:
ffplay -i "https://cdn.example.tv/api/media/tv/xyzxyz/1080/index.m3u8"
ffmpeg -i "https://cdn.example.tv/api/media/tv/xyzxyz/1080/index.m3u8" -codec copy file.mkv
tl; dr - adres URL obiektu blob brzmi jak plik binarny, który chcesz uzyskać, ale może być łatwiejszy sposób na uzyskanie wideo. Wystarczy sprawdzić kartę Sieć w narzędziach programistycznych podczas odtwarzania wideo, aby zobaczyć, co faktycznie pobierasz.
-i <URL> -i <URL> -i <URL>
aby połączyć wideo, audio i napisy w jednym wyjściu :)
m3u8
Metalist (tj M3U8 plik odnosząc inne pliki M3U8) i ffmpeg będzie pobrać i scalić je prawidłowo, więc nie trzeba ręcznie określić wiele wejść -i
.
Znalazłem inny sposób na pobranie wideo za pomocą blob url
in Vimeo
(zobacz inną odpowiedź na tej stronie).
To rozwiązanie jest odpowiednie tylko wtedy, gdy chcesz tylko wideo bez dźwięków!
Więc jeśli chcesz pobrać tylko wideo Vimeo (często bez dźwięków), mogę potwierdzić, że to rozszerzenie Google Chrome działa naprawdę dobrze: Flash Video Downloader .