Repository: yt-dlp/yt-dlp

Issue:
Error downloading from OpenRec
### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm reporting a bug unrelated to a specific site
- [X] I've verified that I'm running yt-dlp version **2023.03.04** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)

### Provide a description that is worded well enough to be understood

I get an error downloading a video from Openrec (membership video). I am a member to the site, the previous streams (4 so far) I have downloaded without issues. If I retry those now, I get the same error as with this new video. Thanks for your help! 

Kind regards, 
Marloes

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/live/wez9mp0158l']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3212 cookies from chrome
[debug] cookie version breakdown: {'v10': 3221, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec] Extracting URL: https://www.openrec.tv/live/wez9mp0158l
[openrec] wez9mp0158l: Downloading webpage
[openrec] wez9mp0158l: Downloading JSON metadata
[openrec] wez9mp0158l: Downloading m3u8 information
ERROR: [openrec] wez9mp0158l: Failed to download m3u8 information: HTTP Error 401: Unauthorized (caused by <HTTPError 401: 'Unauthorized'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\openrec.py", line 81, in _real_extract
  File "yt_dlp\extractor\openrec.py", line 50, in _extract_movie
  File "yt_dlp\extractor\openrec.py", line 23, in _expand_media
  File "yt_dlp\extractor\common.py", line 1919, in _extract_m3u8_formats
  File "yt_dlp\extractor\common.py", line 1941, in _extract_m3u8_formats_and_subtitles
  File "yt_dlp\extractor\common.py", line 882, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 839, in _request_webpage

  File "yt_dlp\extractor\common.py", line 821, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3742, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 401: Unauthorized
```

Error downloading from OpenRec
### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm reporting a bug unrelated to a specific site
- [X] I've verified that I'm running yt-dlp version **2023.03.04** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)

### Provide a description that is worded well enough to be understood

I get an error downloading a video from Openrec (membership video). I am a member to the site, the previous streams (4 so far) I have downloaded without issues. If I retry those now, I get the same error as with this new video. Thanks for your help! 

Kind regards, 
Marloes

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/live/wez9mp0158l']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3212 cookies from chrome
[debug] cookie version breakdown: {'v10': 3221, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec] Extracting URL: https://www.openrec.tv/live/wez9mp0158l
[openrec] wez9mp0158l: Downloading webpage
[openrec] wez9mp0158l: Downloading JSON metadata
[openrec] wez9mp0158l: Downloading m3u8 information
ERROR: [openrec] wez9mp0158l: Failed to download m3u8 information: HTTP Error 401: Unauthorized (caused by <HTTPError 401: 'Unauthorized'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\openrec.py", line 81, in _real_extract
  File "yt_dlp\extractor\openrec.py", line 50, in _extract_movie
  File "yt_dlp\extractor\openrec.py", line 23, in _expand_media
  File "yt_dlp\extractor\common.py", line 1919, in _extract_m3u8_formats
  File "yt_dlp\extractor\common.py", line 1941, in _extract_m3u8_formats_and_subtitles
  File "yt_dlp\extractor\common.py", line 882, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 839, in _request_webpage

  File "yt_dlp\extractor\common.py", line 821, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3742, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 401: Unauthorized
```



Discussion:
Have you tried opening the site in your browser to refresh your login session?
Hi,

Yes, I can watch the video just fine in my browser. I even rebooted :)
This channel now has 5 video's (1 per month). Before I knew yt-dlp could
also download from OpenRec, I used another tool on Github, openrec. I don't
think this one is still supported but I tried using that tool just now, and
from them I get a 'no public playlist found' error. Maybe OpenRec has
changed something?
[image: image.png]


On Sat, 29 Apr 2023 at 15:30, bashonly ***@***.***> wrote:

> Have you tried opening the site in your browser to refresh your login
> session?
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/yt-dlp/yt-dlp/issues/6946#issuecomment-1528789901>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKWUJ3O7JOVNWEAKWHAJGZTXDUJYFANCNFSM6AAAAAAXQHFEZ4>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>

Have you tried exporting cookies again after refreshing cookies on browser?

P.S. Please try to use GitHub website for replies. We can't see your attachments
I'm sorry, I will reply using the website! I have tried both the --cookies-from-browser and the --cookies command with a freshly generated cookies file using the get cookies.txt locally extension. 
The screenshot I wanted to attach in the previous reply:
![image](https://user-images.githubusercontent.com/44909805/235306226-0be57484-ddbb-4d1e-ba52-8545c7d41744.png)

Well, do what it says and change your format selector! If there is still issue, post the complete verbose log as text.
Hi, the command won't work at all, but it's another tool, it was just to inform that other tools than yt-dlp seem to have troubles downloading from OpenRec too. The complete verbose log for the yt-dlp download command is in the first post.
Openrec has 2 'types' of links: 'live' (https://www.openrec.tv/live/wez9mp0158l) and ' movie' (https://www.openrec.tv/movie/n9ze7nqqxr4). Both links from the same channel. I can download the Movie link, just not the Live links (I can watch both links in my browser just fine). Last month is was the other way around :) They fixed the Movie link, but now the Live link is broken? 
> The complete verbose log for the yt-dlp download command is in the first post.

Pls provide new log after cookies were refreshed.
Hi,

First I tried the 'live' video, the type that raises the error. After that I tried the 'movie' video, from the same channel. That works just fine:

[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/live/wez9mp0158l']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3270 cookies from chrome
[debug] cookie version breakdown: {'v10': 3280, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec] Extracting URL: https://www.openrec.tv/live/wez9mp0158l
[openrec] wez9mp0158l: Downloading webpage
[openrec] wez9mp0158l: Downloading JSON metadata
[openrec] wez9mp0158l: Downloading m3u8 information
ERROR: [openrec] wez9mp0158l: Failed to download m3u8 information: HTTP Error 401: Unauthorized (caused by <HTTPError 401: 'Unauthorized'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\openrec.py", line 81, in _real_extract
  File "yt_dlp\extractor\openrec.py", line 50, in _extract_movie
  File "yt_dlp\extractor\openrec.py", line 23, in _expand_media
  File "yt_dlp\extractor\common.py", line 1919, in _extract_m3u8_formats
  File "yt_dlp\extractor\common.py", line 1941, in _extract_m3u8_formats_and_subtitles
  File "yt_dlp\extractor\common.py", line 882, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 839, in _request_webpage

  File "yt_dlp\extractor\common.py", line 821, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3742, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 401: Unauthorized


C:\Users\marlo>yt-dlp --cookies-from-browser chrome -vU https://www.openrec.tv/movie/n9ze7nqqxr4
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/movie/n9ze7nqqxr4']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3270 cookies from chrome
[debug] cookie version breakdown: {'v10': 3280, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec:movie] Extracting URL: https://www.openrec.tv/movie/n9ze7nqqxr4
[openrec:movie] n9ze7nqqxr4: Downloading webpage
[openrec:movie] n9ze7nqqxr4: Downloading JSON metadata
[openrec:movie] n9ze7nqqxr4: Downloading m3u8 information
[openrec:movie] n9ze7nqqxr4: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] n9ze7nqqxr4: Downloading 1 format(s): url_audio-1660
[debug] Invoking hlsnative downloader on "https://dco4urblvsasc.cloudfront.net/28682/2868173_vBngtZpZ/game/96kbps.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 133
[download] Destination: 廣瀬大介のゲーム部屋#03[未公開特別編] [n9ze7nqqxr4].mp4
[debug] File locking is not supported. Proceeding without locking
[download]   8.3% of ~ 224.21MiB at    3.40MiB/s ETA 00:57 (frag 11/133)
Hello,

I'm sorry but I'm not familiar with the way things work on Github, so if I'm being rude or impatient, I apologize! But how do I proceed from here? After posting an issue, you just wait untill someone picks it up (which is of course fine, I understand all of you are just volunteering!), or do I have to make a request somewhere? I've tried several things and my conclusion is that openrec.tv/MOVIE/xxx now works (which didn't in the past) and openrec.tv/LIVE/xxx does not work anymore (it used to). On this channel I've downloaded the LIVE links in the past, got the new openrec.py file a while ago (when I tried to download a MOVIE link for the first time on this channel) and since then I can download the MOVIE link, but now the LIVE links don't work anymore (not the new LIVE links, nor the older LIVE links I've tried to download again).
Please help? Thanks!

@marlouz Are you willing to share your account details if a dev wants to work on this?

This is not to say that I am able to work on it. But if we can label this issue as "can share account" it would be more likely to get picked up by somebody.
@bashonly Hmm, that is a good question, I hadn't thought about that. I'm going to have to think about that one. Thanks for responding!
Simply adding `--referer 'https://www.openrec.tv'` to the command makes it work for me.
Have you tried opening the site in your browser to refresh your login session?
Hi,

Yes, I can watch the video just fine in my browser. I even rebooted :)
This channel now has 5 video's (1 per month). Before I knew yt-dlp could
also download from OpenRec, I used another tool on Github, openrec. I don't
think this one is still supported but I tried using that tool just now, and
from them I get a 'no public playlist found' error. Maybe OpenRec has
changed something?
[image: image.png]


On Sat, 29 Apr 2023 at 15:30, bashonly ***@***.***> wrote:

> Have you tried opening the site in your browser to refresh your login
> session?
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/yt-dlp/yt-dlp/issues/6946#issuecomment-1528789901>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKWUJ3O7JOVNWEAKWHAJGZTXDUJYFANCNFSM6AAAAAAXQHFEZ4>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>

Have you tried exporting cookies again after refreshing cookies on browser?

P.S. Please try to use GitHub website for replies. We can't see your attachments
I'm sorry, I will reply using the website! I have tried both the --cookies-from-browser and the --cookies command with a freshly generated cookies file using the get cookies.txt locally extension. 
The screenshot I wanted to attach in the previous reply:
![image](https://user-images.githubusercontent.com/44909805/235306226-0be57484-ddbb-4d1e-ba52-8545c7d41744.png)

Well, do what it says and change your format selector! If there is still issue, post the complete verbose log as text.
Hi, the command won't work at all, but it's another tool, it was just to inform that other tools than yt-dlp seem to have troubles downloading from OpenRec too. The complete verbose log for the yt-dlp download command is in the first post.
Openrec has 2 'types' of links: 'live' (https://www.openrec.tv/live/wez9mp0158l) and ' movie' (https://www.openrec.tv/movie/n9ze7nqqxr4). Both links from the same channel. I can download the Movie link, just not the Live links (I can watch both links in my browser just fine). Last month is was the other way around :) They fixed the Movie link, but now the Live link is broken? 
> The complete verbose log for the yt-dlp download command is in the first post.

Pls provide new log after cookies were refreshed.
Hi,

First I tried the 'live' video, the type that raises the error. After that I tried the 'movie' video, from the same channel. That works just fine:

[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/live/wez9mp0158l']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3270 cookies from chrome
[debug] cookie version breakdown: {'v10': 3280, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec] Extracting URL: https://www.openrec.tv/live/wez9mp0158l
[openrec] wez9mp0158l: Downloading webpage
[openrec] wez9mp0158l: Downloading JSON metadata
[openrec] wez9mp0158l: Downloading m3u8 information
ERROR: [openrec] wez9mp0158l: Failed to download m3u8 information: HTTP Error 401: Unauthorized (caused by <HTTPError 401: 'Unauthorized'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\openrec.py", line 81, in _real_extract
  File "yt_dlp\extractor\openrec.py", line 50, in _extract_movie
  File "yt_dlp\extractor\openrec.py", line 23, in _expand_media
  File "yt_dlp\extractor\common.py", line 1919, in _extract_m3u8_formats
  File "yt_dlp\extractor\common.py", line 1941, in _extract_m3u8_formats_and_subtitles
  File "yt_dlp\extractor\common.py", line 882, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 839, in _request_webpage

  File "yt_dlp\extractor\common.py", line 821, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3742, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 401: Unauthorized


C:\Users\marlo>yt-dlp --cookies-from-browser chrome -vU https://www.openrec.tv/movie/n9ze7nqqxr4
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-vU', 'https://www.openrec.tv/movie/n9ze7nqqxr4']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2023-02-16-git-aeceefa622-full_build-www.gyan.dev (setts), ffprobe 2023-02-16-git-aeceefa622-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\marlo\AppData\Local\Google\Chrome\User Data\Local State"
[Cookies] Extracted 3270 cookies from chrome
[debug] cookie version breakdown: {'v10': 3280, 'other': 0, 'unencrypted': 0}
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date (stable@2023.03.04)
[openrec:movie] Extracting URL: https://www.openrec.tv/movie/n9ze7nqqxr4
[openrec:movie] n9ze7nqqxr4: Downloading webpage
[openrec:movie] n9ze7nqqxr4: Downloading JSON metadata
[openrec:movie] n9ze7nqqxr4: Downloading m3u8 information
[openrec:movie] n9ze7nqqxr4: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] n9ze7nqqxr4: Downloading 1 format(s): url_audio-1660
[debug] Invoking hlsnative downloader on "https://dco4urblvsasc.cloudfront.net/28682/2868173_vBngtZpZ/game/96kbps.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 133
[download] Destination: 廣瀬大介のゲーム部屋#03[未公開特別編] [n9ze7nqqxr4].mp4
[debug] File locking is not supported. Proceeding without locking
[download]   8.3% of ~ 224.21MiB at    3.40MiB/s ETA 00:57 (frag 11/133)
Hello,

I'm sorry but I'm not familiar with the way things work on Github, so if I'm being rude or impatient, I apologize! But how do I proceed from here? After posting an issue, you just wait untill someone picks it up (which is of course fine, I understand all of you are just volunteering!), or do I have to make a request somewhere? I've tried several things and my conclusion is that openrec.tv/MOVIE/xxx now works (which didn't in the past) and openrec.tv/LIVE/xxx does not work anymore (it used to). On this channel I've downloaded the LIVE links in the past, got the new openrec.py file a while ago (when I tried to download a MOVIE link for the first time on this channel) and since then I can download the MOVIE link, but now the LIVE links don't work anymore (not the new LIVE links, nor the older LIVE links I've tried to download again).
Please help? Thanks!

@marlouz Are you willing to share your account details if a dev wants to work on this?

This is not to say that I am able to work on it. But if we can label this issue as "can share account" it would be more likely to get picked up by somebody.
@bashonly Hmm, that is a good question, I hadn't thought about that. I'm going to have to think about that one. Thanks for responding!
Simply adding `--referer 'https://www.openrec.tv'` to the command makes it work for me.

Resolving patch:
diff --git a/yt_dlp/extractor/openrec.py b/yt_dlp/extractor/openrec.py
--- a/yt_dlp/extractor/openrec.py
+++ b/yt_dlp/extractor/openrec.py
@@ -12,6 +12,8 @@
 
 
 class OpenRecBaseIE(InfoExtractor):
+    _M3U8_HEADERS = {'Referer': 'https://www.openrec.tv/'}
+
     def _extract_pagestore(self, webpage, video_id):
         return self._parse_json(
             self._search_regex(r'(?m)window\.pageStore\s*=\s*(\{.+?\});$', webpage, 'window.pageStore'), video_id)
@@ -21,7 +23,7 @@ def _expand_media(self, video_id, media):
             if not m3u8_url:
                 continue
             yield from self._extract_m3u8_formats(
-                m3u8_url, video_id, ext='mp4', m3u8_id=name)
+                m3u8_url, video_id, ext='mp4', m3u8_id=name, headers=self._M3U8_HEADERS)
 
     def _extract_movie(self, webpage, video_id, name, is_live):
         window_stores = self._extract_pagestore(webpage, video_id)
@@ -60,6 +62,7 @@ def _extract_movie(self, webpage, video_id, name, is_live):
             'uploader_id': get_first(movie_stores, ('channel', 'user', 'id')),
             'timestamp': int_or_none(get_first(movie_stores, ['publishedAt', 'time']), scale=1000) or unified_timestamp(get_first(movie_stores, 'publishedAt')),
             'is_live': is_live,
+            'http_headers': self._M3U8_HEADERS,
         }
 
 
@@ -110,7 +113,7 @@ def _real_extract(self, url):
             raise ExtractorError('Cannot extract title')
 
         formats = self._extract_m3u8_formats(
-            capture_data.get('source'), video_id, ext='mp4')
+            capture_data.get('source'), video_id, ext='mp4', headers=self._M3U8_HEADERS)
 
         return {
             'id': video_id,
@@ -121,6 +124,7 @@ def _real_extract(self, url):
             'uploader': traverse_obj(movie_store, ('channel', 'name'), expected_type=compat_str),
             'uploader_id': traverse_obj(movie_store, ('channel', 'id'), expected_type=compat_str),
             'upload_date': unified_strdate(capture_data.get('createdAt')),
+            'http_headers': self._M3U8_HEADERS,
         }
 
 


Test patch: