Closed superbonaci closed 6 months ago
#EXTINF
and #EXT-X-PROGRAM-DATE-TIME
is irrelevantYou have to change your operating system settings to experience the issue. Why just don't use the m3u8 which is downloaded from Twitch? I don't see any need to reformat it in any way, they already use the standard.
You have to change your operating system settings to experience the issue
I don't live in UTC so I figured I would also experience the timezone issue. Regardless, I added a flag to the datetime parser that should fix it
Why just don't use the m3u8 which is downloaded from Twitch? I don't see any need to reformat it in any way, they already use the standard
Are you writing code without an LSP? I parse the m3u8 string from Twitch into a C# object so its easier to work with.
Your code $ Console.WriteLine("DownloadAsync.playlist:\n" + playlist);
is using the Console.WriteLine(object)
overload that internally calls object.ToString()
, which I had to implement on the M3U8 object. The fact that the strings don't 100% match is because of the order that I just happened to write it in, but it's completely irrelevant because there isn't a standard order for stream metadata entries because they're optional according to the m3u/hls spec.
After reading some HLS specifications, Twitch's M3U8 response is technically out of spec and our M3U8 stringification is within spec.
After reading some HLS specifications, Twitch's M3U8 response is technically out of spec and our M3U8 stringification is within spec.
If you can share all parts that out of spec would be great because I have no idea.
The problem is deeper than that
This is in UTC unless stated otherwise (as provided by Twitch):
#EXT-X-PROGRAM-DATE-TIME:2023-02-06T22:28:35.257
#EXTINF:4.004,
index-0000000000.ts
Which is converted to this, by current code https://github.com/lay295/TwitchDownloader/tree/74f69f8311ceedc8bd94afb4997aff59c8fe0eb7:
#EXTINF:4,004,
#EXT-X-PROGRAM-DATE-TIME:2023-02-06T22:28:35.2570000+09:00
index-0000000000.ts
However it should be converted to this, regardless if you use culture dependent or not (see the date has been shifted):
#EXTINF:4.004,
#EXT-X-PROGRAM-DATE-TIME:2023-02-07T07:28:35.257+09:00
index-0000000000.ts
And the reasons are:
M3U8.ToString()
).So can you find out if the bug is introduced by TwitchDownloader
or is a dotnet
issue?
There could be also other potential wrong modifications that can't be seen in this sample playlist, but should be checked as well.
I thought TwitchDownloaderCLI
was using some dotnet library to automatically convert .M3U8 playlists to objects, but now I see it's using TwitchDownloaderCore/Tools/M3U8.cs
to manually parse the playlist. Probably there's no library within the .NET framework or .NET Core to do that.
The issue I see is that parsing and converting correctly HLS streams or M3U8 playlists is a whole project on its own. Nobody is supposed to rewrite the whole thing for each project...
What about using M3U8Parser or m3uParser.NET? Or at least thoroughly understanding how a M3U8 playlist works... Other projects like media-server can help to understand the format.
The tag #EXT-X-TWITCH-ELAPSED-SYSTEM-SECS
is not handled by the code in https://github.com/lay295/TwitchDownloader/pull/996:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#ID3-EQUIV-TDTG:2017-02-23T01:56:22
#EXT-X-MEDIA-SEQUENCE:21823
#EXT-X-TWITCH-ELAPSED-SYSTEM-SECS:87306.456
#EXT-X-TWITCH-ELAPSED-SECS:87299.595
#EXT-X-TWITCH-TOTAL-SECS:87330.456
#EXTINF:4.000,
index-0000021824-ZIka.ts
#EXTINF:4.000,
index-0000021825-7IPc.ts
#EXTINF:4.000,
index-0000021826-QQ9O.ts
#EXTINF:4.000,
index-0000021827-Outt.ts
#EXTINF:4.000,
index-0000021828-hT92.ts
#EXTINF:4.000,
index-0000021829-yrgH.ts
mentioned here https://github.com/streamlink/streamlink/issues/620
This is another sample playlist: HLS m3u8 / decodebin fails on custom playlist
#EXTM3U
#EXT-X-TWITCH-INFO:NODE="video-edge-7493b0.fra01",MANIFEST-NODE-TYPE="legacyplus",CLUSTER="fra01",SUPPRESS="false",SERVER-TIME="1490513399.71",TRANSCODESTACK="2015TranscodeMain",USER-IP="22.22.222.222",SERVING-ID="593ab82e932e46978bcc6a85f0845055",MANIFEST-NODE="video-edge-7493b0.fra01",ABS="false",BROADCAST-ID="24887635568",STREAM-TIME="4464.70969296",MANIFEST-CLUSTER="fra01"
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="chunked",NAME="Source",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6327000,RESOLUTION=1280x720,CODECS="avc1.640020,mp4a.40.2",VIDEO="chunked"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvYBbU-OCzXQ-7F1lTKcoY6a1irZD9oZ1MXxmRZZ0V6KKlWhewGGSqUE_yKCpFYZ_xpLfnbZ28kk0pP4g0g6UgRPCqupnBktGAIvCGRpKlqCMgUSxqPUevaD9hhFOruDsvdmfO6ke95hrCdm8Qi-GA6oqn1PUNt5_pLjtd44rabkMNzE8IgxV2gCJw4HuKmL-_IWcq6-63LVcqCMTnzZ113tECIeA6KJlOK_bGvkTGh2Bpv8ZSYfHFBjb8RzWpjmxhZWg4KE3FcRoRaixhmrAykt1DiLrlH7RfHTkhTuZ1i2UaURsmm-jlrMt0veiuX-UQ54Kd4IMH2AEhAfEZ9RDOu1oxKl-XYcFj9YGgzv289Zuol2Pzzwo8Y/index-live.m3u8
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="high",NAME="High",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1760000,RESOLUTION=1280x720,CODECS="avc1.77.31,mp4a.40.2",VIDEO="high"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvMBDfArFSIDmnHxalIgTFEcFLUyk_fNOG8mwBlLvYU2wLUhNYlQ5VceVfQGYL7ipwn_NG9QkXJ09sRcX17Z1gRgaFe41aKRD6Kee_-fboULbfhqqq6eizw_p4tK7Sdu27JNJbT_tmstqdZkqGUgl5jKndErX8Vk6aDAWmFacGkaC1uWxt0wNjS7gSMHPraToZH8YuBn-EC4gooMBbe1TAqd37j1bAnuRBNAl5FRAWmyQ6Aka5GBLsE_mvj0n-IMLum5rxKzkCw3ggnF3x1Z6dra5dOrsEyUxrngNAaHyzIYc9Hx3WKXlwCRuF2_0pTGjDCwjpbcEhCBgjIg45A0m_bD5c6iSTBbGgzajGH9V8aYFAqQOvc/index-live.m3u8
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="medium",NAME="Medium",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=992000,RESOLUTION=852x480,CODECS="avc1.77.30,mp4a.40.2",VIDEO="medium"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvUBcKlEfCoKGxI_nH9eqMgbtacfFJhO3HtHirVeDVLVo0kTCSWURufoOYCfAzVb0vktRrTesS0FymdcfG2bDh2PjVUPR0Au6twyQ4SivcxfWy2UQKkJpQ_kIQoDrkWnxWIZAZ4HM-9-CQgBBzVgaY3Y_6t7n3MgkexNDieiy9ZRoCJpZtnMZmnTc-Opxkrz8de1GPreBj3gtPHYnYlgyyUB_0TffgjsllAzQ260v1BKZWITXmpsrSrlqI8Zfso0Ggu3wWd9iHpDxlcU96COpEKjuvKNDTuxw-RRaXixD4XQd03PwY2xjImFWv1WHjiYsdb3RH89fDISELaOSmXYfXh2RiZYah4txScaDNgpfI9j5-FgSwhPog/index-live.m3u8
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Low",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=692000,RESOLUTION=640x360,CODECS="avc1.66.30,mp4a.40.2",VIDEO="low"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvIBQ_0m3lgXgrHumE_iOU9o_JCEn54HssD_LyzdEmqDeFPRG5g9LqjY381CyAlKSRS3_Sm2z1UwNX54VcZeYlS3zO6jht-wyF7pt5FuVQRxoyXy26a3zRjJBMlnRkou2QUX4kodrdk5w4N7So5tRccJq232H4Yj1bz7NkSq_Lzqye2T9AABG9fT7vlsd7DhMI1wSpdL9oU59YUdCsdXzaMMCFyukPECXXozQAB4iWWtgFUUoeVkwZx7T32jcVu_asD69NcWPtolO-sMsFG8Ap1yAE9OPTYmEUNtjqApRmmaqyO7uMOFOzgacwFDmkmwUqWYKKwSEJmRBEUNE8W7rZpuCAZ3lrIaDPXkAVLYWIX46Z7Upg/index-live.m3u8
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mobile",NAME="Mobile",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=292000,RESOLUTION=400x226,CODECS="avc1.66.30,mp4a.40.2",VIDEO="mobile"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvUBwZgwsc-wMVsC2NJhHV0LcPA9HWc5QlFUAfPY3qMnEBQm6XiE2gI8dxdolQFNOPnp1oJkTl4iuq9SxbA0mPxTblsUwHyBPA86CnUIKO3dIlDerNc8C1n1OYw26WrzbsyTVNQEGvarv8yyL5rx_7aKveQSOHO6TQCJ6Su49OucbywuC8KDWHbSgWkqpBKBi0uf85lHjGJGvmUG-ENUVZbG1t3ZJvoOeHxKAnDUEYGJOpBouyKZOTpKv8ZMU-039zUndOClczUELVKaiEv0V6uQyoD8mD6RS-h8ZQe9votNCJgEGgU7_6ZjechRP_bYYfQjYDWyZQQSEJbBt4nUxNR93Qn5rNkRrwsaDE8RKmjt0Q_NNUcOmg/index-live.m3u8
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="audio_only",NAME="Audio Only",AUTOSELECT=NO,DEFAULT=NO
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=128000,CODECS="mp4a.40.2",VIDEO="audio_only"
http://video-edge-7493b0.fra01.hls.ttvnw.net/v0/CvkBSme-z7mAPxqXEK5IcNW1TQgdcr0MQo80j4Vw_ViM9GfUMmoLqWO8asl1c0WTRUTwedjMtwtjx7oPHeRNkBN-r5_xAUwIdoIAP6i4vxNiUXrKOW9CB4PE71R_9KSBIW__GYmNijvpjNWwJAnmSrf82EQHFJL3tQp27CYRgxE8g79cE6L13YxMYF80ebUsASAaM-r0XsnRnk0Zz7zncPjeeuhlK4xIBv4XBeqGrG8-c9aiwgyqIl5bgcLrTEnKTDB17SB1GCqQmMhuvrUZ61TsISnlf__GQ4SJFU6M6CuakmSasrnQ7bbSe5YAiEpj7JA4NY5rApl6X-G8EhC7-yVOV7QC2uaLFX3ooo78Ggx9OCTiOzMPFkrMaIY/index-live.m3u8
This is another sample playlist with more tags:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:3196
#EXT-X-TWITCH-LIVE-SEQUENCE:3196
#EXT-X-TWITCH-ELAPSED-SECS:6392.000
#EXT-X-TWITCH-TOTAL-SECS:6424.000
#EXT-X-DATERANGE:ID="playlist-creation-1710933121",CLASS="timestamp",START-DATE="2024-03-20T11:12:01.483Z",END-ON-NEXT=YES,X-SERVER-TIME="1710933121.48"
#EXT-X-DATERANGE:ID="playlist-session-1710933121",CLASS="twitch-session",START-DATE="2024-03-20T11:12:01.483Z",END-ON-NEXT=YES,X-TV-TWITCH-SESSIONID="5848261754394548494"
#EXT-X-DATERANGE:ID="source-1710933091",CLASS="twitch-stream-source",START-DATE="2024-03-20T11:11:31.284Z",END-ON-NEXT=YES,X-TV-TWITCH-STREAM-SOURCE="live"
#EXT-X-DATERANGE:ID="trigger-1710933091",CLASS="twitch-trigger",START-DATE="2024-03-20T11:11:31.284Z",END-ON-NEXT=YES,X-TV-TWITCH-TRIGGER-URL="https://video-weaver.arn04.hls.ttvnw.net/trigger/CtgEQhdIIM1d8jQOSMeDJFp48B6O-Sfi97iA_dlqShjbsPwn-PZ_AXC5LI1_dghGt1WdtSKLPUL3fPckIgqLQxj1rG1E6k58oIfVG4aQq_3GTXbkMCUWKTJLzrPqSPrxMM109adQxdiKFYX_RAkyY4yzetG4w611LWa7Q6slH-1K7LA3_obrLSsgtjJqsyRE_YbyTDRuWAR_Fj73HcAZRUiA7qfwwb-3r98cFagwAba5dGuwfg9PG7iF7vddDZ3gJikJZImCCHwNT7DhQJgbH8KS_EcPN9-MJH1Eii_EBd2vNpXi0qM3Rhy2aoHne3Z9V0uGLBmdkRdsQvRsfna9wlpMVci7y8A-9B-UfDm-z_qdDy0k3xon7ggVkD9W996nMCh3McILVRFkhKhDWZ6SV3Ryj_EvyVX0Zg5JEwf5cFPohsGFDZWofsOncJmneMOLcYMYJy_j7KJ_OiD4_Zpcz8gfKWT08jPrAHjH3NFZWycavkfWawUuCnopmGHyZc3_RfVWCY_Ay_LDEnTZCzALqIH1dSXASl6YSZCccPZdjcRmJHm9Gr9QPRo3NRqABb0MzsJ1gfc7UGAelP3S4Q0a6OjD8gSII5Oj_i1P9cRsmFUL1eN9H-qYg7i8Hzm_HC_C8fi1gzuuisfuq1j5tTsNifa4JM3Jl4jVUITI8np-Vk187IYHuse4c6bvV6JFB6DFyBjkE8g2WbLfMX6MSp3IrJACGh1SvwHQiVrKTgxR0UmPyVDWAt3OCWbCAywgTlhKBJdrSh-I-N8GQC0XfESYBvZ_71oeX8mCl51-GgxiRWqSAvd8Qf4QvpIgASoJZXUtd2VzdC0yMP8I"
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:33.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFe5Wj36VLDs5wpnkGX5PaCmgaSLc9MSm2eVldhc--z6cWf_-hPgoXPCp2obfppDRm3bI8aBYP-gOOVTdSnsjOUaHiyurzoH3wwVE2tfJpoWrL8XLEwJrnJO2EfxNxFPaw5zfEpyF9QMT5_mwwsY5VFkizMfnLH92-VB6rP095YSlSpu2UyrEZ9VMG7P0fBhd_cYzlMpMusH3EMYEmaNGNPV2Butfh9pZsq0QV4JWpgMsexfy3U_ZCdaafHjpZ8fFba6n7nXP7Yn9_9Bj4-vGZTSw8Ms299Q4jb4eIw02zPwDcuaPRXpUfL8xG_XhsZ7fzEk9P52q18S20JQjpe-TtZr8iyjyM-vM9Wvfe3GX-DmubxlnCnVJrOi8g3M9hHJVTmewDFGjPZpdD9sWMhjzGo5kzS5cODBQUXLux4k_nmupFbo6HofYUS5vdB7WdqninDrfJVwpHI8XU7teiWtdAbOWu8MOtMrKx0LQQN7JtDPE50P3u6ZATHcrQtqi6LnV1AkJpujqrpsAYxb8RkrQe3Gz_UfzWHmH1-5EaDa146kMf-Kg64nebWG_HaZMbYG9J5G9I859OP1B5w6mNoG4c3ctF949u9YS_5rUn3eaf3TRgaVettUipugJfbsBkXEFQkALhRaPaMJ6ZBawQQ1XuKSNsPBHv0BP1E9Ta2z_2g3C-Hkptn2t1eSrFKhhnRx8ch28CJlOwLdnlHHSvwS50J0oV1p45ljiTJppSrytwoxpJC_QM2MaQMEP92IpZ4fXGKpUgIWjw2_99ukNjij6CKH67yJ1BWXpWCyXSK8TEqmQJk93CEiDPDO1BXS1YU_GqKPRYx4RTQgDFLUnoZcwSTX8nG0TYGKy2RID0q0vSqRUD-F6olF1TV9XcUbWbuLeEtvjnOLxQwjaquoY3GgzOhc2pnQaxrEfBim8gASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:35.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFfEunIBlJVDse_pk-ex-qQXn5D4FqqAjNOpeGKjL7XEfbTsPNeRd7KFsc2o-OjgyKEVYJSfSn1vHAWWYrvmoy0AwW--n1op7xnCEw3CXaGwDmevb2p-Drk7-nr0m_Wwg6bUFgIDz1xszscBYjMRecop8525UJ0smKF9zIfeiqvq3nr4weN73DZ1FBbITYIKGirrfHFUeHxpsk-gcj6eX76dagQ1as329OiVmaUHKNuBl0F_nVsAzSu69vdPqr74ieKO4Nui2rw4U8V68JjMhzsrxmOZCM9N8Ur0FfE7Z3rJfG9MEvSp5QGWG8EO4LK5Yu1-bavvnV74jJXXz4uiNlAEvj6Yhl3_8L_mfMqBWl79U5bc2Oi8laZ_ldJ3F4TbPHsK0jj7lveuoVmps97bmXyn8niMJXwyAyjquADqeKddlMyiUZ1RHUNPqUYkQFemxT5SvGCPT6Ep_yPErMojAKOJeERi4DySFkMB7WCmlvpouXTr9HInONFU_7guTADowaE5D_pp1rw9Xb1IS6p0yRII30Z_mFQUZnCn5yQ7uXuI9YR_20q-bFu4YDlhTkKnfa-qOGUq3u5snHwZRuW_kkt5Rj5MbAqexSozx3AaK3CAG74U_5RGesMU6k8B9yEdlIe5_n2rfU75IbuWm5Qxm6eJWmF96_c6KFmu_JvCv8m6ven8JuTBcMLOtdWEc00lgVTXbFwuLxFOsn3e4kAl0dNycwcHJZVt0l2m_SDP-4aUHVcz_JUKCPS4834X-9_tlq9lQgZfIrVBMXgkjBJSVl0x1Qy14_qhzk6m8riIHme8M6XrdHPePECKOYJbmcW3iOVeu0DjQA_eG__k6Ckpq2ZZ1XYcHivstim4-pZ37PqLcsRipFf_JJvM_hQywxJDgUX3uwdnKOU23sexo_Ggxz0Mlvr4qudM6_j2AgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:37.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFDfhKKrcYc4AgFusDyr9uKyjRSSyNcxXAvKCAFLiH6ptyVKWG8ianlDxWh4Fdmi3-OkzS9UnZyl0jglHIiETBPW-sga9VZyluGYwRv6EsKGGEcfJxfhIZnUYDCyCwLi426aN_HcinJeCLfbEUTUlY3o1rAASV7982qEavKXYUwFcb71JVI0ZC8Q2PUGshSCqJzLNpY1SFPVA5ioIT6BRkvhcZzmiv6eJPd5cOabLS404-NGf2IfdnDEolhlcLTFwCWP9wBNVHB8MuZesIkeAyu32nxrA_Dyfn0SLt1kZxORxhu8vP04FNXj5IVX61W-ap-Lv5WrWGSQLZNf34HnZRh5tqIXIJlAfCttBArcKdjpYkdefsynBSxbcUf2uZctSRHf4qEHX2b1Ry6id0fPhwNyMagJ2WEqPhk8Uj1c9fX5wRdzH5q56VgIqH9mK6-vygHYm-oXmX1wO5slFz4ZdlaqfxkCOQ6_vMPVS9mDbO06IwAqLRZhvBz-Sek044EM8hnkW8nUgsyrFtRgGhrgv5KeqJV7xdiZWm9AYvUHJFFH6j9X_Rx_GiKxdwe-HA7uDR36g9mKtX2BgflJz2TTEr8b2Bsu_yP4I4BSCYjS68gwCtMDkmXMOaQnbhAzQf_k8vWJrTMhhvD_K6SytWiklxwnY3xJVuurumyrfRMSb2t3jt3cMhcu2sXpoorISaP8OZ0cIcj-aAAfFqKpxWWGaE5kYH2VaXGvrgQZUj8GXVVi4IBITJt07hRWYlUB6GMm58NZfT1UMcK5WVrnDWXBsh7Fmnu9R6_V56yvNk-V1qwYGq4nz7CWBOlK7j-wv2dn5WvG7ylPWvg3GApsZ02_uqObnVJ0ZWSKKHg_rpWCGSRIKi983vhXLhK0Q7sW3gD8SWlwmbZxNRVG7vzXXkGgx2kyTI-EdW7lsYOMIgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:39.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFdVW0WTO0y76W4fcIAelMjdl7ARjUDIyYHEClkq5WDARM0VoAjwdXrobTAqEGhEVGyjYlVkA10Nz7bnWmGJGhlzLZSp2mw2bmtbYYnlB59m-uZs4CYlCzXM-ZUUdC4ccjcd-Y9WGxzfs-ZKyP77nRxSFkaON5R3qYS1ejgPGrS9CRu_VFIdED-v8I1rXbIgvNCTZpLLZnj7wmEY9jMeh-mEaYRq50FC4ca2bLkUVRcTQCpH3YkKs1nmldusEvVGbSsmUc4REliYzqAU5IGPv2hxliAOjYfBaBnPk40-U731WJve3QT-tt8-mSRsgkV-vCUJxd6zQwkGxUCyXfMCShE9l9cOq5zhcNbHcAfvhLFdnCUwrkYYgDCyN0uSUpLyORCpevOmzUn9Z4DV6OxTkOKqfk4q4VBYHRBPqZUR0fPKNcdNQdwVWcJiJPDjgAlsL-V9HTQGY0TNfAC9JdEa5Q2J4G9YB5Ib2g0o0-crXCwmQS4Z13I7_7HNXfP8UHMP8b7Trs3vVxsvtIDCnObrp_goIRfjyunqV_4WAB61ZUMxJO-E5E_mQCGC33RwJhavI7Dr1FTqRbcqw_g5wVrtBQEH6iDAhZ7SNfknA4A6AFW2j0yi5cVmU7l2ARea-FMvwS5yx_YMxuS4Tvper5T0syLsmrvuq0qnUMTEXyo20MBV5nJ93Gz0QVAi4CWd81534izRv0USzci63nXjFYR6b6hkFoIYwrWMkPFHuswElUlS0nXdmM5PeDeb-fE8KyHYUsePB1Gkl9cxrhzKU6O-8_F9863VzOhVGYrUIMavtKx4OWMWyU_uDI7TNJZC-Bv3cska_6w9GxmHOjkkMZ1dwChO9KkLgc9z5VDen3kYMbd0oIwciaa6rLNA7qXGooi3Xyj5_9Te6IPhKnuroOGgz0nXTR8s6oU1X7s_kgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:41.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFcKeNtKHPiEaOJBJf_f8uzc_LVoE6oqhaNLydLIa2791KBitDSXs2cdtaR1xYG2zugTIYl37qY57imLU-ruxhAvEIEXsTFtr2QdAWpAL29wPINV5-yQcZub_XoQk2G7EN2KA0eSHrHDEnH-jAEJgRYWv_lQfslzEiFmXaOoNTsPRL7QulE_6LE3FVWLBjgGEhD7X0-9E-WZKWtqHPqVg_TfQGoRo-Ju6x8Yqcxg1ix4TrawZS7BvT95XEDQQTmhFfk9BxVPev6Qvs8hJBwMTMojkth4sOutCCn-uDCE9VNwt2pzDdjkmrrUpty0VUNZGVG3-p6d6sWK1r4i-aelSE-R9Z-Uy73-fh6T76T2nZR0H_Q1kiJH2aPkD4XHRB11qs99IvgGn6HtY9yd5S3ESsdn16_3T7OFFBPfEQb9tixIB5FXTqyyya2Y76ozwFXKirvDegJFoIjvTqdA89bSzC3crtSCR319kj_Jl-6gtOHf_Po5oUl6BW4O_Fu-ELcyXvjQASdO-3YC5CjBOjbrPm5TDhwdDJrfrUbcgOkbSLsQ4TmBF8gDYC5XEWze3286NMt-69nlmoS6RDee_cRRIfIMaFyv1pnLVLq01AgDbwfb7kO2GUw1G-i4wSQIJNjtfrgqobdpkfx1nuGhnZxpVKNyWvxMrtB_rijIGKhKTWrvxBnR8VNlFRANfxINB615CFuUNKElI9vN4Gs8stdBjSxLj03amkD0J7Ion3Zot4I25rJwizO6XFwsE8C_2he2m1jA4eMlP31c3-PVdlaFGZ5t_QWjaES-BJTgo4Zsgi2kROkti8KJG7iiCULhBBzawc2JX48TCxt6TkIyD66GEDMg0cq6uRd9QuDs5kPhYHxYsRBqZwBqzmVlubQg2LCj5eb5F0ecAUJ5k-WjOVGgwKBRKcT9HV4vwCbdkgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:43.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFhBkDpDk9wDFkhpw0JaloyddTpttEc3wX0s6pZ4JJ-xL-LaDnA3icshwqSSRiHdP0mxpY-dstjYJz0vu_0ReRbhim-5G0nh6M13jAp3H3nid1Im5RBSDfxtZ0D3L8QJpsprU2r5fj63ueY8ErI3xxjnI9zV73v12sk69JOuExxMWGiLR7Q4TSPOcH0GfgxAy3Gt7BABojuticlfOJmeXIkiDbrj8c6Mn0BAdM-AeXDn0gG6STuq86udNEsW2IvhtFlpzULVqSq1wIRgjORvCc2muzQ2dHzG0DJOmzhK5NJfVSHzJEeeXzuFM0MXGZ1X5TByYav2Qq5jgckUKdMingpubWDPNWj8wtX1oKM4PlC_ktgmuTRtPhanB_PTLMQYjCGFIqDlWR-7JdYwfTaJajvAZtNyuHUP_8Q121Fsqz2Gi6Na-BCLoE_dQJam9cnp3eamU1zS04IIXQgulGNLUkHNmAYVpRLLyUxZJj6Mowhhn5ykG4hkSvOsYjwxFZxa6VGQ0TSfrlWGNOH8XtYC5HxQIBJQfzpx2KgeCf5zTZwyRE_Wi6aNUKPcyPEH5RdvcqE2IfZDwu7Uoc5XyqMmev5ydt54jI69uSOGA28cSThawQjlwIaCCbIVEpG-wb_D_IQbn2XpvoS0owtC1Q7EtUWyxWpqufwcc34FyQo_MdNPCD_if1BmyVzhMbpSriaeqICCYgLlBKd-TsfJYuds33OiwW957lLEpOD9pEVfjcQfAwQGUGd9OKKMdFcFoJ4VeP3vHCyJiDca7s9Vy4DiihMU6f2NsbMK8P7LAMJYqB1JYCwaucrPTJpcPFsniyql-p83uJ27lM34Hohw8FIaq5DyfohbVQG90AgifzHxED0id3MmKX6mBOZhP9_gD00Kg2AOI47OZsWiTIzrn1Ggw9pg6J0heBtvEu6wwgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:45.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFfV31MKpMBXM4_KfOVbSxr_iKmxDlx-C1cwyBlHeJB_YvATF6u0F3HppGFlesNY-I2RtFa6CWrBz5uQJw2ljmHCMo8ijnMd4QPbrLGoygcMrXRrrTR5mKlRhmV2Sq6Bw3BhRtxvZ1tJUJoyaK8PLXs60w8yZpMbZAIXPyRUN_Biax-r61x9PVybDHnbmkTNOuDYSYYoXfStoo6w6_xpdiYy2woPiZ4ihCZxtD0EWuNvHFg3STzwJaEZjK2bh1N4ofBxtauNS4FxF_BOV6yBirOGf6-AvxbNM_e6CuhEyMDp7CFVfyCDsQiQVT585FtaHZsrjsSTBnNPl7gs1sJ-sBr1FyHVzQqvquWHJQ8ywVQYZrbeRTpRIK26_r4jvsN2Y5nIHkGyyf1jZqczdrXUTVGKxsuw53pPTDQn9pcSZBjWUn1ZeIJb_uSOToq0dynZPT-R-tkGPmOHe2FZqIHj0JmR6CWoJZeF91r-cN2Z731XGUTLYYrZZ_8oLH9f48HupQsX4PJZazJEaGg0w7gb7FmZzoasG16lDTDUknItnxz3UuY1TLvQvFUlj-MPgW8b-_-L65H39Pr8KV5IMwj-RM8PlyW_KAblvIgTb35xguV0Y18_4dUmOCOHxVKWwjnbDPC5myMVf6GqrnbOtUbISeCdGu7sCUKtVk26Xmv-yzFUbRdRZw6p0BVXWjf9OUqj0OrdKD0xIneaZdawe6D1EGmyEk0iSETTVbnBH8EOwuVcuXDkpTv6DZ1RxM-S0zmxFy3zrhvq1aAFJPiej42uxnk9bgBqEi45k-4xlES7kA4uycblojLOhaK3QKYPl51VbkVHhEipmhsaX7bA4JGuA4dWXBspEQpyRriW5dj8ARiXmXy38PhPKQVW7-LKmjQknhvp-ymxtsHxeVtX2oGgx5aDifADofmES_t2EgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:47.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFEmsyWLtDm5og0R_FheBAbBEPwO3mLpZzqN1m5iyMqmI55LO7JUuuOqcKAiXGXWkcW3TxDuAvM4MTDYCljiEMeJQy3s8eXJzmlU9KcnUfRHBJ1XVZksTf5vlcrs1gHkwZaWJH1zbT7kYcUvgRvTjecpRSjGTfmF4GIYKcbSvfDro_P5NEUKSaVLP719ioiKDetFToAxJfWTnazKSRZaQeMrndwbFsjVWMbY2ga-PXnKD-56_aNH4oC5ThkEnwCoWOvaeTJmY3BowLFhsikxcgen1y0RnO5LcNVhNyMno2betFfD9NRl4FUGKvOVDbN71EHh0Z3aN3qsU43VRLstJM7IOsMQjvCTbWqdAX2thFjglgIgqyO16_PhnTUUL_Ay9fmDyFY-Ir7Rz0Al8DLFD3nPO-bjugnbXsR0Ui6SoZbbnB8uBLswqG0vcw-AYh7FmcUooJI0-sbwLTDwV-hxQLObDom4dxAjev41c9QkVGreBHPtP2zhfHedUmIZQqoi8Of9juE6tk30YOsl1YHXNmhbr2DvTJ9ygPNlMQRw6r0-lzb5WTAiMTJSfZ6Gq8YZMdFbgEq_v2GOlIkbqubAMPMV7lAV4WHBojdjJTeKrL4JZBZuIYYE3W1SI0L199-WactVVMq5bnRX9q2UZ6Ui7rw-hFC7XdUUYRzzPRMkOeKtFmBGKjVdmkOYwHD48glM1KZfvSqj4MOyH24NygIf0EWs0bnKR9qcviCuy0hnKFiVvur07LlRATA4ZXs8hQPCeMNtrT6yC-1BGefziEAx3dqKHgFTWWzXul49EuxZvQv5HStj09spAZ-r8C6skmpb_TViHZZPM9Z57mWcobsg6eCVEZV6S6by4OWXqOyd_rDJl-2HTxsJRwLFG9xihtmfZ3jc56bYkKxmDA7vDmGgz_TJun9a9DSoK2yHggASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:49.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFiGu7alc79DeuOXEN_bhoNdc2bg863tG_vc50EkXstRBMMY_miKnZ8iTsg639nporLDJT_5b4-dW0it78rRTEziGZmQEsbHRR_XPRXDMSZRFQi-hjWjWxvgM7yZTZwDTzkTQkeoy81wpD0GyNo4mj1eB_vOeOwAmQ4IHq1Eq3QHhL-xnK2caiXUbdUhqDNFcBQebULzEvU8OjTLLDz-PBrleTmYQx59yFtdHxqPVx21hnkngAT7BKwt37dZEftg2-FjFMEpCpAOMpmn6Eno9cKuW1r9JVzeWuic120rMACg2dx8PlzBGCeKFtDYn1kITW3nasbV5ditcmzE91tmZnNfIFCKM8B3150kSW5F01I-7BCut83fyYj8UOu-7kzjIkY27Ue4V2pDWXWpBDzyMox25aNsuxOsMG2gzdnzhSZHnSDDvjLIlX48G5iQMBfpRYJeGeLT7cpIWRum9UefZqVvZAeMOOQ2V_zt5gIcFQew8fh6ffPgt30VAmUYUwm0hI6FC3E6cyiehDN4DgUncU9gEzg8jkHGAwvuXZBwuIjMOJ8McvZ9fL7urqZF2xcmprEqGgjP6tPJW6olHlhVQX11rkRAo4G-5v9bIm-ea6ClFaE1NGF-1REw1zIqIgugDQBotaokpAFN9qAlAVnIX1daj2AdmPzJLHvIfQNQnG9zuReey0_cmmPe0Fwd-KjSUHCGgygmvnmxtlG8O9bBXsQyvzNSrinHCSvxbCB5qgidZbVLsaA1vXDJ2KkBdyJjY0BTQviuIJIMbwGhUBUNtOwt7rvS_p5ugLYhlHRSVS6GL8OuyA0vadQlclAkZrbJ_zsntZdTntKYz4ycNHu4sI6UobEfrsxyiPEtNTmNquNT6xU1lD835Ur-1-pkdcZNZp91IychU_RoSeQs6xGgwfN4XIjiDzFUBW6MggASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:51.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFKHCJNr5hkD_fT2AhDhPHfZyvUHyLdHRJiTSxPtHdzdHsnGwKeginq7B_VeuZkQ52BgdcLXE-42389eSHj2tcsP1o9thd9sQmFzpjvZsTtzjGWFkTHsxkl_rowngkLuHLLav8mAdCOnzyT2lgZuVlLzDgUkrrtbITpvkWT65J_-q31buqa_NjY1s0SoCo0hzXg0wbwoHgYd9H1a4Wxu_cdFZHH08b08LGn8Bay9Gx6Hgl0zg6CJKbnbHZPkBC__wbwqcuNw4EvydK61LNmmHOnxv_svm5JuwWvq4TYKQNmb1nYXv2skRUi683PMxJnuarNATamUcMzphNyy4V5lxk13J3jjl4bYxtLs9kdFTC1q1hCqQVoy-_rKQ38faX9_3bs83f6OCQ1EvGF2iy4iR-lcSkW4juFUNuD-Q2n3IMegqMzkV8KLLHlx9Dqx4yMJ7qlokmzi4aBbF_dNpIK6j__6pEOtJTn3otsPZNj-hpou52ORq072TfMPJqAWymopS3R2pjocYeC30sDTwiO8ysI14dEBUJRjTaCUJt0KBtr57TVUbclrYITPJrK8p7UHwTPxVW5LgdCpAxgx2WM8K50LeOYolRB5DP1jdkZKPiTkR3nkN2arZjw7fSpwtSIbFRw5t4tnjBQOPkqVEiskE7pZwII7qP40SoyJZZ_-nyO_2BnlPLBU7XAsZ_Kyl8_himYjzE_Kq8NqBfYDbXPg6yoeEpQuaTDxfqF_pc59l6BwtVCgbiOYvHOBBHEEdmPRe7v0yHdcF4NoNQoQDVprwnLK7XnFnXNjNJ-x2qT0quXFTuy_psH8e-Mu1smx2oyztpwuArO5OhPaBINti867zkxNYeYbV-Y8CwdS6SrwAoqjQtpK-IjuRraQO6NTkYT-6bCJjeX-5UMC-06mU6GgwjLx3K3FnxLyAiZoIgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:53.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFh8x56VR3NqhnJEHa0rcfNodawzz72RkI6ZZWv2WwTUe2c6NT_MWTy42hTQxrukBABRjWIOx9oDsZ2i6QLMjGnYnmbHyNvNssboYr66Z6qr1hsYsdxekRPy7LE3ofyRaoTA4yMKEFIyqJkxouVlqUWD3_MdDoqI7SonszYRtrwdCx2HgMgAMM6pVwNWMTUX3eICD3o1LTHlBdJROrLmZCebBVnsOzrinKLBMwGxjjxdQL6l1m29ihICeOhD6zUmLHHQzHa_RFxkRuswFCjVmaXaAc5K68-kC1_YaXqRo6fox7k7DuagfSlwxjFM08Gy-unlLohg5OuH2Leh-69M0cywIzPHsFkMpTs4MVbRdHzKE2qmfKTMH6WNeJFDKMjcbuf8gb5HTZvbbl5bwiF3ZPG9Lh94lBOTeSHbVPwvjBOAun-3l_USUODaY7yjwQsv2lbbYYQzKXm9bvdTAHqtJDRMnD4bCrvkzh5szowA8Ztftc4IYgtFd5ywR4xyocvoC5IKQhg4c4Ez_obMyB3bx1sTry96lUeyj9FaKoer8LAUSmH-TNbLmbQL8_bs6NgUvb3pxJp8jcUHzZYcmzdBuDeS2xhipy07TxaHmI5IVVSin9s-nwuo_JBVPyLDJi--OlE04PJfUeBuyzobK0OutmzRooTcbMQCBPAL1MK6-JAGHXL1K3SSlsYD8A6GV42wdfdEWs2N8mAjZtrP-aVbv_010ba2w6t6krC1ubdfCRT_wOjzMZ2TlZz9rp15Q5-60bKuj8HMtCGQ-XHQwYAz6vTseQza-2VJi_8Sl9vlyGUl9bXtYFf4hBBoBjZQZjvCxPXyNoXFvSGVDTn5knOv6El1DUDCEHIz1NQc8AuOOe4ibaYS9Gd9YafXoFk68yajMdUXrmo0smGoqXANVgGgx--a6bkWPZz-cEsbIgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:55.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFwEKEP-9AXJH4Wi76vzDsnewVVtQqtGEN2M35udVpxjOLMy4POZJgbWLGuvGhgXZehz1Mu_i4IX9IMuRjM_KmKTnajIKx0QFB6SJJl1UdhWQg-wkXebJt8LE3a2_ClDr52r7IOFXKcijOlS0R72nSuxeHXecPVFYSJ04iY_6IUXUWoL839w2fwQS229H9mDbztQfn6VGwKQh6dY87GcFeW-EakZXKErx9uIpqoj_i5hMQtooYP3x4mUr9oWb9gG9gVb_B5RkTsR374ljiW2GmGqWZfXRQyVOGfFdSHduRbJ0lqhyzrbV0DelqhjFW2TRlNeWVECTRctlWA0KAl5S4lSMINoc3PXRK7ujiev7N7NcRflGC2m4EoG-rW1RTo1XM5R3KQvgct4yTFsqX-kKCjWQDlgkH57CanqJms8xCQOYdjw_tUCRBvO6K9qs63skp5Sn4wxWknsejHzUyZWQOI2fT0-RfhgbqNPSz-P51tpYwNw8xG3PaUXUwsKdpvVR4fD2SItJCfiw9B4NVBWeHvdnMwslaZ_8K_zbVv6mwjmEIScJUdaPLm5cEht5Zrfwx7-yKwRix4ZIoC9hAKDM6a1nkqA1U74gJru9IjqELnZsioLcBjf0Fv20f6Ukd4kgZR9pxcAD1-0-o9ZFNNlfrvC2H7ZGXK8ZOudWTClaFtN9H8VCjKoTUPc26Phu7c8NMcgDExKm-WRMWAK7ZBRUXDRjNnO6Q8ja1Yon3rAUH4tD_arXCEHIiXkbLBjdSPx4s1ZRsdLtvMFhHjipTLdXbjDab48q4Z6AxeUEZVdl-ULO4L7vbQ_nHb-2tTT9XLzGDTq8DfGchQFlfwSKEbCwdJwJsKshiiaV5AkvrP8_PqZXxSiAx_rz4aSZ0WWGNAeK9-beMVlaiMM3FRHRsGgwXsj46IR5eqwJOiXkgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:57.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwF_DhNPGzVHsgd9QG-7jqP3vLyL5bFP5VRiTgvjiF1bDhhFja0cr-4-BkSuzM3kshsSF30B7Hs41KMHuexfIhJXxB41LpWf34_bZqQHbBzUasDnELfY0Jallp3zuDhMm1RPLbZ_tYuCcmvBTdoLIxwIVnLk5r_hva0WF2MNMx5I6IHJjVb9HtpYyjrD5N-y4Jc9xbaeVsO3Fj6INxRfln4NWM7DGoo4fGmXgz105X-lOJrbRCuDaIG3XofDf0tU1hhxA70vhwP_tiLhUITwnvhZ9TtonNwJ-nIzzeNafwKOVUFY2Ky-vLL9h0B79XDfuQbKk6JJ7YRH_InlONnLAb0eAStyLprNCUsY372zhqvBBNFtrtokHwcRNXX0lFA78ZH2nKokkVOp9XFoUaAaOYKhGHv34EJR1wbgfF7Q-7xkWnpmZ2JgrlEFdOvPxM7_FaI-VzsrLgVA5x9btuARXH3CbaskDHvvhKlag4mNxzYPIY9j-S_sV-ye7VQGW-lkYh9rkSeqltFjLrgKXtK7_VPsJlQdNp6Xmd5GCmdU7dhnG2JWek9WiHkTzQeIfWKHw5-bDyGcGMI9W5cfvwN4jQnUQRRsIiROp5tazQ7Vi0xDeIljnTHtXsC2jKL0tjPOt7tjsS3HkX4sqeF5r9vl9vhEyp3KVymmas8i16kB_KN708bXQBH1glprOi3cdnKSuJL8PAESH3NczV0K3paxuGMVjC30ZOxCtXEa9YTpUbZTngVSEvnnvhzN9mlrduM8e3BwB3ZCRhBIlJ2b1GQCYBym1p-8cMlHg50s2l19PZ-cBWcSwaCyie3ezrQTJAMHj2-UZ5qiqlget23x-5r40dto_x6sWUXc7f1ej0X_w6oRr42RaQ8SOul6kUNOwRUIHCptbUTOm9rN0uk9sIGGgy3ylYuePxGPkqLRmMgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-PROGRAM-DATE-TIME:2024-03-20T11:11:59.284Z
#EXTINF:2.000,live
https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFNs7eo91tG1zHuzc0iKM3e93VsMqkS-G3pbnAL2W14JnB5-oCFfFFSv_Ix3TKmP_gHCcC3KouxlOMi_i25v9gssehg3Ae-yYERUhU6ZQHnmCLRfA2iTuJHcswqxsSQMgFCCkzo-JqN9bJs1P23hoe9nS29oaMRrXELZQptiurl6p3f2fstsB_dpuebPdNEEiSM0XYDoOVIjJDYQA3XrjYIL85knOWE4MVcR9vlUvMUdEjBVs9D4UE0UPGNfMKDqzXo-TvAv383WnbxpTE-ifAqPF8w1AJCW1XO-fs3IxIiNwpoqvC5EaO9ZJTmJWQqVIgqhwTGaw6goR1he8Gw2FeOr4khksATwDdWrDD-ScxPoXMC3TcbnfkDNxbakN0PfL8kNDj_aFu1annaIypHZ7ihByasT4Iba20ji6730_A4z0uk84NC5tn8E--Sxluh6cn806EcGUxYYLEo-4MXhPs4-b89vGeWpAFLmwKGLQIuM5lkA1sdlV27KAGVJrgDK4iOXN-i8DWr9jgShD_wEjiLEnKvAh9Wv-ZtpVtHhvOnj4IgMm3cNrARK6c-3wsSKotwbG_3Ai6Htm0NI3zHVrvf_hGx3YpHsbjf8rz1qgObutAG7fvjYZpfyd6I7QYnKKttQzFOp-GkhGWRJFM-LUi2cA0W8u-ZwLAutRQgVtopIFOAq7njhdNpwxh93rK0Rq9fFrWGL9SWHRGc9K5O9XXVlT3tp3Yyya03eAW-I7Jt7zA6p4ckdv63ToXO6p_3vPSR2rRlD4x9J7NS2pd2oYc_p6ra3GiCH0E-ke--BWMPdtb1DODW5pGHVQotvioZ_0B6zNNfTIKHZf78gvVZ_rOo3Rtsz4DyE7DNAH7FxAbt2F4JGt9VyBsuXNLXWPS_ETYpTGKQlb3zJAWarV9GgzhnGm3eC9F091tUjEgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-TWITCH-PREFETCH:https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwF_IyFLVR9ZgY8EJf-wSOJ3SP-uQM_2x4N5fGj-JS6TK0VBVJRCsLU8T01mjFHXTtUQuzwp7GTeUuencWDwpyUJ8QmHg1m3R2UtcdCsPdorEGAgwzi09GHkUbFC91oUzg6doylX2UgxQvyI6vEOyWGNg6VMZPQ3CyLTVy6mQrtW_8kMMvp3-5js92GHU3ZQNCd9JsRfdcHQZCOLheUJexZjoirHPrPD9zTSnLbnrNMMItQlTWFPrbm8sON3Cyp2qCD_3F40TdU9kBMh_-d3H2ijR5F2p-jgAi5NDEOhbfNyfFC2cxqotlhtTqc-PDUxURcGVG5aZheP7pZW36i5UaLDfJp1ZYChVDVt8HP0Th9ISYvEuAKEfal4omEJdpsT_V-ejTLQ3XwoyQu6owMAEtxIIOARFbxyKS-6Bg3vFXvDMMph1fucOUtb5e840tsgRdEBiqwcPfG1tUR7J39qTtNEL_o6yPK-l5r3dNoam-w-DPK_cjdT9_bGXnc-jhrbjS_bDRvbRPmE8rhCB7DP-9I1MFfDOKMr9rcwro-Er3WBwMAksjz4iRdKiTl5BOwgPvplxL5UqmN_qRi6d8p43BWDUhHUqglQXWScnV55Bn9b5cImu7KMz6iiSKjMZAlf0rmffTfy1g0WSJMIb-2Z88vwrEFuFlF0NT-cQqdfMZgLnWlrK0Yh9GS4Tn89-T63XAdWhAzn3Ae6McrcfNEuQFt4Ekl7n07cFT-XLwWzoZFySx2_oDqUWwgG5C4B_jjvwZ7-4mABQvrZ1EWoK9Ks9ja8pBckSlsAnC8Y9RA_gzV-VFea7o_xB7Bg2LBs0xeqm2v0lJF64Pr5Gz-J_TntRCEXb1kfxv6lsTeF3u7F3_0yLTREsfJUa_wG4LlS3FKOjuSl1mXFBwosEjBeo6nGgzvk6DM-GDS44q-PpQgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-TWITCH-PREFETCH:https://video-edge-cebeb4.fra05.abs.hls.ttvnw.net/v1/segment/CqwFNYIiugZXvKClAb4zR9b1pWiIpArpS_6vYeoJR36QZ_18qbfP9dzN3EMSrndC3lUd5NKBLHyChJgxWdEoWsIZfhWs9v8n1A_9JzelWXvUaVJF7uLBplFr5ZwHmVJuY7VOW1Fzwje5aGa9KQ3M4y8lVLAykag_kPfZZRGFven_j9GdPqamB4bdxtq7NxP98qRD-DSCcwbf8GVCh28y5jEEZ0XMVWHEhMtIhCYHgyK9rK2aXW5hRcVNXn-LZJMrKgGYEGjX7dOBVvI9OAuqh6xbmf2PLY0Eq0B7lEUU06yMHWJdulsXgxtC5WJFVtFtAkMBm_XP_DsWY-Xa3dwU-8zKm7wmst6_nyKL7U86-US505IyWhHZXfjaJ5tBXNguYT13Cwhcqz-y8q7bLcnQYs-0NT5gg1S8erg4C94ZWHRsaA95IZFbvR3QsHyxRFqHlPru3Pd2XBj9M4EnfoLUk_TCFZ3D3a0k45UXp0OowHrwEDpf-bV6f96vk7z5xTu35B-e3y2Vf1jYjyfa6uU26OsVfHFQ3pwYwsivlK7MHzio7M4qF4r0wAN7OfvVbSlMN5yYa1seV4oX0NAoMoZ_zumIVZhu8se4DjmYXGJO5HIVMrAlua4yyjAkiul0OrrF_xct0xF1DWWJfTZ6P-kZpbY0h-h-fOSWg9wZwxyMRRaYi0JGb5-jxJMJJdIjdmBbuW9L_s43rzJY2X9VPbKP1T3UjUqN2yueY7CnPHmQ4divaY7ohKJuCLrTaN-TeWmF4O7EVe8sHnQabHrSGmEom8cqLci-hqlunj8HOeKWiHkU7j6v1e6s_ZVlnaLyiOpItBpUCjxE77_yCGtm2ST6QnD2zRxb02bflDdtoKLeY3d_Sna2xjhCiZLlsNgG65kQjDq-9qcKYmYA86pmJ6h1GgwnVrULrKynEEjEMQIgASoJZXUtd2VzdC0yMP8I.ts
#EXT-X-TWITCH-PREFETCH
tag: https://github.com/streamlink/streamlink/issues/1676
Some playlists use offset: Seeking problem with HLS online videos
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#ID3-EQUIV-TDTG:2015-07-26T16:45:54
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TWITCH-ELAPSED-SECS:0.0
#EXT-X-TWITCH-TOTAL-SECS:31477.134
#EXTINF:1.500,
index-0000000029-lyDb.ts?start_offset=0&end_offset=163935
#EXTINF:1.670,
index-0000000029-lyDb.ts?start_offset=163936&end_offset=973463
#EXTINF:2.000,
index-0000000029-lyDb.ts?start_offset=973464&end_offset=1920419
...
#EXTINF:2.000,
index-0000016002-ADk5.ts?start_offset=11255560&end_offset=12193679
#EXT-X-ENDLIST
What about using M3U8Parser or m3uParser.NET
The M3U8 parsers I checked on nuget just put the stream metadata values in dictionaries, meaning I would need to manually parse each individual value, as well as hard code a bunch of metadata keys whenever I want to access metadata. I don't want to do that.
Using a dictionary also means that we cannot have multiple metadata entries with the same key, which some of Twitch's M3U8 responses have.
In addition, my M3U8 parser makes some corrections to the Twitch response because some engineer at Twitch broke stuff, but it's probably an AB test because it only happens every few requests.
The tag
#EXT-X-TWITCH-ELAPSED-SYSTEM-SECS
is not handled by the code in #996:#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:5 #ID3-EQUIV-TDTG:2017-02-23T01:56:22 #EXT-X-MEDIA-SEQUENCE:21823 #EXT-X-TWITCH-ELAPSED-SYSTEM-SECS:87306.456 #EXT-X-TWITCH-ELAPSED-SECS:87299.595 #EXT-X-TWITCH-TOTAL-SECS:87330.456 #EXTINF:4.000, index-0000021824-ZIka.ts #EXTINF:4.000, index-0000021825-7IPc.ts #EXTINF:4.000, index-0000021826-QQ9O.ts #EXTINF:4.000, index-0000021827-Outt.ts #EXTINF:4.000, index-0000021828-hT92.ts #EXTINF:4.000, index-0000021829-yrgH.ts
mentioned here streamlink/streamlink#620
What does this comment mean
#EXT-X-TWITCH-PREFETCH
tag: streamlink/streamlink#1676
I'm not sure what this comment is trying to say, but we don't support live streams.
Some playlists use offset: Seeking problem with HLS online videos
#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:2 #ID3-EQUIV-TDTG:2015-07-26T16:45:54 #EXT-X-PLAYLIST-TYPE:EVENT #EXT-X-TWITCH-ELAPSED-SECS:0.0 #EXT-X-TWITCH-TOTAL-SECS:31477.134 #EXTINF:1.500, index-0000000029-lyDb.ts?start_offset=0&end_offset=163935 #EXTINF:1.670, index-0000000029-lyDb.ts?start_offset=163936&end_offset=973463 #EXTINF:2.000, index-0000000029-lyDb.ts?start_offset=973464&end_offset=1920419 ... #EXTINF:2.000, index-0000016002-ADk5.ts?start_offset=11255560&end_offset=12193679 #EXT-X-ENDLIST
Handling query parameters is not the job of the M3U8 parser.
Checklist
Edition
Unsure
Describe your issue here
The playlist is unnecessarily modified. Sample VOD:
These are the values of the variables during download:
This is the modified playlist with wrong values:
These are the issues:
+09:00
should not be there since does not update the time and date to that timezone, and the original stream doesn't have to match that timezone.#EXT-X-PROGRAM-DATE-TIME:2023-02-06T22:28:36.317
is out of place..
to separate decimal is changed by a comma,
. Specifications say dot must be used to separate decimals, comma is to add the title.