ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl

Jigdo

  • *****
  • 506
    • Zobrazit profil
Jeste donedavna mi fungovalo stahovani z iVysilani Ceske Televize s youtube-dl,
po zmene:

Kód: [Vybrat]
sudo nano +362 /etc/ssl/openssl.cnf
###################
CipherString = DEFAULT@SECLEVEL=1 místo uvedené 2.

Dneska jsem zkousel z webu iVysilani stahnout film Vinnetou.

a uz to nefeunguje... ani s youtube-dl ani s yt-dlp

Kód: [Vybrat]
$ yt-dlp -F "https://www.ceskatelevize.cz/porady/16827-vinnetou/" --verbose
[code][debug] Command-line config: ['-F', 'https://www.ceskatelevize.cz/porady/16827-vinnetou/', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, err UTF-8, pref UTF-8
[debug] yt-dlp version 2021.12.01 [91f071af6] (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-5.10.76-x86_64-with-debian-10.11
[debug] exe versions: ffmpeg 4.1.8-0, ffprobe 4.1.8-0, phantomjs ., rtmpdump 2.4
[debug] Optional libraries: Crypto, keyring, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [CeskaTelevize] Extracting URL: https://www.ceskatelevize.cz/porady/16827-vinnetou/
[CeskaTelevize] 16827-vinnetou: Downloading webpage
ERROR: [CeskaTelevize] 16827-vinnetou: Unable to extract iframe player url; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 597, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/ceskatelevize.py", line 105, in _real_extract
    webpage, 'iframe player url', group='url')), query={'autoStart': 'true'})
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 1171, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
yt_dlp.utils.RegexNotFoundError: Unable to extract iframe player url; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 597, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/ceskatelevize.py", line 105, in _real_extract
    webpage, 'iframe player url', group='url')), query={'autoStart': 'true'})
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 1171, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
yt_dlp.utils.RegexNotFoundError: Unable to extract iframe player url; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1329, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1398, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 623, in extract
    raise type(e)(e.msg, **kwargs)
yt_dlp.utils.RegexNotFoundError: [CeskaTelevize] 16827-vinnetou: Unable to extract iframe player url; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.; please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; type  yt-dlp -U  to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.

Kód: [Vybrat]
$ youtube-dl -F "https://www.ceskatelevize.cz/porady/16827-vinnetou/" --verbose
[code][debug] System config: []
[debug] User config: [u'-o', u'~/CT/%(title)s-%(id)s-f%(format_id)s.%(ext)s', u'-f', u'bestvideo+bestaudio/best', u'-vvvvv']
[debug] Custom config: []
[debug] Command-line args: [u'-F', u'https://www.ceskatelevize.cz/porady/16827-vinnetou/', u'--verbose']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 2.7.16 (CPython) - Linux-5.10.76-x86_64-with-debian-10.11
[debug] exe versions: ffmpeg 4.1.8-0, ffprobe 4.1.8-0, phantomjs ., rtmpdump 2.4
[debug] Proxy map: {}
[CeskaTelevizePorady] 16827-vinnetou: Downloading webpage
ERROR: Unable to extract iframe player url; 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.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/ceskatelevize.py", line 285, in _real_extract
    webpage, 'iframe player url', group='url')), query={
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract iframe player url; 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.


Nevi nekdo kde je chyba?
« Poslední změna: 24. 12. 2021, 12:08:17 od Petr Krčmář »


XX125

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #1 kdy: 24. 12. 2021, 12:48:51 »
Funguje. Zrovna včera jsem z iVysilání stahoval jeden pořad přes youtube-dl. Stačí najít a zadat adresu mpd streamu.

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #2 kdy: 24. 12. 2021, 14:04:06 »
Funguje. Zrovna včera jsem z iVysilání stahoval jeden pořad přes youtube-dl. Stačí najít a zadat adresu mpd streamu.
Taky jsem to řešil, mpd stream jsem našel, ale pomocí youtube-dl nešlo stahovat. Musel jsem mpd stream stahovat přes VLC -> Uložit -> Převést (Video - H.264 + MP3 (TS)).

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #3 kdy: 24. 12. 2021, 14:37:59 »
Funguje. Zrovna včera jsem z iVysilání stahoval jeden pořad přes youtube-dl. Stačí najít a zadat adresu mpd streamu.

Kde je ten MPD  stream schovany?

Zkousel jsem Brave i Chromium a v F12/Network tam nikde nevidim manifest.mpd :(
iPrima manifest.mpd stale zobrazuje ......

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #4 kdy: 24. 12. 2021, 14:55:58 »
Tak jak už se tu řešilo asi před rokem, ČT má u některých pořadů zapnutou DRM, kvůli právům. Takže to v tuto chvíli nestáhneš.


XX125

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #5 kdy: 24. 12. 2021, 15:39:46 »
Kde je ten MPD  stream schovany?
F12, na webu spustíš přehrávání a ve vývojářských nástrojích spustíš nahrávání - červené kolečko. Pak už MPD snadno vyhledáš.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #6 kdy: 24. 12. 2021, 17:01:17 »
Tak jak už se tu řešilo asi před rokem, ČT má u některých pořadů zapnutou DRM, kvůli právům. Takže to v tuto chvíli nestáhneš.

Jasne uz mi to dava smysl  = *.m4s

Co je ale divne ze mi prehravani nefunguje ani v prohlizeci Brave v 1.33.106 / Chromium Version 90.0.4430.212 (Developer Build) built on Debian 11.0, running on Debian 11.2 (64-bit)  i se zapnutym DRM WidevineCDM ..z ceske IP od O2 a jak tak koukam iPrima taky nasazuje DRM ....a taky to nefunguje ....

https://www.ceskatelevize.cz/porady/16829-vinnetou-posledni-vystrel/
https://www.iprima.cz/filmy/bajecna-leta-pod-psa

leten

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #7 kdy: 24. 12. 2021, 17:47:46 »
Citace
Co je ale divne ze mi prehravani nefunguje ani v prohlizeci Brave v 1.33.106 / Chromium Version 90.0.4430.212 (Developer Build) built on Debian 11.0, running on Debian 11.2 (64-bit)  i se zapnutym DRM WidevineCDM ..z ceske IP od O2 a jak tak koukam iPrima taky nasazuje DRM ....a taky to nefunguje ....

https://www.ceskatelevize.cz/porady/16829-vinnetou-posledni-vystrel/
https://www.iprima.cz/filmy/bajecna-leta-pod-psa

Ubuntu 20.04 LTS, Brave Verze 1.33.106 Chromium: 96.0.4664.110 (Oficiální sestavení) (64bitový)
Po otevření odkazu vyjela v přehrávači hláška o DRM + popup prohlížeče jestli chci nainstalovat Widevine, dal jsem povolit a Vinnetou se spustil.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #8 kdy: 24. 12. 2021, 17:54:54 »
Citace
Co je ale divne ze mi prehravani nefunguje ani v prohlizeci Brave v 1.33.106 / Chromium Version 90.0.4430.212 (Developer Build) built on Debian 11.0, running on Debian 11.2 (64-bit)  i se zapnutym DRM WidevineCDM ..z ceske IP od O2 a jak tak koukam iPrima taky nasazuje DRM ....a taky to nefunguje ....

https://www.ceskatelevize.cz/porady/16829-vinnetou-posledni-vystrel/
https://www.iprima.cz/filmy/bajecna-leta-pod-psa

Ubuntu 20.04 LTS, Brave Verze 1.33.106 Chromium: 96.0.4664.110 (Oficiální sestavení) (64bitový)
Po otevření odkazu vyjela v přehrávači hláška o DRM + popup prohlížeče jestli chci nainstalovat Widevine, dal jsem povolit a Vinnetou se spustil.


Vsak to ja taky, nechal jsem Widevine v Brave nainstalovat, plus je zapnuto.

Omlouvame se, ale toto video lze prehrat pouze v prohlizeci s podporou DRM
https://www.ceskatelevize.cz/porady/16829-vinnetou-posledni-vystrel/

A treba tohle funguje bez problemu
https://www.ceskatelevize.cz/porady/11416641987-sest-symfonii-bohuslava-martinu/218542151550002/

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #9 kdy: 24. 12. 2021, 20:04:25 »
Většina zahraniční produkce je na ČT šifrovaná. Poznáš to podle toho, že v .mpd je PSSH klíč a je použit licenční server https://ivys-wvproxy.o2tv.cz/license .
Ještě nedávno existovalo dost nástrojů, které vše usnadnily, ale před týdnem Google zablokoval leaknuté klíče, takže je potřeba mít certifikované zařízení, z něj extrahovat potřebné soubory a ty použít k vydolovaní dešifrovacích klíčů z licenčního serveru. Vše se dá najít.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #10 kdy: 24. 12. 2021, 20:18:09 »
A kdybych na to chtěl jít lamersky a nevadila by mi rekomprese (kterou bych stejně chtěl udělat, přijde mi, že jejich H.264 má zbytečně velký bitrate), jak byste dumpovali přimo bitmapy zapsané prohlížečem do xserveru? (ano, umím to udělat ffmpegem s x11 capture, ale tam je třeba nutné taky sladit framerate, nastavit rozlišení 1:1 aby to nebylo naškálované a tak)

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #11 kdy: 24. 12. 2021, 22:15:47 »
To už je jednodušší zachytávat při přehrávání, ale nikdy to nebude ono, protože výsledné video se stejně většinou trhá apod.

Pokud je ještě zájem o Vinnetoua, tak ho stačí stáhnout přes yt-dlp a dešifrovat mp4decryptem, klíče jsou tady (za 24hod. expirují).

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #12 kdy: 25. 12. 2021, 00:42:39 »
To už je jednodušší zachytávat při přehrávání, ale nikdy to nebude ono, protože výsledné video se stejně většinou trhá apod.
No a přesně proto jsem se ptal na zachytávání jednotlivých dekódovaných framů…

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #13 kdy: 25. 12. 2021, 01:48:42 »
Je to kombinace dvou problémů: za prvé je ten pořad zaDRMovaný, takže ho pomocí yt-dlp stáhnout nejde. To by vám ale yt-dlp měl říct:
Kód: [Vybrat]
mike@lion:/srv/ram> yt-dlp -F https://www.ceskatelevize.cz/porady/16827-vinnetou/
[CeskaTelevize] 16827-vinnetou: Downloading webpage
[CeskaTelevize] 16827-vinnetou: Downloading webpage
[CeskaTelevize] 16827-vinnetou: Downloading webpage
[CeskaTelevize] 16827-vinnetou: Downloading JSON metadata
[CeskaTelevize] 16827-vinnetou: Downloading JSON metadata
[CeskaTelevize] 16827-vinnetou: Downloading MPD manifest
[CeskaTelevize] 16827-vinnetou: Downloading JSON metadata
[CeskaTelevize] 16827-vinnetou: Downloading JSON metadata
[CeskaTelevize] 16827-vinnetou: Downloading m3u8 information
[download] Downloading playlist: Vinnetou - iVysílání | Česká televize
[CeskaTelevize] playlist Vinnetou - iVysílání | Česká televize: Collected 1 videos; downloading 1 of them
[download] Downloading video 1 of 1
ERROR: [CeskaTelevize] 61924494877974772: This video is DRM protected
[download] Finished downloading playlist: Vinnetou - iVysílání | Česká televize
Takže pravděpodobně narážíte nejdřív na druhý problém: při nedávném přepracování webu iVysílání začátkem prosince došlo ke změnám, kvůli kterým yt-dlp přestal fungovat. Je to už opravené v gitu (https://github.com/yt-dlp/yt-dlp/issues/1899), ale ještě od té doby nevyšel release. Některým uživatelům to pořád nefunguje (https://github.com/yt-dlp/yt-dlp/issues/2043), ale to vypadá spíš na nějaký problém se SSL/TLS kompatibilitou. Původní youtube-dl nemá od června žádné nové změny, takže tam se oprava asi v dohledné době očekávat nedá.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #14 kdy: 25. 12. 2021, 02:22:45 »
Jinak jak tohle teda funguje?
  • Firefox stáhne šifrovaný stream a klíč a předá ho blobu (videwine).
  • Z blobu leze dešifrovaný H.264 bitstream (+ audio), nebo blob dělá přímo H.264 decoding (nějakým obfuskovaným způsobem aby z něj nešel ten originální stream vytáhnout) a lezou z něj bitmapy? To druhé se mi nějak nezdá, že by blob měl dekodéry pro různé formáty a dělal to.
  • Každopádně, jaktože neexistuje postup, jak se na Firefox přisát (patchnutím Firefoxu, hooknutím nějaké funkce přes gdb) a stream či bitmapy si dumpnout? To ještě nikdo nenaprogramoval, nebo je tam nějaký těžký problém, který nevidím?