Skip to content

plugins.mitele: fix/add Origin header #5306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 27, 2023
Merged

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
@joaquinito2070
Copy link

[plugins.mitele][error] Error getting pdata: 4001

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
3 participants