Initial commit of video_extractor toolkit

Widevine/DRM research and video download scripts (Apple, CDA, Sky, TVP),
CDM tooling, and helper utilities. Excludes downloads/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFUhtZEpkGZJjNCGFS9r4Z
This commit is contained in:
2026-08-08 12:35:28 +02:00
co-authored by Claude Opus 4.8
commit 453ca2f85a
227 changed files with 21028 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
LOG 2026/06/16
Save Path: /home/lukas/Programy/video_extractor/tools/Logs
Task Start: 2026/06/16 07:38:55
Task CommandLine: /home/lukas/Programy/video_extractor/tools/N_m3u8DL-RE https://g002-vod-eu-cmaf-prd-cf.pcdn01.cssott.com/pub/global/M9m/4pT/GMO_00000000258831_02_HDSDR/vge_vgp/SST_1773480898229_8dd8_01/mpeg_cenc/master_manifest_default_r21.mpd?c3.ri=6a30e163_Q1ZYMDc_0_Q0xPVURGUk9OVA_03755874a1c1:0&c3.ri=6a30e163_Q1ZYMDc_0_Q0xPVURGUk9OVA_03755874a1c1:0&audio=all&subtitle=all&forcedNarrative=true&trickplay=true --save-dir /home/lukas/Programy/video_extractor/downloads --save-name Downton_Abbey_Wielki_finał --tmp-dir /tmp/n_m3u8dl_tmp --decryption-binary-path /home/lukas/Programy/video_extractor/tools/mp4decrypt --mux-after-done format=mkv --header "User-Agent: SkyShowtimeAndroid-GLOBAL/4.2.12-121040212" --select-video res=1920x1080:for=best --select-audio lang=en-US|pl-PL:codecs=ec-3:bwMax=260:for=all --select-subtitle lang=pl-PL:for=all --key 0000e11949b72dd103590e68017a3038:bde0bef8bbfec3ce5f7f40aed81327db
07:38:55.492 INFO : N_m3u8DL-RE (Beta version) 20251029
07:38:55.493 EXTRA: ffmpeg => /usr/bin/ffmpeg
07:38:55.493 EXTRA: mp4decrypt => /home/lukas/Programy/video_extractor/tools/mp4decrypt
07:38:55.493 EXTRA: User-Defined Header => user-agent: SkyShowtimeAndroid-GLOBAL/4.2.12-121040212
07:38:55.493 INFO : Loading URL: https://g002-vod-eu-cmaf-prd-cf.pcdn01.cssott.com/pub/global/M9m/4pT/GMO_00000000258831_02_HDSDR/vge_vgp/SST_1773480898229_8dd8_01/mpeg_cenc/master_manifest_default_r21.mpd?c3.ri=6a30e163_Q1ZYMDc_0_Q0xPVURGUk9OVA_03755874a1c1:0&c3.ri=6a30e163_Q1ZYMDc_0_Q0xPVURGUk9OVA_03755874a1c1:0&audio=all&subtitle=all&forcedNarrative=true&trickplay=true
07:38:55.679 INFO : Content Matched: Dynamic Adaptive Streaming over HTTP
07:38:55.679 INFO : Parsing streams...
07:38:55.910 WARN : Writing meta json
07:38:55.926 INFO : Extracted, there are 45 streams, with 9 basic streams, 15 audio streams, 21 subtitle streams
07:38:55.927 INFO : Vid *CENC 1920x1080 | 7814 Kbps | r0/video/sdr/avc/7830k_1080_cmaf | 23.976 | avc1.640028 | 1241 Segments | ~02h03m58s
07:38:55.927 INFO : Vid *CENC 1280x720 | 4827 Kbps | r0/video/sdr/avc/4830k_720_cmaf | 23.976 | avc1.64001F | 1241 Segments | ~02h03m58s
07:38:55.927 INFO : Vid *CENC 960x540 | 2998 Kbps | r0/video/sdr/avc/3000k_540_cmaf | 23.976 | avc1.4D401F | 1241 Segments | ~02h03m58s
07:38:55.927 INFO : Vid *CENC 960x540 | 1851 Kbps | r0/video/sdr/avc/1850k_540_cmaf | 23.976 | avc1.4D401F | 1241 Segments | ~02h03m58s
07:38:55.927 INFO : Vid *CENC 768x432 | 867 Kbps | r0/video/sdr/avc/860k_432_cmaf | 23.976 | avc1.4D401E | 1241 Segments | ~02h03m58s
07:38:55.927 INFO : Vid *CENC 512x288 | 354 Kbps | r0/video/sdr/avc/350k_288_cmaf | 23.976 | avc1.4D4015 | 1241 Segments | ~02h03m58s
07:38:55.928 INFO : Vid 2080x1404 | 81 Kbps | thumbnails_0 | 30 Segments | ~02h03m58s
07:38:55.928 INFO : Vid 1680x1134 | 58 Kbps | thumbnails_1 | 30 Segments | ~02h03m58s
07:38:55.928 INFO : Vid 1120x756 | 30 Kbps | thumbnails_2 | 30 Segments | ~02h03m58s
07:38:55.928 INFO : Aud *CENC r21/audio/surround/en-US | 388 Kbps | ec-3 | en-US | F801CH | 1241 Segments | Main | ~02h03m58s
07:38:55.928 INFO : Aud *CENC r10/audio/surround/cs-CZ | 388 Kbps | ec-3 | cs-CZ | F801CH | 1241 Segments | ~02h03m58s
07:38:55.928 INFO : Aud *CENC r5/audio/surround/es-ES | 388 Kbps | ec-3 | es-ES | F801CH | 1241 Segments | ~02h03m58s
07:38:55.929 INFO : Aud *CENC r10/audio/surround/hu-HU | 388 Kbps | ec-3 | hu-HU | F801CH | 1241 Segments | ~02h03m58s
07:38:55.929 INFO : Aud *CENC r8/audio/surround/pl-PL | 388 Kbps | ec-3 | pl-PL | F801CH | 1241 Segments | ~02h03m58s
07:38:55.929 INFO : Aud *CENC r0/audio/stereo-eac3/en-US | 132 Kbps | ec-3 | en-US | A000CH | 1241 Segments | Main | ~02h03m58s
07:38:55.930 INFO : Aud *CENC r6/audio/stereo-eac3/cs-CZ | 132 Kbps | ec-3 | cs-CZ | A000CH | 1241 Segments | ~02h03m58s
07:38:55.930 INFO : Aud *CENC r7/audio/stereo-eac3/es-ES | 132 Kbps | ec-3 | es-ES | A000CH | 1241 Segments | ~02h03m58s
07:38:55.930 INFO : Aud *CENC r9/audio/stereo-eac3/hu-HU | 132 Kbps | ec-3 | hu-HU | A000CH | 1241 Segments | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r10/audio/stereo-eac3/pl-PL | 132 Kbps | ec-3 | pl-PL | A000CH | 1241 Segments | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r0/audio/stereo/en-US | 131 Kbps | mp4a.40.2 | en-US | 2CH | 1242 Segments | Main | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r6/audio/stereo/cs-CZ | 131 Kbps | mp4a.40.2 | cs-CZ | 2CH | 1242 Segments | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r7/audio/stereo/es-ES | 131 Kbps | mp4a.40.2 | es-ES | 2CH | 1242 Segments | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r9/audio/stereo/hu-HU | 131 Kbps | mp4a.40.2 | hu-HU | 2CH | 1242 Segments | ~02h03m58s
07:38:55.931 INFO : Aud *CENC r10/audio/stereo/pl-PL | 131 Kbps | mp4a.40.2 | pl-PL | 2CH | 1242 Segments | ~02h03m58s
07:38:55.931 INFO : Sub textstream_1024 | en-US | 11 Segments | ~02h03m58s
07:38:55.931 INFO : Sub textstream_1024_1 | cs-CZ | 11 Segments | ForcedSubtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_2 | es-ES | 11 Segments | ForcedSubtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_3 | hu-HU | 11 Segments | ForcedSubtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_1_1 | pl-PL | 11 Segments | ForcedSubtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_4 | bg-BG | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_5 | cs-CZ | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_5_1 | da-DK | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_8 | es-ES | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_7 | fi-FI | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_6 | hr-HR | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_10 | hu-HU | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_7_1 | nb-NO | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_10_1 | nl-NL | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_8_1 | pl-PL | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_6_1 | pt-PT | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_7_1_2 | ro-RO | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_11 | sk-SK | 11 Segments | Subtitle | ~02h03m58s
07:38:55.932 INFO : Sub textstream_1024_14 | sl-SI | 11 Segments | Subtitle | ~02h03m58s
07:38:55.933 INFO : Sub textstream_1024_12 | sr-RS | 11 Segments | Subtitle | ~02h03m58s
07:38:55.933 INFO : Sub textstream_1024_8_1_2 | sv-SE | 11 Segments | Subtitle | ~02h03m58s
07:38:55.933 EXTRA: VideoFilter => ResolutionReg: 1920x1080 For: best
07:38:55.933 EXTRA: AudioFilter => LanguageReg: en-US|pl-PL CodecsReg: ec-3 BandwidthMax: 260000 For: all
07:38:55.933 EXTRA: SubtitleFilter => LanguageReg: pl-PL For: all
07:38:55.933 INFO : Parsing streams...
07:38:55.939 INFO : Selected streams:
07:38:55.939 INFO : Vid *CENC 1920x1080 | 7814 Kbps | r0/video/sdr/avc/7830k_1080_cmaf | 23.976 | avc1.640028 | 1241 Segments | ~02h03m58s
07:38:55.944 INFO : Aud *CENC r0/audio/stereo-eac3/en-US | 132 Kbps | ec-3 | en-US | A000CH | 1241 Segments | Main | ~02h03m58s
07:38:55.945 INFO : Aud *CENC r10/audio/stereo-eac3/pl-PL | 132 Kbps | ec-3 | pl-PL | A000CH | 1241 Segments | ~02h03m58s
07:38:55.945 INFO : Sub textstream_1024_1_1 | pl-PL | 11 Segments | ForcedSubtitle | ~02h03m58s
07:38:55.945 INFO : Sub textstream_1024_8_1 | pl-PL | 11 Segments | Subtitle | ~02h03m58s
07:38:55.945 WARN : Writing meta json
07:38:55.947 INFO : Save Name: Downton_Abbey_Wielki_finał
07:38:55.947 WARN : MuxAfterDone is detected, binary merging is automatically enabled
07:38:55.948 INFO : Start downloading...Vid 1920x1080 | 7814 Kbps | r0/video/sdr/avc/7830k_1080_cmaf | 23.976 | avc1.640028
07:38:55.980 WARN : Type: cenc
07:38:55.981 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:38:55.981 WARN : KID: 0000e11949b72dd103590e68017a3038
07:38:55.981 WARN : Reading media info...
07:38:56.035 INFO : NaN: Video, h264 (avc1), 1920x1080
07:40:00.641 INFO : Binary merging...
07:40:16.696 WARN : Type: cenc
07:40:16.696 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:40:16.697 WARN : KID: 0000e11949b72dd103590e68017a3038
07:40:16.698 INFO : Decrypting using MP4DECRYPT...
07:41:00.224 INFO : Start downloading...Aud r0/audio/stereo-eac3/en-US | 132 Kbps | ec-3 | en-US | A000CH | Main
07:41:00.238 WARN : Type: cenc
07:41:00.239 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:41:00.240 WARN : KID: 0000e11949b72dd103590e68017a3038
07:41:00.241 WARN : Reading media info...
07:41:00.299 INFO : NaN: Audio, eac3 (ec-3)
07:41:01.830 INFO : Binary merging...
07:41:02.297 WARN : Type: cenc
07:41:02.298 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:41:02.299 WARN : KID: 0000e11949b72dd103590e68017a3038
07:41:02.299 INFO : Decrypting using MP4DECRYPT...
07:41:03.252 INFO : Start downloading...Aud r10/audio/stereo-eac3/pl-PL | 132 Kbps | ec-3 | pl-PL | A000CH
07:41:03.334 WARN : Type: cenc
07:41:03.335 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:41:03.337 WARN : KID: 0000e11949b72dd103590e68017a3038
07:41:03.338 WARN : Reading media info...
07:41:03.396 INFO : NaN: Audio, eac3 (ec-3)
07:41:05.058 INFO : Binary merging...
07:41:05.533 WARN : Type: cenc
07:41:05.534 WARN : PSSH(WV): EhAAAOEZSbct0QNZDmgBejA4SOPclZsG
07:41:05.534 WARN : KID: 0000e11949b72dd103590e68017a3038
07:41:05.535 INFO : Decrypting using MP4DECRYPT...
07:41:06.494 INFO : Start downloading...Sub textstream_1024_1_1 | pl-PL | ForcedSubtitle
07:41:06.577 WARN : Reading media info...
07:41:06.634 INFO : NaN: Subtitle, webvtt
07:41:07.234 WARN : Extracting VTT(raw) subtitle...
07:41:07.243 INFO : Binary merging...
07:41:07.244 INFO : Start downloading...Sub textstream_1024_8_1 | pl-PL | Subtitle
07:41:07.326 WARN : Reading media info...
07:41:07.383 INFO : NaN: Subtitle, webvtt
07:41:07.795 WARN : Downton_Abbey_Wielki_finał.pl-PL.srt => Downton_Abbey_Wielki_finał.pl-PL.pl-PL.srt
07:41:07.801 WARN : Extracting VTT(raw) subtitle...
07:41:07.843 INFO : Binary merging...
07:41:07.850 WARN : Downton_Abbey_Wielki_finał.mp4
07:41:07.850 WARN : Downton_Abbey_Wielki_finał.en-US.m4a
07:41:07.850 WARN : Downton_Abbey_Wielki_finał.pl-PL.m4a
07:41:07.850 WARN : Downton_Abbey_Wielki_finał.pl-PL.srt
07:41:07.850 WARN : Downton_Abbey_Wielki_finał.pl-PL.pl-PL.srt
07:41:07.850 WARN : Muxing to Downton_Abbey_Wielki_finał.MUX.mkv
07:41:08.020 WARN : [matroska @ 0x627f0e936b00] Starting new cluster due to timestamp
07:41:25.510 WARN : Last message repeated 26 times
07:41:25.521 WARN : Cleaning files...
07:41:27.617 WARN : Rename to Downton_Abbey_Wielki_finał.mkv
07:41:27.617 INFO : Done