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

Jigdo

  • ****
  • 499
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #75 kdy: 04. 09. 2023, 12:35:10 »
Já zahraniční tituly z iVysílání vůbec nestahuji. Zajímají mě jen tituly, které ČT sama vyrobí a ty nemá cenu stahovat jinde, protože tam je stejně mají stažené z iVysílání.

Do anglofonnich zemi spousta francouzske produkce nepronikla z nejakeho zahadneho duvodu ;) takze nektere filmy od Funese atd. je prijemne shlednout po letech. To same i z nektere Italske a nemecke "pre 1989" produkce ......


Pro ty kdo by chteli i orginalni zvukovou stopu staci tohle (pro tituly co nejsou sifrovane - pro ty co jsou je treba pouzit trochu pracnejsi postup, ktery jsem popsal vyse s "N_m3u8DL-RE" ).


yt-dlp 2023.07.16.012858 (ceskatelevize)
------------------------------------------------------------------------
Kód: [Vybrat]
sudo curl -L https://github.com/bashonly/yt-dlp/releases/download/2023.07.16.012858/yt-dlp_linux -o /usr/local/bin/yt-ct
sudo chmod a+rx /usr/local/bin/yt-ct

Kód: [Vybrat]
yt-ct -f "bv*+mergeall[vcodec=none]" --audio-multistreams -vvvvvv -o '%(title)s-%(id)s.%(ext)s' --proxy socks5://127.0.0.1:1080 https://www.ceskatelevize.cz/porady/1001769312-dobrodruzstvi-rabina-jakoba/
#Pokud pouzivate Proxy
--proxy socks5://127.0.0.1:1080


Muj Conf:
Kód: [Vybrat]
udo nano /etc/yt-dlp.conf
#######################
-o '%(title)s.f%(format_id)s.[%(id)s].%(ext)s'
#-o '%(title)s.f%(format_id)s.%(ext)s'
#-o %(title)s.%(ext)s

#Embed thumbnail in the video as cover art
--embed-thumbnail

#Embed subtitles in the video (only for mp4, webm and mkv videos)
--embed-subs

#Add chapter markers to the video file (Alias: --add-chapters)
--embed-chapters

#Embed metadata to the video file. Also embeds chapters/infojson if present unless --no-embed-chapters/--no-embed-info-json are used (Alias: --add-metadata)
--embed-metadata

#Embed the infojson as an attachment to mkv/mka video files
--embed-info-json

#Allow multiple audio streams to be merged into a single file
--audio-multistreams

#Languages of the subtitles to download (can' be regex) or "all" separated by commas, e.g.
#--sub-langs "en.*,ja". You can prefix the language code with a "-" to exclude it from
#the requested languages, e.g. --sub-langs all,-live_chat. Use --list-subs for a list
#of available language tags
--sub-langs all
--write-subs

#Use this prefix for unqualified URLs. E.g. "gvsearch2:python" downloads two videos from
#google videos for the search term "python". Use the value "auto" to let yt-dlp guess
#("auto_warning" to emit a warning when guessing). "error" just throws an error. The
#default value "fixup_error" repairs broken URLs, but emits an error if this is not
#possible instead of searching
--default-search ytsearch


#SponsorBlock categories to create chapters for, separated by commas. Available
#categories are sponsor, intro, outro, selfpromo, preview, filler, interaction,
#music_offtopic, poi_highlight, chapter, all and default (=all). You can prefix the
#category with a "-" to exclude it. See [1] for description of the categories. E.g.
#--sponsorblock-mark all,-preview [1] https://wiki.sponsor.ajay.app/w/Segment_Categories
--sponsorblock-mark all


Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #76 kdy: 05. 09. 2023, 09:55:04 »
Já tomu rozumím, že si chce někdo i zahraniční tituly stáhnout z iVysílání a vůbec proti tomu nic nemám. Chápu i ten SOCKS nejspíš kvůli české IP. Jen jsem naznačil, že když si sem tam stáhnu něco vyrobené v ČT, tak prakticky nepotřebuji dešifrovat a proto se jen někdy podívám, jestli to stále jde.

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #77 kdy: 06. 09. 2023, 13:20:05 »
Taky používám https://cdm-project.com/CDM-Tools/WKS-Keys , ale z telefonu mám dump jen L3, protože L1 se mi určitě nepodařily vytáhnout. Bylo to z šuplíkového Nexusu 6, do kterého jsem musel nahrát poslední originální ROM od Googlu (asi Android 7.1.2), ale už si nepamatuji, co jsem použil na dumpnutí, ale určitě něco z Githubu. Potom zde https://curlconverter.com konvertuji cURL do headers.py a následně stačí PSSH a licenční server.

WKS repo je uz privatni :(

Ale objevilo se tam nove
https://cdm-project.com/Decryption-Tools/TPD-Keys.git

Zkousel to nekdo s ceskou verzi SST?

Ještě lze klíče vypreparovat pomocí Wayback Machine
https://web.archive.org/web/20230301175904/https://cdm-project.com/CDM-Tools/WKS-Keys/commit/b53025563f154b89c50d7a97f769fab66fc1a8f2


Jigdo

  • ****
  • 499
    • Zobrazit profil
Pred nedavnem se objevil zajimavy python skrip na stahovani ze stranek
ktere ho nabizi zdarma a neni treba cucat PSSH/KID/KEY v prohlizeci (F12),
ale staci mit jen svuj device_private_key/device_client_id_blob a nebo remote a spravnou IP adresu ;)
https://github.com/stabbedbybrick/freevine


V nabidce jsou v soucasnosti:

ROKU - US IP:  1080p, DD5.1
https://therokuchannel.roku.com/

CTV - CA IP:   1080p, DD5.1
https://www.ctv.ca/movies

ALL4 - UK IP:  1080p, AAC2.0
https://www.channel4.com/categories/film

UKTV - UK IP:  1080p, AAC2.0
https://uktvplay.co.uk/collections/engineering

STV - UK IP:   1080p, AAC2.0
https://player.stv.tv/categories/movies

CRKL - US IP:  1080p, AAC2.0
https://www.crackle.com/movies

ITV - UK IP:   720p,  AAC2.0
https://www.itv.com/watch/categories/films

TUBI US IP:  720p,  AAC2.0
https://tubitv.com/movies

PLUTO - US IP: 720p,  AAC2.0
https://pluto.tv/en/on-demand/movies


Neni tady nekdo zkuseny co by se mu chtelo napsat
to i pro iVysilani (tituly ktere jsou sifrovane)?


Jigdo

  • ****
  • 499
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #80 kdy: 30. 10. 2023, 17:37:37 »
YT-DLP je uz ve verzi stable@2023.10.13 a stale CT nefunguje :(


Mozna se to bude nekomu hodit, takhle to funguje mne:
--------------------------------------------------------------------------------
#NoDRM
#Only CS Audio/Subs

#Instalace
sudo curl -L https://github.com/bashonly/yt-dlp/releases/download/2023.10.03.054029/yt-dlp_linux -o /usr/local/bin/yt-ct
sudo chmod a+rx /usr/local/bin/yt-ct

yt-ct URL

#Nefunguje multistream stahovani....drive jsem pouzival tohle:
yt-ct -f "bv*+mergeall[vcodec=none]" --audio-multistreams -vvvvvv -o '%(title)s-%(id)s.%(ext)s' --proxy socks5://127.0.0.1:1080
ale v nove verzi yt-dlp 2023.10.03.054029 (ceskatelevize) uz to stahuje vsechny audio stopy :(
a navic "-S mp4 a nebo -f mp4" nefunguje a video se uklada v mkv kontejneru





--------------------------------------------------------------------------------
Alternativa k YT-DLP je N_m3u8DL-RE a tento program funguje i s Audiaem, ktere je Multistream (Dualni),
ale titulky je treba vytahnout i s MPD a manualne stahnout jednim prikazem ........
nada se to nejak automatizovat aby N_m3u8DL-RE nasel ty titulky, nevi nekdo?

#Multistream #Audio
#NoDRM - #F12 (Chrome)


#######
Filter:
/(encryption=wv)|(subti)/



######################
#Instalace N_m3u8DL-RE
curl --doh-url https://odvr.nic.cz/doh -kLO https://github.com/nilaoda/N_m3u8DL-RE/releases/download/v0.2.0-beta/N_m3u8DL-RE_Beta_linux-x64_20230628.tar.gz
sudo tar xvf N_m3u8DL-RE_Beta_linux-x64_20230628.tar.gz --strip-components=1 -C /usr/local/bin/ --verbose
sudo chmod a+rx /usr/local/bin/N_m3u8DL-RE
sudo chown root:root /usr/local/bin/N_m3u8DL-RE
ls -ilha /usr/local/bin/
N_m3u8DL-RE --version


#SUB
curl --doh-url https://odvr.nic.cz/doh -o pc-sub.vtt https://imgct.ceskatelevize.cz/cache/data/ivysilani/subtitles/xxx/xxxxxxxxxxx/sub.vtt


#MP4
N_m3u8DL-RE 'https://ivys-cdn.o2tv.cz/cdn/uri/get/?token=xxxxx&contentType=vod&drmOnly=true&expiry=xxxxx&id=xxxxx&playerType=dash&quality=web&region=4&skipIpAddressCheck=false&userId=xxxx&encryption=wv' \
--save-name .iVysilani.Web-DL.AAC.LC2.0.H.264 \
--mux-import path=pc-sub.vtt:lang=cs:name="Čeština" \
-mt -M mp4 -sv best -sa all -ss all





--------------------------------------------------------------------------------
A tady pro sifrovanou verzi je to pracnejsi, ale jde to ;)

#Audio | #Multistream
#DRM - #F12 (Chrome)

#######
Filter:
/(license)|(encryption=wv)|(subti)/

########
Console:
MediaKeySession::generateRequest



#Instalce Bento4
################
curl --doh-url https://odvr.nic.cz/doh -kLO https://www.bok.net/Bento4/binaries/Bento4-SDK-1-6-0-640.x86_64-unknown-linux.zip
unzip -l Bento4-SDK-1-6-0-640.x86_64-unknown-linux.zip | less
sudo unzip -j Bento4-SDK-1-6-0-640.x86_64-unknown-linux.zip 'Bento4-SDK-1-6-0-640.x86_64-unknown-linux/bin/*' -d /usr/local/bin/
ls -ilha /usr/local/bin/


#Instalce PyWideVine
####################
sudo apt install python3-poetry

cd ~/git
git clone https://github.com/rlaphoenix/pywidevine.git
cd pywidevine
python3 -V
pip3 -V
poetry --version
poetry config virtualenvs.in-project true
poetry install
poetry run pywidevine -v

#Vygenerujeme si *.wvd soubor z "device_private_key" a "device_client_id_blob", ktere mame vytahnute z Audroid zarizeni a nebo Studia.
poetry run pywidevine create-device -k device_private_key -c device_client_id_blob -t ANDROID -l 3

#WVD
****_l3.wvd musi byt ve stejnem adresari a nebo s cestou k *.wvd souboru kdyz zadame o klice (KID:KEY)

#Dotaz na KID:KEY
cd ~/git/pywidevine
poetry run pywidevine license "google_aosp_on_ia_emulator_14.0.0_7a771908_4464_l3.wvd" "AAAAxxxxxZsG" "https://ivys-wvproxy.o2tv.cz/license?access_token=c3RlcGFuLWEtb25kcmEtanNvdS1wcm9zdGUtbmVqbGVwc2k="


#A NEBO (#Dotaz na KID:KEY)
pip3 install pywidevine
pywidevine -v
pywidevine create-device -k device_private_key -c device_client_id_blob -t ANDROID -l 3
pywidevine license "08_4464_l3.wvd" "AAAAxxxxxxxxZsG" "https://ivys-wvproxy.o2tv.cz/license?access_token=c3RlcGFuLWEtb25kcmEtanNvdS1wcm9zdGUtbmVqbGVwc2k="

###################
#PSSH request | 2nd KEY!!!!
###################

####
#SUB
curl --doh-url https://odvr.nic.cz/doh -o pc-sub.vtt https://imgct.ceskatelevize.cz/cache/data/ivysilani/subtitles/xxx/xxxxxxxxxxx/sub.vtt

####
#MP4
N_m3u8DL-RE 'https://ivys-cdn.o2tv.cz/cdn/uri/get/?token=xxxxx&contentType=vod&drmOnly=true&expiry=xxxxx&id=xxxxx&playerType=dash&quality=web&region=4&skipIpAddressCheck=false&userId=xxxx&encryption=wv' \
--save-name .iVysilani.Web-DL.AAC.LC2.0.H.264 \
--key  \
--key  \
--key  \
--key  \
--mux-import path=pc-sub.vtt:lang=cs:name="Čeština" \
-mt -M mp4 -sv best -sa all -ss all



Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #81 kdy: 29. 04. 2024, 09:23:34 »
Citace
Takze Vivaldi finguje a PSSH taky, jednalo se o zahranicni produkci, ktera nebyla heslovana .....

Zkousim zive vysilani CT Sport a koukam ze to ma dokonce 12 klicu .........

Zkousel to nekdo dekodovat "on the fly" ty zive streamy? A jestli ano s cim?

Podařilo se někomu dekódovat živé vysílání vůbec ? Jen pro zajímavost...  ;)

Jigdo

  • ****
  • 499
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #82 kdy: 02. 05. 2024, 11:30:04 »
Pred par dny jsem se dostal k tomuto zajimavemu projektu
https://github.com/FoxRefire/wvg
a zkousel jsem znovu CT Sport.

Problem je ze se PSSH = klice a MPD generuji "nejak" dynamicky u ziveho vysilani..

MPD po prvnim pouziti nefuguje a je treba udelat "refresh"
a PSSH/klice uz jsem nezkoumal, ale dneska je PSSH zase jine.



Dnesni PSSH: "iEtq" = "884b6a"

Kód: [Vybrat]
AAAANXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABUiBjQyMi10djiEtq4BSOPclZsGUAA=Base64 -> Hex
Kód: [Vybrat]
000000357073736800000000edef8ba979d64acea3c827dcd51d21ed0000001522063432322d74763884b6ae0148e3dc959b065000
Kód: [Vybrat]
000000xx70737368 = PSSH header [SIX = ZEROS always | xx = interchangebale | 70737368]
00000000 = [ 8 ZEROS]
edef8ba979d64acea3c827dcd51d21ed = PSSH DRM System Id (WV)
000000xx = PSSH 32 bit data | xx = interchangebale
22063432322d74763884b6ae0148e3dc959b065000 = PSSH payload [could be more or less]

PSSH payload:
2206 = ??
3432322d7476 = Contend ID
3 = ??
884b6a = Tady je to co se lisi v tech dvou PSSH ??
e0148e3dc959b065000 = ??



PSSH par dnu zpatky: "jIsK" = "8c8b0a"

Kód: [Vybrat]
AAAANXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABUiBjQyMi10djjIsK4BSOPclZsGUAA=Base64 -> Hex
Kód: [Vybrat]
000000357073736800000000edef8ba979d64acea3c827dcd51d21ed0000001522063432322d747638c8b0ae0148e3dc959b065000
PSSH payload:
2206 = ??
3432322d7476 = Contend ID
3 = ??
8c8b0a = Tady je to co se lisi v tech dvou PSSH ??
e0148e3dc959b065000 = ??

Na ten MPD manifest jsem ani uz nekoukal, ale treba to tady nekdo posune dopredu ...
« Poslední změna: 02. 05. 2024, 11:39:02 od Jigdo »

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #83 kdy: 12. 05. 2024, 12:51:26 »
Já zkoušel vše odchytit z jednoho momentu "tady a teď", ale žádný z těch 12ti klíčů mi nefungoval. Jestli se to vše mění během i toho stahování toho jednoho souboru, pak to asi tak jednoduché nebude. Spíš sem myslel, že je potřeba těch řetězců vyzkoušet víc po sobě, ale kombinace vícero klíčů z dvanácti... to už chce taky nějaký automatizovaný bruteforce nástroj aspoň....
« Poslední změna: 12. 05. 2024, 12:52:58 od masscream »

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #84 kdy: 19. 05. 2024, 17:00:21 »

Jigdo

  • ****
  • 499
    • Zobrazit profil
Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #85 kdy: 25. 05. 2024, 19:24:48 »
Já zkoušel vše odchytit z jednoho momentu "tady a teď", ale žádný z těch 12ti klíčů mi nefungoval. Jestli se to vše mění během i toho stahování toho jednoho souboru, pak to asi tak jednoduché nebude. Spíš sem myslel, že je potřeba těch řetězců vyzkoušet víc po sobě, ale kombinace vícero klíčů z dvanácti... to už chce taky nějaký automatizovaný bruteforce nástroj aspoň....

Mne taky :(

Navic ted z nejakeho duvodu nafunguje na Jablecnem zarizeni zive vysilani CT Sport!!!
CT Sport Plus/CT1/CT2 funguje v phode .....


To vypda ze ty klice jsou "unikatni" pro dannou session a po "reload" se automaticky generuji nove

Asi by chtelo zistit podle jakych pravidel .....

Re:ČT iVysílání: kdo a proč volá stíny
« Odpověď #86 kdy: 30. 05. 2024, 22:15:27 »
Není problém v XMLHTTPREQUESTU https://api.ceskatelevize.cz/video/v1/playlist-vod/v1/shadow-call 
{POST: params: {id: "ide-epizody", idType: "idec"},streamURL= zístkáný-link-na-ivys-cdn.o2tv.cz/cdn/uri/get? }}
? Tento request je proveden po ivysilani/client-playlist/ , ale  ještě před tím, než stažení samotného  linku na redirect na playlist (to streamURL)
 Myslím, že před 3 měsíci tohle se ještě nestávalo .

K čemu by to tak mohlo sloužit?
response je
{
 "message":"done",
 "data":{
   "isMatching":true,
   "contentIds":{"new":"číslo","old":"stejnéčíslo"},
   "result":["full match"]
 }
}

Kód: [Vybrat]
const i = n.streamUrls.find(o=>!o.isLabeling)
      , a = JSON.stringify({
        streamUrl: (i == null ? void 0 : i.main) || "",
        params: {
            id: t,
            idType: r === "episode" ? "idec" : r
        }
    });
    try {
        await fetch(`${e}/shadow-call`, {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            body: a
        })
    } catch {}
« Poslední změna: 30. 05. 2024, 22:19:28 od Vietnamka »

Re:ČT iVysílání: nefunguje stahování s yt-dlp ani youtube-dl
« Odpověď #87 kdy: 06. 06. 2024, 17:40:22 »
minulý týden jsem stahoval jedu sérii a ode dneška dostávám všude na čt chybu přehrávače a při připojení na endpoity o2tv 404. na telefonu mi to přes wifi nejde, ale mobilní data jedou. je možné, že jsem narazil na nějaký limit a teď mě blokujou?