Skip to content

Conversation

@mkbloke
Copy link
Member

@mkbloke mkbloke commented Apr 24, 2023

$ streamlink --http-proxy "http://pass:user@host:8080/" https://www.mitele.es/directo/telecinco/ 360p_620k
[cli][info] Found matching plugin mitele for URL https://www.mitele.es/directo/telecinco/
[cli][info] Available streams: none_150k, 360p_620k_alt (worst), 360p_620k, 360p_1100k_alt, 360p_1100k, 576p_1900k_alt2, 576p_1900k_alt, 576p_1900k, 720p_3400k_alt, 720p_3400k, 720p_4800k_alt, 720p_4800k (best)
[cli][info] Opening stream: 360p_620k (hls)
[cli][info] Starting player: mpv
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[stream.hls_playlist][warning] Discarded invalid attributes list
[cli][info] Player closed
[cli][info] Stream ended
[cli][info] Closing currently open stream...

closes #5203
related #5307

@bastimeyer
Copy link
Member

[stream.hls_playlist][warning] Discarded invalid attributes list

Could you please post the contents of a single playlist request? (--loglevel=all)
I'd like to know if that's an issue in the parser, or if it's actually invalid.

https://datatracker.ietf.org/doc/html/rfc8216#section-4.2

_attr_re = re.compile(r"""
(?P<key>[A-Z\-]+)
=
(?P<value>
(?# decimal-integer)
\d+
(?# hexadecimal-sequence)
|0[xX][0-9A-Fa-f]+
(?# decimal-floating-point and signed-decimal-floating-point)
|-?\d+\.\d+
(?# quoted-string)
|\"(?P<quoted>[^\r\n\"]*)\"
(?# enumerated-string)
|[^\",\s]+
(?# decimal-resolution)
|\d+x\d+
)
(?# be more lenient and allow spaces around attributes)
\s*(?:,\s*|$)
""", re.VERBOSE)

@classmethod
def parse_attributes(cls, value: str) -> Dict[str, str]:
pos = 0
length = len(value)
res: Dict[str, str] = {}
while pos < length:
match = cls._attr_re.match(value, pos)
if match is None:
log.warning("Discarded invalid attributes list")
res.clear()
break
pos = match.end()
res[match["key"]] = match["quoted"] if match["quoted"] is not None else match["value"]
return res

@bastimeyer bastimeyer added the plugin issue A Plugin does not work correctly label Apr 24, 2023
@mkbloke
Copy link
Member Author

mkbloke commented Apr 24, 2023

I think this should probably be enough:

...
[16:16:39.759646][stream.hls][debug] Reloading playlist
[16:16:39.809431][stream.hls_playlist][all] #EXT-X-VERSION:3
[16:16:39.809882][stream.hls_playlist][all] ## Created with Unified Streaming Platform (version=1.11.20-26889)
[16:16:39.810221][stream.hls_playlist][all] #EXT-X-MEDIA-SEQUENCE:219055907
[16:16:39.810518][stream.hls_playlist][all] #EXT-X-INDEPENDENT-SEGMENTS
[16:16:39.810817][stream.hls_playlist][all] #EXT-X-TARGETDURATION:12
[16:16:39.811063][stream.hls_playlist][all] #USP-X-TIMESTAMP-MAP:MPEGTS=5256008608,LOCAL=2023-04-24T15:15:58.080000Z
[16:16:39.811298][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66416120-1682349343",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:43.840000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTIwMDA="
[16:16:39.811733][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66416432-1682349344",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:44.160000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTIwMDA="
[16:16:39.812122][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66417430-1682349345",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:45.160000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTA3MDA="
[16:16:39.812560][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650241234-1682349348",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:48.520000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:39.813046][stream.hls_playlist][all] ## splice_insert(auto_return)
[16:16:39.813297][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="1682342146-1682349351",START-DATE="2023-04-24T15:15:51Z",PLANNED-DURATION=892,SCTE35-OUT=0xFC302500000000000000FFF01405644681027FEFFF3930DEF0FE04C8F9C00000000000002853AC3A
[16:16:39.813596][stream.hls_playlist][warning] Discarded invalid attributes list
[16:16:39.813875][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650248303-1682349356",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:56.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Nzk2MDQ="
[16:16:39.814298][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66429335-1682349356",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:56.840000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Nzk0Mzg="
[16:16:39.814680][stream.hls_playlist][all] #EXT-X-PROGRAM-DATE-TIME:2023-04-24T15:15:58.080000Z
[16:16:39.815022][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:39.815511][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055907.ts
[16:16:39.815901][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66432882-1682349360",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:00.360000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NzUxMDA="
[16:16:39.816301][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:39.816606][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055908.ts
[16:16:39.816959][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650259578-1682349367",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:07.560000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NjgxMDk="
[16:16:39.817345][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66441043-1682349368",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:08.440000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Njc0ODc="
[16:16:39.817728][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:39.818051][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055909.ts
[16:16:39.818473][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66451313-1682349378",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:18.680000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:39.819109][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650271845-1682349379",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:19.800000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NTU4MzU="
[16:16:39.819720][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650272862-1682349380",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:20.720000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:39.820168][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650281083-1682349389",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:29.080000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:39.820568][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650282131-1682349390",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:30.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NDUxMDg="
[16:16:39.820998][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66463645-1682349391",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:31.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NDQ2MDI="
[16:16:39.821502][stream.hls_playlist][all] ## Auto Return Mode
[16:16:39.822100][stream.hls][debug] Adding segment 219055909 to queue
[16:16:44.944999][stream.hls][debug] Writing segment 219055909 to output
[16:16:44.947362][stream.hls][debug] Segment 219055909 complete
[16:16:51.822847][stream.hls][debug] Reloading playlist
[16:16:51.874450][stream.hls_playlist][all] #EXT-X-VERSION:3
[16:16:51.874824][stream.hls_playlist][all] ## Created with Unified Streaming Platform (version=1.11.20-26889)
[16:16:51.875231][stream.hls_playlist][all] #EXT-X-MEDIA-SEQUENCE:219055908
[16:16:51.875516][stream.hls_playlist][all] #EXT-X-INDEPENDENT-SEGMENTS
[16:16:51.875845][stream.hls_playlist][all] #EXT-X-TARGETDURATION:12
[16:16:51.876128][stream.hls_playlist][all] #USP-X-TIMESTAMP-MAP:MPEGTS=5256699808,LOCAL=2023-04-24T15:16:05.760000Z
[16:16:51.876387][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66416120-1682349343",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:43.840000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTIwMDA="
[16:16:51.876845][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66416432-1682349344",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:44.160000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTIwMDA="
[16:16:51.877231][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66417430-1682349345",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:45.160000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84OTA3MDA="
[16:16:51.877630][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650241234-1682349348",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:48.520000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:51.878044][stream.hls_playlist][all] ## splice_insert(auto_return)
[16:16:51.878293][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="1682342146-1682349351",START-DATE="2023-04-24T15:15:51Z",PLANNED-DURATION=892,SCTE35-OUT=0xFC302500000000000000FFF01405644681027FEFFF3930DEF0FE04C8F9C00000000000002853AC3A
[16:16:51.878595][stream.hls_playlist][warning] Discarded invalid attributes list
[16:16:51.878853][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650248303-1682349356",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:56.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Nzk2MDQ="
[16:16:51.879265][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66429335-1682349356",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:15:56.840000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Nzk0Mzg="
[16:16:51.879650][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66432882-1682349360",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:00.360000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NzUxMDA="
[16:16:51.880114][stream.hls_playlist][all] #EXT-X-PROGRAM-DATE-TIME:2023-04-24T15:16:05.760000Z
[16:16:51.880898][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:51.881582][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055908.ts
[16:16:51.882282][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650259578-1682349367",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:07.560000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NjgxMDk="
[16:16:51.882999][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66441043-1682349368",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:08.440000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84Njc0ODc="
[16:16:51.883499][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:51.883781][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055909.ts
[16:16:51.884362][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66451313-1682349378",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:18.680000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:51.884947][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650271845-1682349379",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:19.800000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NTU4MzU="
[16:16:51.885515][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650272862-1682349380",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:20.720000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:51.886115][stream.hls_playlist][all] #EXTINF:7.68, no desc
[16:16:51.886473][stream.hls_playlist][all] main-audio_spa=128000-video=400000-219055910.ts
[16:16:51.886961][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650281083-1682349389",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:29.080000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADZXZlbnQAMTk5Mjk4N19hbGw="
[16:16:51.887451][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650282131-1682349390",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:30.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NDUxMDg="
[16:16:51.887994][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="66463645-1682349391",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:31.120000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84NDQ2MDI="
[16:16:51.888430][stream.hls_playlist][all] #EXT-X-DATERANGE:ID="2650293888-1682349401",CLASS="https://aomedia.org/emsg/ID3",START-DATE="2023-04-24T15:16:41.880000Z",DURATION=0,X-MESSAGE-DATA="SUQzBAAAAAAAHFRYWFgAAAASAAADYWRtb2RlAG91dF84MzM4NzE="
[16:16:51.888859][stream.hls_playlist][all] ## Auto Return Mode
[16:16:51.889312][stream.hls][debug] Adding segment 219055910 to queue
[16:16:55.869181][stream.hls][debug] Writing segment 219055910 to output
[16:16:55.871469][stream.hls][debug] Segment 219055910 complete
[16:17:02.426970][cli][info] Player closed
[16:17:02.427411][stream.segmented][debug] Closing worker thread
[16:17:02.427771][stream.segmented][debug] Closing writer thread
[16:17:02.876539][cli][info] Stream ended
[16:17:02.877113][cli][info] Closing currently open stream...

@bastimeyer
Copy link
Member

(?P<key>[A-Z\-]+)
SCTE35-OUT

Needs to be (?P<key>[A-Z0-9\-]+)...

@mkbloke
Copy link
Member Author

mkbloke commented Apr 24, 2023

Completed a long test with the HLS mod and no other invalid attributes reported.

The only other thing to note is that currently one of their mtmad-24h streams is broken. The other one is working.

[cli][debug] OS:         Linux-5.15.0-69-generic-x86_64-with-glibc2.35
[cli][debug] Python:     3.10.6
[cli][debug] Streamlink: 5.4.0+10.gf9bcdbca
[cli][debug] Dependencies:
[cli][debug]  certifi: 2022.12.7
[cli][debug]  isodate: 0.6.1
[cli][debug]  lxml: 4.9.2
[cli][debug]  pycountry: 22.3.5
[cli][debug]  pycryptodome: 3.17
[cli][debug]  PySocks: 1.7.1
[cli][debug]  requests: 2.28.2
[cli][debug]  urllib3: 1.26.15
[cli][debug]  websocket-client: 1.5.1
[cli][debug] Arguments:
[cli][debug]  url=https://www.mitele.es/directo/mtmad-24h/
[cli][debug]  --loglevel=debug
[cli][debug]  --player=mpv
[cli][info] Found matching plugin mitele for URL https://www.mitele.es/directo/mtmad-24h/
[utils.l10n][debug] Language code: en_GB
[utils.l10n][debug] Language code: en_GB
error: Unable to open URL: https://directos.mitele.es/orilinear15/live/linear15/playlist/playlist.isml/ctv.m3u8?hdnts=st=1682357129~exp=1682357308~acl=/*~hmac=9a433f0e9054f292b4dd400c9df7ef07bdb3e5dc9223e3aadaa7842cd792af66 (404 Client Error: Not Found for url: https://directos.mitele.es/orilinear15/live/linear15/playlist/playlist.isml/ctv.m3u8?hdnts=st=1682357129~exp=1682357308~acl=/*~hmac=9a433f0e9054f292b4dd400c9df7ef07bdb3e5dc9223e3aadaa7842cd792af66)

@mkbloke mkbloke marked this pull request as ready for review April 24, 2023 17:50
@bastimeyer
Copy link
Member

I'm going to merge this now, despite no feedback from anyone else. As I said in one of the other issue threads, my VPN gets blocked, so I can't verify any of this.

@bastimeyer bastimeyer merged commit 0744ee6 into streamlink:master Apr 27, 2023
@mkbloke mkbloke deleted the mitele branch April 27, 2023 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin issue A Plugin does not work correctly restriction: geo blocked

Projects

None yet

Development

Successfully merging this pull request may close these issues.

plugins.mitele: not working anymore for all channels

2 participants