question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

plugins.twitch: Client error 403 - VOD manifest is restricted (seen on channels which require sub for VOD access)

See original GitHub issue

Plugin Issue

  • This is a plugin issue and I have read the contribution guidelines.

Description

After logging in and attempting to fetch the supported streams, Streamlink gets sent to a usher.ttvnw.net URL which results in a client error 403: Forbidden. Going to the URL in a web browser results in an error saying “vod_manifest_restricted” and error message of “Manifest is resticted” (note the typo).

This appears to happen for channels that require subscription to the channel to view VODs, even though I am logged in as a user which is subscribed to that channel.

Reproduction steps / Explicit stream URLs to test

All VODs from the criticalrole account give me the same issue. Here are some examples:

  1. twitch.tv/videos/511600192
  2. twitch.tv/videos/510685697
  3. twitch.tv/videos/505373460

Note that this last video is particularly interesting, because Streamlink handled it just fine a few weeks ago on version 1.2.0. So something changed between the interaction of Twitch’s APIs and Streamlink 1.3.0.

These videos, from other channels, load just fine (although am not subbed to other channels that require subs for VOD, so cannot test that)

  1. twitch.tv/videos/512812203
  2. twitch.tv/videos/512656691

Log output

$ streamlink twitch.tv/videos/511600192 --loglevel debug
[cli][debug] OS:         macOS 10.15.1
[cli][debug] Python:     3.7.5
[cli][debug] Streamlink: 1.3.0
[cli][debug] Requests(2.22.0), Socks(1.7.1), Websocket(0.56.0)
[cli][info] Found matching plugin twitch for URL twitch.tv/videos/511600192
[cli][debug] Plugin specific arguments:
[cli][debug]  --twitch-oauth-token=******** (oauth_token)
[plugin.twitch][debug] Getting video HLS streams for criticalrole
[plugin.twitch][info] Attempting to authenticate using OAuth token
[plugin.twitch][info] Successfully logged in as gingeneer
[utils.l10n][debug] Language code: en_US
error: Unable to open URL: https://usher.ttvnw.net/vod/511600192?player=twitchweb&p=226849&type=any&allow_source=true&allow_audio_only=true&allow_spectre=false&nauthsig={{redacted}}&nauth=%7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%22160p30%22%2C%22360p30%22%2C%22480p30%22%2C%22720p30%22%2C%22audio_only%22%2C%22chunked%22%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1574718901%2C%22https_required%22%3Afalse%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A511600192%7D (403 Client Error: Forbidden for url: https://usher.ttvnw.net/vod/511600192?player=twitchweb&p=226849&type=any&allow_source=true&allow_audio_only=true&allow_spectre=false&nauthsig={{redacted}}&nauth=%7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%22160p30%22%2C%22360p30%22%2C%22480p30%22%2C%22720p30%22%2C%22audio_only%22%2C%22chunked%22%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1574718901%2C%22https_required%22%3Afalse%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A511600192%7D)

Additional comments, screenshots, etc.

Output of URL decoded for debugging purposes:

https://usher.ttvnw.net/vod/511600192?player=twitchweb&p=369483&type=any&allow_source=true&allow_audio_only=true&allow_spectre=false&nauthsig=89470504cb8e94{{redacted}}56b8ecbd9&nauth={"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":["160p30","360p30","480p30","720p30","audio_only","chunked"]},"device_id":null,"expires":1574719531,"https_required":false,"privileged":false,"user_id":null,"version":2,"vod_id":511600192}

Image displaying error from the URL: Screen Shot 2019-11-24 at 6 00 31 PM

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
torma616commented, Dec 4, 2019

@gravyboat Fair enough, though the docs should be updated to reflect this: https://streamlink.github.io/cli.html#authenticating-with-twitch

0reactions
bastimeyercommented, Dec 15, 2019

both the version 1.3.0 and 1.2.0 is not ok

If the signature is invalid, then you have not set the correct auth data. However, it’s unsupported now and 1.2.0 is broken anyway, so you’re out of luck here.

Read more comments on GitHub >

github_iconTop Results From Across the Web

[Solved] Keep getting a 403 when editing channel info - API
For some reason when I started using the v3 API I was able to edit my channel info but now it just throws...
Read more >
Copyrighted Audio Detection & Warnings - Twitch Help
When copyrighted audio is detected in these videos, that portion of your VOD is muted and associated clips are deleted. You can take...
Read more >
Video On Demand - Twitch Help
A VOD (Video on Demand) is an archive of content previously streamed live on Twitch. Utilizing VODs can help grow your channel and...
Read more >
How to Appeal Muted Audio - Twitch Help
Twitch services scan VODs as a proactive way to help broadcasters avoid having videos containing unauthorized audio. If copyrighted audio is detected in...
Read more >
Embedding Video and Clips - Twitch Developers
You can embed live streams, video on demand (VOD), and clips in a website. Embedded video windows must be at least 400x300 pixels....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found