Skip to content

plugins.twitch: source not always considered best #4624

@elliotcm

Description

@elliotcm

Checklist

Streamlink version

Latest stable release

Description

It seems that in some cases Twitch is returning Source (as opposed to e.g. Source (1080p60)) as the stream quality name, and this is not being picked up by the synonym best. This can be seen also in the quality selection menu in twitch.tv itself.

I know that Twitch used to do something like this a while ago, but these streams are from a few days ago.

An example of the normal (correct) behaviour:

[~]$ streamlink https://www.twitch.tv/videos/1511444066 best
[cli][info] Found matching plugin twitch for URL https://www.twitch.tv/videos/1511444066
[cli][info] Available streams: audio, 160p (worst), 360p, 480p, 720p60, 1080p60 (best)
[cli][info] Opening stream: 1080p60 (hls)

An example of the "new" (incorrect) behaviour:

[~]$ streamlink https://www.twitch.tv/videos/1510768607 best
[cli][info] Found matching plugin twitch for URL https://www.twitch.tv/videos/1510768607
[cli][info] Available streams: source, audio, 160p30 (worst), 360p30, 480p30, 720p30, 720p60 (best)
[cli][info] Opening stream: 720p60 (hls)

(in this case source is actually 1080p60)

I'm not sure how widespread this is on Twitch and whether it's an issue that's here to stay, but we could probably safely assume that any stream with "source" in the name is the best available, unless there's a nuance I'm missing.

I found this to be the case with a version 3 of streamlink, but I've updated to 4.1.0 via homebrew and it's the same there.

Debug log

[~]$ streamlink --loglevel debug https://www.twitch.tv/videos/1510768607 best
[cli][debug] OS:         macOS 12.4
[cli][debug] Python:     3.10.4
[cli][debug] Streamlink: 4.1.0
[cli][debug] Requests(2.27.1), Socks(1.7.1), Websocket(1.3.2)
[cli][debug] Arguments:
[cli][debug]  url=https://www.twitch.tv/videos/1510768607
[cli][debug]  stream=['best']
[cli][debug]  --loglevel=debug
[cli][debug]  --player-passthrough=['hls']
[cli][debug]  --default-stream=['best']
[cli][info] Found matching plugin twitch for URL https://www.twitch.tv/videos/1510768607
[plugins.twitch][debug] Getting HLS streams for video ID 1510768607
[utils.l10n][debug] Language code: en_GB
[cli][info] Available streams: source, audio, 160p30 (worst), 360p30, 480p30, 720p30, 720p60 (best)
[cli][info] Opening stream: 720p60 (hls)
[cli][info] Starting player: /Applications/VLC.app/Contents/MacOS/VLC
[cli.output][debug] Calling: /Applications/VLC.app/Contents/MacOS/VLC --input-title-format https://www.twitch.tv/videos/1510768607 https://d1ymi26ma8va5x.cloudfront.net/22d09dbe54b85b4fa0e7_sips__45632383932_1655889465/720p60/index-dvr.m3u8

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