plugins.youtube: fix live streams#6777
Conversation
- Always retrieve HLS multivariant playlist URLs from v1 API - Set `clientName` to `ANDROID` and `clientVersion` to `19.45.36`, which results in HLS master playlists with valid segment URLs - Do some minor cleanup around content status checking - Keep parsing initial player response for category data - TODO: clean up validation schemas and how they're applied - TODO: remove parsing of non-HLS stuff, as we don't support this
|
Working fine with me - tested all live stream url types |
|
From proxy node running in the USA: From a proxy node located in the Netherlands: The required login error could be unrelated as it's a shared proxy. |
So your error from the Netherlands is not an issue with the plugin - Its because you are using a vpn and youtube detects that as bot activity so its a VPN issue not a plugin one really |
|
Confirmed fixed on my end. Installing the build including this PR resolves the 403 Forbidden HLS segment errors. |
|
I have a question, but when it's a premium account, for example, a paid YouTube Live stream, how would I do it in those cases? I've tried using [cli][info] Found matching plugin youtube for URL https://www.youtube.com/watch?v=lldsi8ItNaI |
clientNametoANDROIDandclientVersionto19.45.36, which results in HLS master playlists with valid segment URLsResolves #6775
As noted, there's some more cleanup to do, but this can be done later in a different PR.
Not sure how viable it is to hardcode the
clientVersionwith a specificclientName. It's possible that YouTube simply hasn't updated the restrictions which were introduced for theirWEBplayer yet for theANDROIDAPI requests. We'll see. For now, this seems to be working.However, before I'm going to merge this, I'd appreciate if I could see some more test results from other people, just to be sure that this isn't something region-based and to be sure that there's no accessibility expiration as it was with the
IOSAPI request.https://github.com/streamlink/streamlink/blob/master/CONTRIBUTING.md#pull-request-feedback