Z racji tego, że seria edukacyjnych poradników, jak można wykorzystać dostępne właściwie „pod ręką” narzędzia, takie jak narzędzia dla deweloperów (twórców witryn) w przeglądarkach internetowych, do analizy i np. pobierania pozornie niedobieralnych materiałów (np. filmów wideo) z różnych stron cieszy się dużą popularnością, to dziś idzie na tapet kolejna technika. Tym razem jednak wykorzystamy również dodatkowe narzędzie, a wszystko to na przykładzie pobierania filmów z serwisu TVP VOD.
Pobieranie filmów z serwisu TVP VOD
Mógłbym napisać, że wybór serwisu TVP VOD jest przypadkowy, bo po prostu szukałem jakiegoś serwisu z filmami serwowanymi jako MPEG-DASH, czyli MDP, tak właśnie, jak ma to miejsce w przypadku TVP VOD. Ale byłoby to tylko pół prawdy, bo wybór akurat TVP VOD nie był do końca losowy, bo chciałem sobie zarchaizować niektóre pozycje „do obejrzenia na później”, zanim „demokratyczna nowa większość” je „demokratycznie skasuje”.
- Pobieranie filmów z serwisu Vider.info za pomocą narzędzi dla deweloperów i zmodyfikowanego nagłówka UA (user agent)
- Narzędzia dla deweloperów jako sposób wspierający pobieranie (zapisywanie) zabezpieczonych filmów z Vimeo
- Narzędzia dla deweloperów jako sposób wspierający pobieranie (zapisywanie) filmów m.in. z prywatnych grup na Facebooku
- Przez link i miniaturkę do celu („copy link and thumbnail”), czyli pobieranie materiałów wideo hostowanych w serwisie Wistia
- Pobieranie filmów z serwisu Freedisc.pl za pomocą narzędzi dla deweloperów i odpowiedniego polecenia cURL
Zaczynamy dość klasycznie, czyli od narzędzi dla deweloperów (twórców witryn) dostępnych chyba w większości przeglądarek internetowych (można uruchomić z menu, lub np. klawiszem F12) i w zakładce „sieć” szukamy pliku „mdp”:
Teraz potrzebujemy jego adres, który można skopiować albo ze szczegółów po prawej stronie, albo klikając na pliku „video.mdp” (akurat w tym przypadku tak się nazywa) prawym przyciskiem myszy, następnie: kopiuj wartość -> kopiuj adres URL.
Skopiowany adres będzie wyglądał podobnie do tego:
https://rsdt-waw1401-162.tvp.pl/token/video/vod/69041033/20231204/636501380/HcP9KSvjWYnCuEL0iEmLGQoXiyVKWqzSHn3t6R8MuEVGz5edfePCwlxxTZyocq5fkyJ8cliFkgvaJXX6uQehxwSzpPfH-FgdgKAUf5tzfZKJJhNIQzW5HR97LllzKFqZz0okMHPMYz6NMQGbtU0OlxrGEQTTaLttv8Q1ZNg-TlA/video.ism/video.mpd
Bezpośrednio z poziomu przeglądarki nic sensownego tu nie zapiszemy, dlatego sięgamy po narzędzie/program „yt-dlp”, którego nazwa może sugerować, że służy do pobierania filmów z YouTube, i choć jest to prawda, to od dawna nie tylko…
By całość usprawnić jeszcze bardziej, to do katalogu z programem „yt-dlp” musimy dorzucić jeszcze kilka plików z innego narzędzia, a mianowicie „Codex FFmpeg”, a konkretnie z archiwum „ffmpeg-7.1-essentials_build.zip” (lub nowszego w przyszłości), z którego 3 pliki wykonywalne (exe) kopiujemy do katalogu z programem „yt-dlp”:
Tak uzbrojeni, możemy sprawić, że plik MDP zmieni się w plik wideo, za pomocą polecenia z wiersza poleceń (oczywiście będąc w katalogu z „yt-dlp”):
yt-dlp.exe -f bestvideo+bestaudio "URL" --no-part -o film.mp4
Np.:
yt-dlp.exe -f bestvideo+bestaudio "https://rsdt-waw1401-162.tvp.pl/token/video/vod/69041033/20231204/636501380/HcP9KSvjWYnCuEL0iEmLGQoXiyVKWqzSHn3t6R8MuEVGz5edfePCwlxxTZyocq5fkyJ8cliFkgvaJXX6uQehxwSzpPfH-FgdgKAUf5tzfZKJJhNIQzW5HR97LllzKFqZz0okMHPMYz6NMQGbtU0OlxrGEQTTaLttv8Q1ZNg-TlA/video.ism/video.mpd" --no-part -o film.mp4
To spowoduje rozpoczęcie pobierania materiału w najlepszej jakości wideo i audio. Natomiast możemy też sprawdzić, jakie mamy możliwości i wybrać te, które będą nas interesować. Bo nie zawsze jest sens pobierać np. film w najlepszej możliwej jakości.
W tym celu korzystamy z polecenia:
yt-dlp.exe -F "URL"
Np.:
yt-dlp.exe -F "https://rsdt-waw1401-162.tvp.pl/token/video/vod/69041033/20231204/636501380/HcP9KSvjWYnCuEL0iEmLGQoXiyVKWqzSHn3t6R8MuEVGz5edfePCwlxxTZyocq5fkyJ8cliFkgvaJXX6uQehxwSzpPfH-FgdgKAUf5tzfZKJJhNIQzW5HR97LllzKFqZz0okMHPMYz6NMQGbtU0OlxrGEQTTaLttv8Q1ZNg-TlA/video.ism/video.mpd"
Co spowoduje wyświetlenie dostępnych opcji/wariantów:
Załóżmy, że interesuje nas wariant „http-2369”, a więc plik w formacie mp4, o rozdzielczości 960×540, wraz z audio (bark oznaczenia „video only” lub „audio only”) . Tak więc polecenie do zapisania materiału (filmu) będzie wyglądać tak:
yt-dlp.exe -f http-2369 "URL" --no-part -o film.mp4
A konkretnie:
yt-dlp.exe -f http-2369 "https://rsdt-waw1401-162.tvp.pl/token/video/vod/69041033/20231204/636501380/HcP9KSvjWYnCuEL0iEmLGQoXiyVKWqzSHn3t6R8MuEVGz5edfePCwlxxTZyocq5fkyJ8cliFkgvaJXX6uQehxwSzpPfH-FgdgKAUf5tzfZKJJhNIQzW5HR97LllzKFqZz0okMHPMYz6NMQGbtU0OlxrGEQTTaLttv8Q1ZNg-TlA/video.ism/video.mpd" --no-part -o film.mp4
A w efekcie tego, zostanie pobrany i zapisany plik, o wybranych parametrach:
I to właściwie wszystko, przynajmniej jeśli chodzi po podstawy pracy z programem „yt-dlp”, przynajmniej na potrzeby tego poradnika. Ale skoro jest to cykl edukacyjny, to zachęcam do samodzielnych eksperymentów, i samodzielnego odkrywania dodatkowych możliwości…
![(!) Zgłoś błąd na stronie](https://webinsider.pl/wp-content/uploads/2019/12/webinsider_zglos-blad-na-stronie_200x29_888888.png)
![Pomogłem? To może postawisz mi wirtualną kawę?](https://webinsider.pl/wp-content/uploads/2025/12/pomogle-postaw-mi-wirtualna-kawe-202308-6f4e37.png)
- Wtyczka BackWPup w wersji 5.x to doskonały przykład, jak wylać dziecko z kąpielą i z relatywnie świetnego narzędzia zrobić właściwie bezwartościowego gniota - 1970-01-01
- Testowy przelew w Bitcoinach z najniższą prowizją, czyli krótka historia o tym, jak zamroziłem BTC na (ponad) rok - 1970-01-01
- Nowy system kopii zapasowych w Home Assistant 2025.1 to zapewne krok w dobrym kierunku, ale zdecydowanie przedwczesny - 1970-01-01
wszystko fajnie, ale niestety piszesz bardzo nieszczegółowo. Probowałem krok po kroku zrobi to co ty, a tak na prawde nawet nie napisałeś co trzeba konkretnie pobrac z tego youtube dl, gdzie wpisac komende, gdzie wkleic te komende z pliku mdt…godzine probowałem połapać sie co z czym nasciagałem sie tych archiw i niewiem co robic
No nie będę za każdym razem tłumaczył, co to jest wiersz poleceń i jak go uruchomić, do tego poległeś na plikach (masz bezpośredni link do listy paczek do pobrania, zależnie od używanego systemu), to być może to nie jest temat dla Ciebie. Są wtyczki do przeglądarek, które być może będą w Twoim przypadku lepszym wyborem. Tu jednak minimum wiedzy – choćby czym jest wspomniany wiersz poleceń – jest potrzebne.
Brawo za Twoją inicjatywę i przekucie jej w masową realizację dla wszystkich. Dziękuję
Dzięki za tutorial, ze swojej strony mogę polecić nakładkę youtube-dl-gui. Ale czy mógłbyś rozszerzyć swój tutorial o treści, które wymagają zalogowania się i opłacenia, czyli jak ściągnąć film, który _opłaciłem_ i mam do niego dostęp po zalogowaniu się do VOD TVP?
Dzięki
Ciężko będzie, bo nie mam konta, a tym bardziej nie mam tam opłaconych treści. Zresztą skoro są w likwidacji (nawet obecna nazwa TVP to Telewizja Polska S.A. w likwidacji), to byłaby to słaba inwestycja ;-)
w międzyczasie rozgryzłem problem (cały wczorajszy wieczór o_O). polecam tę nakładkę: media-downloader 5.2.0 i do tego w Download Options dodać –cookies „cookiesTVP.txt”. Z kolei cookies eksportujemy rozszerzeniem Chrome Cookie-Editor (format Netscape) i działa! Film z ograniczeniem 48h możemy pobrać i obejrzeć w dowolnym czasie :)
No tak, bo w ciasteczku jest zapisana pewnie sesja logowania.
Dokładnie. Problem był z logowaniem do konta na vod.tvp (żeby uwiarygodnić zakup filmu), bo wcześniej używałem parametrów –username USERNAME –password PASS, ale to nie działało w przypadku serwisu TVP, a –cookies-from-browser Chrome (youtube-dl sam sobie zagląda do cookies przeglądarki) też nie chciało działać. Dopiero ostatnia opcja z wyciągnięciem wszystkich cookies vod.tvp ręcznie przyniosła rezultat; cały wieczór walki :/
Ważne, że się udało. Ogólnie, tam, gdzie logowanie, a trzeba skorzystać z czegoś poza przeglądarką (poza np. narzędziami dla deweloperów), zaczyna się zabawa. Na szczęście właśnie z pomocą często przychodzą ciasteczka i ich „kradzież”. Od dawna mówi się, że kradzież ciasteczka to dziura, bo wtedy żadne zabezpieczenia związane z logowaniem nie mają znaczenia. Ale jak widać, są sytuacje, że dobrze, że nie ma tu mechanizmów zabezpieczających ciasteczka ;-)
PS. Dzięki za wyczerpującą informację, zapewne komuś się przyda.
tak przy okazji, udało się komuś ściągnąć jakiś film z Netflixa (po zalogowaniu)?
Wypluwa niestety to:
[tvp] 60612887: Downloading webpage
[tvp:embed] 60612887: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the –verbose flag and include its complete output.
Zmieniłem w poleceniach youtube-dl na yt-dlp (wcześniej był jako alternatywne rozwiązanie podany), bo ten pierwszy od dawna nie miał już aktualizacji i lepiej przejść właśnie na ten drugi. Sprawdziłem, yt-dlp działa.
Dzięki z update yt-dpl. (highfive)
Przy okazji pytanko: czy da się „skleić” stumień video (video only) i audio (audio only) z linii komend, jeśli ścieżki video i audio są trzymane osobno?
Przykładowo:
hls-audio0-English m3u8 audio only │ m3u8 │ audio only unknown [en] English
dash-f1-a1-x3 m4a audio only │ ~ 76.07MiB 128k dash │ audio only mp4a.40.2 128k 48k DASH audio, m4a_dash
mss-128 isma audio only 2 │ ~ 75.97MiB 128k ism │ audio only AACL 128k 48k [und]
direct-0 mp4 unknown │ ≈350.19MiB 590k https │ unknown unknown
direct-1 mp4 unknown │ ≈486.71MiB 820k https │ unknown unknown
direct-2 mp4 unknown │ ≈741.93MiB 1250k https │ unknown unknown
direct-3 mp4 unknown │ ≈ 1.01GiB 1750k https │ unknown unknown
direct-4 mp4 unknown │ ≈ 1.65GiB 2850k https │ unknown unknown
direct-5 mp4 unknown │ ≈ 3.14GiB 5420k https │ unknown unknown
direct-6 mp4 unknown │ ≈ 5.27GiB 9100k https │ unknown unknown
mss-401 ismv 400×224 │ ~238.01MiB 401k ism │ H264 401k video only [und]
dash-f1-v1-x3 mp4 400×224 25 │ ~238.51MiB 402k dash │ avc1.42c01f 402k video only DASH video, mp4_dash
hls-530 mp4 400×224 25 │ ~314.59MiB 530k m3u8 │ avc1.42c01f 530k video only
mss-602 ismv 480×272 │ ~357.31MiB 602k ism │ H264 602k video only [und]
dash-f2-v1-x3 mp4 480×272 25 │ ~357.48MiB 602k dash │ avc1.42c01f 602k video only DASH video, mp4_dash
hls-730 mp4 480×272 25 │ ~433.56MiB 730k m3u8 │ avc1.42c01f 730k video only
mss-802 ismv 640×360 │ ~476.02MiB 802k ism │ H264 802k video only [und]
dash-f3-v1-x3 mp4 640×360 25 │ ~476.85MiB 803k dash │ avc1.4d401f 803k video only DASH video, mp4_dash
hls-931 mp4 640×360 25 │ ~552.92MiB 932k m3u8 │ avc1.4d401f 932k video only
mss-1204 ismv 800×448 │ ~714.63MiB 1204k ism │ H264 1204k video only [und]
dash-f4-v1-x3 mp4 800×448 25 │ ~714.85MiB 1204k dash │ avc1.4d401f 1204k video only DASH video, mp4_dash
hls-1332 mp4 800×448 25 │ ~790.92MiB 1333k m3u8 │ avc1.4d401f 1333k video only
mss-2109 ismv 960×540 │ ~ 1.22GiB 2109k ism │ H264 2109k video only [und]
dash-f5-v1-x3 mp4 960×540 25 │ ~ 1.22GiB 2110k dash │ avc1.4d401f 2110k video only DASH video, mp4_dash
hls-2237 mp4 960×540 25 │ ~ 1.30GiB 2238k m3u8 │ avc1.4d401f 2238k video only
mss-3508 ismv 1280×720 │ ~ 2.03GiB 3508k ism │ H264 3508k video only [und]
dash-f6-v1-x3 mp4 1280×720 25 │ ~ 2.03GiB 3509k dash │ avc1.64001f 3509k video only DASH video, mp4_dash
hls-3637 mp4 1280×720 25 │ ~ 2.11GiB 3637k m3u8 │ avc1.64001f 3637k video only
mss-5018 ismv 1920×1080 │ ~ 2.91GiB 5018k ism │ H264 5018k video only [und]
dash-f7-v1-x3 mp4 1920×1080 25 │ ~ 2.91GiB 5020k dash │ avc1.640029 5020k video only DASH video, mp4_dash
hls-5147 mp4 1920×1080 25 │ ~ 2.98GiB 5148k m3u8 │ avc1.640029 5148k video only
Tu już ffmpeg wchodzi do gry i pewnie coś w stylu (sprawdź jeszcze w dokumentacji):