Skip to content

plugins.dash: partial URL gets matched #5366

@pfer-95

Description

@pfer-95

Checklist

Streamlink version

Latest stable release

Description

Hello.
First of all, I must say that I'm not a programmer, I'm, at most, tech savy, so forgive if I'm making something stupid or not seing the obvious. I also tried to google the issue, but I got no results.
Recently, my provider changed the url scheme and I'm unable to get the manifests/streams using Streamlink (I would like to note that there's no DRM involved whatsoever).

Previously, my provider had links with the following scheme, that worked great:
https://hostname/sdash/channel,token=XXXXXXXXXXXXXXXX/index.mpd?device=PC
But now they have the following scheme:
https://hostname/sdash/channel/index.mpd,token=XXXXXXXXXXXXXXXX/Manifest?device=PC

This seems to be some regex problem, because Streamlink gets the link up to .mpd and seems to discard the rest of the link (it gets the "https://hostname/sdash/channel/index.mpd", but discards the ",token=XXXXXXXXXXXXXXXX/Manifest?device=PC"), making it unable to get the manifest/stream.
If I open the same https://hostname/sdash/channel/index.mpd (without the rest of the link) in the browser, I get the same error code 400. Also, I piped the same links (https://hostname/sdash/channel/index.mpd,token=XXXXXXXXXXXXXXXX/Manifest?device=PC), with the same data, through ffmpeg and it's working.
I read the cli documentation and I did't see anything that could help me to solve this, so I'm reporting this possible issue.

Lastly, I would like to thank to all Streamlink contributers, because it's an amazing piece of software.

PS: I had to redact most of the link, because it contains personaly identifiable data. The streams are also geoblocked.

Debug log

[cli][debug] OS:         Linux-6.3.3-artix1-1-x86_64-with-glibc2.37
[cli][debug] Python:     3.11.3
[cli][debug] Streamlink: 5.5.1
[cli][debug] Dependencies:
[cli][debug]  certifi: 2023.5.7
[cli][debug]  isodate: 0.6.1
[cli][debug]  lxml: 4.9.2
[cli][debug]  pycountry: 22.3.5
[cli][debug]  pycryptodome: 3.18.0
[cli][debug]  PySocks: 1.7.1
[cli][debug]  requests: 2.28.2
[cli][debug]  urllib3: 1.26.15
[cli][debug]  websocket-client: 1.5.2
[cli][debug] Arguments:
[cli][debug]  url=https://hostname/sdash/channel/index.mpd,token=XXXXXXXXXXXXXXXX/Manifest?device=PC
[cli][debug]  --loglevel=debug
[cli][debug]  --logfile=/home/PC/log.log
[cli][debug]  --player=mpv
[cli][debug]  --http-header=[('User-Agent', 'PC')]
[cli][info] Found matching plugin dash for URL https://hostname/sdash/channel/index.mpd,token=XXXXXXXXXXXXXXXX/Manifest?device=PC
[plugins.dash][debug] URL=https://hostname/sdash/channel/index.mpd; params={}
error: Unable to open URL: https://hostname/sdash/channel/index.mpd (400 Client Error: Bad Request for url: https://hostname/sdash/channel/index.mpd)

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin issueA Plugin does not work correctly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions