I would like to record SVT-Play live streams starting at a certain time and ending after a set time period like a VCR does
I have used yt-dlp to download already played shows and that works fine, but in order to record from an on-line stream it does not work.
So I looked at svtplay-dl instead but it seems not to have any instructions on how to do it (or I did not find any for live streams)...
Question:
Is it possible to use any of these downloaders to create a software VCR and record the live stream from one time to another?
I want to do this using an Ubuntu Server PC command line script (no GUI) acting as a VCR but outputting mp4 files...
Advice please....
+ Reply to Thread
Results 1 to 25 of 25
-
-
I tried this but it did not work:
Code:$ svtplay-dl -l -c 2 -o test3.mp4 https://www.svtplay.se/kanaler/svt1?start=auto INFO: Outfile: test3.mp4.mp4 INFO: Selected to download dash, bitrate: 6073 format: h264 ERROR: This is a live DASH stream, and they are not supported.
And with this it gets further:
Code:$ svtplay-dl -l -c 2 -q 2079 -o test3.mp4 https://www.svtplay.se/kanaler/svt1 INFO: Outfile: test3.mp4.ts INFO: Selected to download hls, bitrate: 2079 format: h264 [39/39][===================================================================================================================================] DU: 0:02:01 INFO: Merge audio and video into test3.mp4.mp4 INFO: Merging done, removing old files.
Last edited by BosseB; 24th Dec 2023 at 08:02.
-
Use N_m3u8DL-RE.
Code:N_m3u8DL-RE.exe "https://svt-secure-d.akamaized.net/secure/svt1/master-fmp4.m3u8?defaultSubLang=sv" --custom-hls-key 95bbffecef552b1f889b6fec5468fe59 --live-real-time-merge --live-record-limit <TIME>
-
Meanwhile I have moved to an RPi5B running Pi-OS 64 bit and installed svtplay-dl on that device.
Then used this procedure to download:
1) Check the available quality settings:
Code:$ svtplay-dl --list-quality --verbose https://www.svtplay.se/kanaler/svt1 DEBUG [1703430354.0725944] /usr/bin/svtplay-dl/svtplay_dl/utils/getmedia.py/get_media: version: 3.0-2 DEBUG [1703430354.0734994] /usr/bin/svtplay-dl/svtplay_dl/service/__init__.py/__init__: service: svtplay DEBUG [1703430354.0735729] /usr/bin/svtplay-dl/svtplay_dl/utils/http.py/request: HTTP getting 'https://www.svtplay.se/kanaler/svt1' DEBUG [1703430354.0751626] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_new_conn: Starting new HTTPS connection (1): www.svtplay.se:443 DEBUG [1703430354.1794937] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_make_request: https://www.svtplay.se:443 "GET /kanaler/svt1 HTTP/1.1" 200 62474 DEBUG [1703430354.199741] /usr/bin/svtplay-dl/svtplay_dl/utils/http.py/request: HTTP getting 'https://api.svt.se/video/ch-svt1' DEBUG [1703430354.2007291] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_new_conn: Starting new HTTPS connection (1): api.svt.se:443 DEBUG [1703430354.3574812] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_make_request: https://api.svt.se:443 "GET /video/ch-svt1 HTTP/1.1" 200 618 DEBUG [1703430354.3580196] /usr/bin/svtplay-dl/svtplay_dl/utils/http.py/request: HTTP getting 'https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1' DEBUG [1703430354.3588517] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_new_conn: Starting new HTTPS connection (1): svt1-d.akamaized.net:443 DEBUG [1703430354.4468145] /home/bosse/.local/lib/python3.11/site-packages/urllib3/connectionpool.py/_make_request: https://svt1-d.akamaized.net:443 "GET /se/svt1/manifest.mpd?defaultSubLang=1 HTTP/1.1" 200 1154 DEBUG [1703430354.4800034] /usr/lib/python3/dist-packages/chardet/mbcharsetprober.py/feed: EUC-TW Taiwan prober hit error at byte 3116 DEBUG [1703430354.4931893] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: utf-8 confidence = 0.505 DEBUG [1703430354.493238] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: SHIFT_JIS Japanese confidence = 0.01 DEBUG [1703430354.4932673] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-JP Japanese confidence = 0.01 DEBUG [1703430354.4932907] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: GB2312 Chinese confidence = 0.01 DEBUG [1703430354.4933138] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-KR Korean confidence = 0.01 DEBUG [1703430354.493335] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: CP949 Korean confidence = 0.01 DEBUG [1703430354.4933565] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: Big5 Chinese confidence = 0.01 DEBUG [1703430354.4933774] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-TW not active DEBUG [1703430354.4934015] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: Johab Korean confidence = 0.01 DEBUG [1703430354.493427] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1251 Russian confidence = 0.01 DEBUG [1703430354.4934459] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: KOI8-R Russian confidence = 0.01 DEBUG [1703430354.493464] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-5 Russian confidence = 0.01 DEBUG [1703430354.4934824] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: MacCyrillic Russian confidence = 0.01 DEBUG [1703430354.4935002] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: IBM866 Russian confidence = 0.01 DEBUG [1703430354.493518] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: IBM855 Russian confidence = 0.01 DEBUG [1703430354.4935358] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-7 Greek confidence = 0.01 DEBUG [1703430354.4935548] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1253 Greek confidence = 0.01 DEBUG [1703430354.4935734] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-5 Bulgarian confidence = 0.01 DEBUG [1703430354.4935913] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1251 Bulgarian confidence = 0.01 DEBUG [1703430354.4936137] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: TIS-620 Thai confidence = 0.06746647725678065 DEBUG [1703430354.4936342] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-9 Turkish confidence = 0.6817801903631296 DEBUG [1703430354.4936595] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.0 DEBUG [1703430354.4936821] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.09527400295120751 DEBUG [1703430354.4937034] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.0 DEBUG [1703430354.526855] /usr/lib/python3/dist-packages/chardet/mbcharsetprober.py/feed: EUC-TW Taiwan prober hit error at byte 3116 DEBUG [1703430354.5397887] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: utf-8 confidence = 0.505 DEBUG [1703430354.5398273] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: SHIFT_JIS Japanese confidence = 0.01 DEBUG [1703430354.5398552] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-JP Japanese confidence = 0.01 DEBUG [1703430354.5398767] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: GB2312 Chinese confidence = 0.01 DEBUG [1703430354.5398972] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-KR Korean confidence = 0.01 DEBUG [1703430354.5399175] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: CP949 Korean confidence = 0.01 DEBUG [1703430354.539937] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: Big5 Chinese confidence = 0.01 DEBUG [1703430354.539955] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: EUC-TW not active DEBUG [1703430354.539977] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: Johab Korean confidence = 0.01 DEBUG [1703430354.5399985] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1251 Russian confidence = 0.01 DEBUG [1703430354.540017] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: KOI8-R Russian confidence = 0.01 DEBUG [1703430354.5400348] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-5 Russian confidence = 0.01 DEBUG [1703430354.5400524] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: MacCyrillic Russian confidence = 0.01 DEBUG [1703430354.5400703] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: IBM866 Russian confidence = 0.01 DEBUG [1703430354.5400882] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: IBM855 Russian confidence = 0.01 DEBUG [1703430354.5401058] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-7 Greek confidence = 0.01 DEBUG [1703430354.5401237] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1253 Greek confidence = 0.01 DEBUG [1703430354.5401413] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-5 Bulgarian confidence = 0.01 DEBUG [1703430354.540159] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1251 Bulgarian confidence = 0.01 DEBUG [1703430354.5401778] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: TIS-620 Thai confidence = 0.06746647725678065 DEBUG [1703430354.5401978] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: ISO-8859-9 Turkish confidence = 0.6817801903631296 DEBUG [1703430354.5402203] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.0 DEBUG [1703430354.540241] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.09527400295120751 DEBUG [1703430354.540262] /usr/lib/python3/dist-packages/chardet/charsetgroupprober.py/get_confidence: windows-1255 Hebrew confidence = 0.0 Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/bin/svtplay-dl/__main__.py", line 15, in <module> File "/usr/bin/svtplay-dl/svtplay_dl/__init__.py", line 69, in main File "/usr/bin/svtplay-dl/svtplay_dl/utils/getmedia.py", line 61, in get_media File "/usr/bin/svtplay-dl/svtplay_dl/utils/getmedia.py", line 111, in get_one_media File "/usr/bin/svtplay-dl/svtplay_dl/service/svtplay.py", line 61, in get File "/usr/bin/svtplay-dl/svtplay_dl/service/svtplay.py", line 119, in _get_video File "/usr/bin/svtplay-dl/svtplay_dl/fetcher/dash.py", line 181, in dashparse File "/usr/bin/svtplay-dl/svtplay_dl/fetcher/dash.py", line 196, in _dashparse File "/usr/bin/svtplay-dl/svtplay_dl/fetcher/dash.py", line 265, in parse_dates ValueError: Can't parse date format: 2023-12-16T10:02:59.386390211Z
Could not do this because of the above error!
On this machine the versions used are:
Code:$ apt policy ffmpeg ffmpeg: Installed: 8:5.1.4-0+rpt1+deb12u1 $ apt policy svtplay-dl svtplay-dl: Installed: 3.0-2
Code:$ apt policy ffmpeg ffmpeg: Installed: 7:4.3.2-0york0~18.04 $ apt policy svtplay-dl svtplay-dl: Installed: 4.69
Last edited by BosseB; 24th Dec 2023 at 10:07.
-
File "/usr/bin/svtplay-dl/svtplay_dl/fetcher/dash.py", line 265, in parse_dates
ValueError: Can't parse date format: 2023-12-16T10:02:59.386390211Z
On Ubuntu server it works to display the various quality values available.
To me (not being a python literate) this looks like some kind of oversight in the code file
/usr/bin/svtplay-dl/svtplay_dl/fetcher/dash.py
where there is a case problem interpreting the returned value from a system call or else the Pi-OS 64 bit operates differently...
But the strange thing is that it refers to a file that does not even exist... -
Going back to the Ubuntu Server where svtplay-dl partially works:
What is the problem with this command:
Code:$ svtplay-dl -l -c 2 -q 2079 -o testsvt13 https://www.svtplay.se/kanaler/svt1
Code:INFO: 2079 HLS h264 960x540 sv main
So what am I missing in order to get audio into the file?
EDIT:
I tried on a different computer with this command to not be specific about the quality setting:
Code:svtplay-dl -l -c 1 -o svtplay-test4 -v -P hls --output-format mp4 https://www.svtplay.se/kanaler/svt1
VIDEO: Fine good quality mp4
AUDIO: Non-existing/muted
In this latter computer the version of ffmpeg is higher:
Code:$ apt policy ffmpeg ffmpeg: Installed: 8:5.1.4-0+rpt1+deb12u1 Candidate: 8:5.1.4-0+rpt1+deb12u1
Code:$ apt policy ffmpeg ffmpeg: Installed: 7:4.3.2-0york0~18.04 Candidate: 7:4.3.2-0york0~18.04
Last edited by BosseB; 28th Dec 2023 at 04:36.
-
Because:
1) I could not figure out how to install it by reading the GitHub page
2) It seems to be documented mainly in some Asian language I cannot read
3) Since the quote refers to a program with the .exe ending (N_m3u8DL-RE.exe) it seems to be a Windows thing.
I am on Ubuntu Server/Pi-OS so whatever is there must be Linux Debian style... -
N_m3u8DL-RE is a command line tool
There is a Linux version.
https://github.com/nilaoda/N_m3u8DL-RE/releases -
If I look at your suggested command I find that to use it one has to extract the m3u8 URL the stream uses and this is typically the most difficult part of the whole thing. If your application does not deal with that internally then it is of no use, I believe.
If one has access to the m3u8 URL then ffmpeg by itself can be used to download the stream.
I have downloaded the linux-arm64 version and expanded it on my RPi5B with Pi_OS 64 bit.
Then I tested it like this:
Code:$ ./N_m3u8DL-RE https://www.svtplay.se/kanaler/svt1 --save-name svt1.mp4 --live-real-time-merge --live-record-limit 00:02:00 18:15:07.837 INFO : N_m3u8DL-RE (Beta version) 20230628 18:15:07.855 INFO : Loading URL: https://www.svtplay.se/kanaler/svt1 18:15:08.426 ERROR: Input not supported:
To use it one has to run it at the correct start time (can be arranged using the linux at command).
Then one also has to set the duration (possibly the --live-record-limit argument)
But this does not work as shown above, it looks like it really needs the m3u8 URL of the actual stream and this is not available.
So it has to be extracted by the downloader application, in this case N_m3u8DL-RE, because it is way too difficult to do for a user, especially if one wants to set up a download starting in some future time.
So my conclusion is that the suggested downloader application is not usable for live streams. -
-
And that is why I prefer to use downloaders that when given the page URL can find the player on the page and dig down into the page code to find the actual stream there. Often an m3u8 URL.
Once found it is what you send to ffmpeg to do the download job itself.
yt-dlp is one that often can do this, even though it fails on svt streams. -
You're making things a little more difficult than they need to be.
Each live channel on SVT Play has its own DASH manifest, and they're seemingly static. There's no token or signature. So once you have it, you have it. No need to extract it every single time:
Code:SVT1: https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1 SVT2: https://svt2-d.akamaized.net/se/svt2/manifest.mpd?defaultSubLang=1 SVT Barn: https://svtb-d.akamaized.net/se/svtb/manifest.mpd?defaultSubLang=1
This will give you a recording of ~1 minute that starts at 2023-12-28 22:15:
Code:N_m3u8DL-RE "https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1" --save-name svt1 --auto-select -M format=mkv:muxer=mkvmerge --live-real-time-merge --live-record-limit 00:01:00 --task-start-at "20231228221500"
[Attachment 75828 - Click to enlarge] -
OK, I tested your command after modifying the start time.
The execution ran in steps and printed output at intervals of maybe 10 seconds.
At the end there were these messages:
Code:$ N_m3u8DL-RE "https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1" --save-name svt1 --auto-select -M format=mkv:muxer=mkvmerge --live-real-time-merge --live-record-limit 00:01:00 --task-start-at "20231228231300" 23:12:47.461 INFO : N_m3u8DL-RE (Beta version) 20230628 23:12:47.476 INFO : The program will wait until: 12/28/2023 11:13:00 PM 23:13:00.478 INFO : Loading URL: https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1 23:13:00.604 INFO : Content Matched: Dynamic Adaptive Streaming over HTTP 23:13:00.604 INFO : Parsing streams... 23:13:00.609 WARN : Writing meta json 23:13:00.610 INFO : Extracted, there are 9 streams, with 6 basic streams, 2 audio streams, 1 subtitle streams 23:13:00.610 INFO : Vid 1280x720 | 5943 Kbps | v4 | avc1.640020 | 10 Segments | ~00m31s 23:13:00.610 INFO : Vid 1280x720 | 4794 Kbps | v3 | avc1.640020 | 10 Segments | ~00m31s 23:13:00.610 INFO : Vid 960x540 | 2480 Kbps | v2 | avc1.64001F | 10 Segments | ~00m31s 23:13:00.610 INFO : Vid 640x360 | 1092 Kbps | v1 | avc1.64001F | 10 Segments | ~00m31s 23:13:00.613 INFO : Vid 416x234 | 406 Kbps | v0 | avc1.42C015 | 10 Segments | ~00m31s 23:13:00.613 INFO : Vid 160x90 | 10 Kbps | t0 | 10 Segments | ~00m31s 23:13:00.614 INFO : Aud a0 | 130 Kbps | mp4a.40.2 | sv | 2CH | 10 Segments | ~00m31s 23:13:00.614 INFO : Aud a1 | 130 Kbps | mp4a.40.2 | sv-x-tal | 2CH | 10 Segments | ~00m31s 23:13:00.614 INFO : Sub s0 | sv | stpp | 10 Segments | ~00m31s 23:13:00.614 INFO : Parsing streams... 23:13:00.614 WARN : Live stream found 23:13:00.615 INFO : Selected streams: 23:13:00.615 INFO : Vid 1280x720 | 5943 Kbps | v4 | avc1.640020 | 10 Segments | ~00m31s 23:13:00.615 INFO : Aud a0 | 130 Kbps | mp4a.40.2 | sv | 2CH | 10 Segments | ~00m31s 23:13:00.615 INFO : Aud a1 | 130 Kbps | mp4a.40.2 | sv-x-tal | 2CH | 10 Segments | ~00m31s 23:13:00.615 INFO : Sub s0 | sv | stpp | 10 Segments | ~00m31s 23:13:00.615 WARN : Writing meta json 23:13:00.616 INFO : Save Name: svt1 23:13:00.616 WARN : MuxAfterDone is detected, binary merging is automatically enabled 23:13:00.616 WARN : set refresh interval to 13 seconds 23:13:00.623 WARN : Live recording duration limit: 01m00s 23:13:00.837 WARN : Reading media info... 23:13:00.882 WARN : Reading media info... 23:13:00.898 WARN : Reading media info... 23:13:01.070 WARN : Reading media info... 23:13:01.074 INFO : [0x1]: Video, h264 (avc1), 1280x720 23:13:01.136 INFO : [0x1]: Data, none (stpp) (default) 23:13:01.283 INFO : [0x1]: Audio, aac (mp4a), 125 kb/s 23:13:01.283 INFO : [0x1]: Audio, aac (mp4a), 125 kb/s 23:13:39.687 WARN : Live recording limit reached, will stop recording soon 23:13:39.948 WARN : svt1.mp4 23:13:39.948 WARN : svt1.sv.m4a 23:13:39.948 WARN : svt1.sv-x-tal.m4a 23:13:39.948 WARN : svt1.sv.srt 23:13:39.948 WARN : Muxing to svt1.MUX.mkv 23:13:40.098 ERROR: Mux failed 23:13:40.098 ERROR: Failed
Code:drwxr-xr-x 6 bosse bosse 4096 2023-12-28 23:13 svt1 -rw-r--r-- 1 bosse bosse 47282800 2023-12-28 23:13 svt1.mp4 -rw-r--r-- 1 bosse bosse 1175269 2023-12-28 23:13 svt1.sv.m4a -rw-r--r-- 1 bosse bosse 32 2023-12-28 23:13 svt1.sv.srt -rw-r--r-- 1 bosse bosse 1175247 2023-12-28 23:13 svt1.sv-x-tal.m4a
BUT it also lacked all vestiges of audio! Nothing could be heard when the people in the video talked etc...
So it seems like the exact same problem is present as with svtplay-dl, only video and no audio in the output mp4 file...
But since there were extra files left over I tried to play a few of them and the svt1.sv.m4a file does contain audio for the video but is not merged into the mp4 file!
So why did the downloader not combine the video and audio when creating the final mp4???
Extra info:
This is the ffmpeg version on this device:
ffmpeg version 5.1.4-0+rpt1+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)Last edited by BosseB; 28th Dec 2023 at 16:38. Reason: Added ffmpeg info
-
-
Regarding the help I have written the help output to a file so I can read it better.
Re: the extra argument "-ds all":
The argument helped in the following way:
The output file now contains both video and audio
But the file itself is NOT an mp4 file anymore instead it it is an mkv file.
My system expects mp4 files for further processing and in the help I do not find any way to specify the output format of the video...
And I see no way in the help output to specify the output file type, just the name (without extension).
How can I force the mp4 file format?
This is the session output this time:
Code:$ N_m3u8DL-RE "https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1" --save-name svt1test --auto-select -M format=mkv:muxer=mkvmerge -ds all --live-real-time-merge --live-record-limit 00:01:00 --task-start-at "20231229102500" 10:24:42.435 INFO : N_m3u8DL-RE (Beta version) 20230628 10:24:42.460 INFO : The program will wait until: 12/29/2023 10:25:00 AM 10:25:00.463 INFO : Loading URL: https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1 10:25:00.548 INFO : Content Matched: Dynamic Adaptive Streaming over HTTP 10:25:00.549 INFO : Parsing streams... 10:25:00.559 WARN : Writing meta json 10:25:00.560 INFO : Extracted, there are 9 streams, with 6 basic streams, 2 audio streams, 1 subtitle streams 10:25:00.560 INFO : Vid 1280x720 | 5943 Kbps | v4 | avc1.640020 | 10 Segments | ~00m31s 10:25:00.561 INFO : Vid 1280x720 | 4794 Kbps | v3 | avc1.640020 | 10 Segments | ~00m31s 10:25:00.561 INFO : Vid 960x540 | 2480 Kbps | v2 | avc1.64001F | 10 Segments | ~00m31s 10:25:00.570 INFO : Vid 640x360 | 1092 Kbps | v1 | avc1.64001F | 10 Segments | ~00m31s 10:25:00.570 INFO : Vid 416x234 | 406 Kbps | v0 | avc1.42C015 | 10 Segments | ~00m31s 10:25:00.570 INFO : Vid 160x90 | 10 Kbps | t0 | 10 Segments | ~00m31s 10:25:00.570 INFO : Aud a0 | 130 Kbps | mp4a.40.2 | sv | 2CH | 10 Segments | ~00m31s 10:25:00.570 INFO : Aud a1 | 130 Kbps | mp4a.40.2 | sv-x-tal | 2CH | 10 Segments | ~00m31s 10:25:00.570 INFO : Sub s0 | sv | stpp | 10 Segments | ~00m31s 10:25:00.571 INFO : Parsing streams... 10:25:00.571 WARN : Live stream found 10:25:00.571 INFO : Selected streams: 10:25:00.572 INFO : Vid 1280x720 | 5943 Kbps | v4 | avc1.640020 | 10 Segments | ~00m31s 10:25:00.572 INFO : Aud a0 | 130 Kbps | mp4a.40.2 | sv | 2CH | 10 Segments | ~00m31s 10:25:00.572 INFO : Aud a1 | 130 Kbps | mp4a.40.2 | sv-x-tal | 2CH | 10 Segments | ~00m31s 10:25:00.572 WARN : Writing meta json 10:25:00.572 INFO : Save Name: svt1test 10:25:00.573 WARN : MuxAfterDone is detected, binary merging is automatically enabled 10:25:00.573 WARN : set refresh interval to 13 seconds 10:25:00.573 WARN : Live recording duration limit: 01m00s 10:25:00.816 WARN : Reading media info... 10:25:00.828 WARN : Reading media info... 10:25:00.829 WARN : Reading media info... 10:25:01.007 INFO : [0x1]: Audio, aac (mp4a), 125 kb/s 10:25:01.013 INFO : [0x1]: Video, h264 (avc1), 1280x720 10:25:01.014 INFO : [0x1]: Audio, aac (mp4a), 125 kb/s 10:25:39.632 WARN : Live recording limit reached, will stop recording soon 10:25:39.632 WARN : Live recording limit reached, will stop recording soon 10:25:39.632 WARN : Live recording limit reached, will stop recording soon 10:25:39.948 WARN : svt1test.mp4 10:25:39.949 WARN : svt1test.sv.m4a 10:25:39.949 WARN : svt1test.sv-x-tal.m4a 10:25:39.949 WARN : Muxing to svt1test.MUX.mkv 10:25:40.139 WARN : Cleaning files... <=== It does NOT delete all temp files! They are still there. 10:25:40.143 WARN : Rename to svt1test.mkv <=== WHY DOES IT DO THIS? I need mp4 output 10:25:40.143 INFO : Done
After the download has finished then the terminal output when I type in commands are gone!
The typed text is invisible but reaches the system so I can type in ls -l and hit enter to see the list of files.
I had to open a new SSH session to see what I am typing as commands!
What can have happened to cause this? It is the first time ever I have seen anything like that...
But if I re-run the command in the new SSH window without the argument--task-start-at "20231229102500", then at the end I still have control over the terminal...
Question
How can I get rid of all the extra cruft created during the download?
It creates a sub-directory containing some files and also a number of work (?) files in the current directory, which are not removed in the end. -
How to specify format is literally in the command: "format=mp4".
All settings are available through --help. Experiment until you find a setup that works for you. -
I have been experimenting a lot today but whenever I use "-M format=mp4" I get a video without audio!
Only way to get audio is with the mkv argument you showed.
I have also experienced recordings for 1 minute which show up in video players like VLC as being several hours long and where the progress bar cannot be used...
Seems like I have to give up on this as well... -
I figured out how to use streamlink to retrieve the videos using the URL's shown above in this thread:
Code:SVT1: https://svt1-d.akamaized.net/se/svt1/manifest.mpd?defaultSubLang=1 SVT2: https://svt2-d.akamaized.net/se/svt2/manifest.mpd?defaultSubLang=1 SVT Barn: https://svtb-d.akamaized.net/se/svtb/manifest.mpd?defaultSubLang=1
-
FOLLOW-UP QUESTION:
How do I get the akamaized url for Kunskapskanalen and SVT24?
Code:https://www.svtplay.se/kanaler/kunskapskanalen?start=auto https://www.svtplay.se/kanaler/svt24?start=auto
What is the abbreviation for SVT Kunskapskanalen and SVT24?? -
Kunskapskanalen:
Code:https://svtk-c.akamaized.net/se/svtk/manifest.mpd?defaultSubLang=1
Code:https://svtb-c.akamaized.net/se/svtb/manifest.mpd?defaultSubLang=1
-
Similar Threads
-
Downloading from SVT Play
By peteinoz in forum Video Streaming DownloadingReplies: 26Last Post: 19th May 2025, 07:16 -
how to catch live streams from rds.live and play it in any player like vlc
By icebreaker101010 in forum Video Streaming DownloadingReplies: 6Last Post: 17th Dec 2024, 17:48 -
play live stream with seperate audio and video keys
By hubertsaper in forum Video Streaming DownloadingReplies: 6Last Post: 12th Jan 2023, 15:54 -
x264, x265, svt-hevc, svt-av1, shootout
By sophisticles in forum Video ConversionReplies: 21Last Post: 2nd Jan 2023, 09:39 -
Change the aspect ratio of a video track with FFmpeg and Svt-Av1
By ignace72 in forum LinuxReplies: 0Last Post: 6th Apr 2022, 08:04