Repository: yt-dlp/yt-dlp

Issue:
[Twitcasting]download member-only video 404 error
### Checklist

- [X] I'm reporting a site feature request
- [X] I've verified that I'm running yt-dlp version **2022.04.08** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are alive and playable in a browser
- [X] I've searched 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)
- [x] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

China

### Example URLs

https://twitcasting.tv/taro0666/movie/721230917

### Description

This is a member ship only video, I used --cookies, and the error is HTTP 404
Videos that are not membership-only can be downloaded normally

### Verbose log

```shell
D:\yt-dlp>yt-dlp -vU --proxy socks5://127.0.0.1:10808/ --cookies-from-browser firefox https://twitcasting.tv/taro0666/movie/721230917
[debug] Command-line config: ['-vU', '--proxy', 'socks5://127.0.0.1:10808/', '--cookies-from-browser', 'firefox', 'https://twitcasting.tv/taro0666/movie/721230917']
[Cookies] Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles\j5pthx2i.default-release\cookies.sqlite"
[Cookies] Extracted 139 cookies from firefox
[debug] Encodings: locale cp936, fs utf-8, out utf-8, err utf-8, pref cp936
[debug] yt-dlp version 2022.04.08 [7884ade] (win_exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19044-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: avconv -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: avprobe -bsfs
[debug] exe versions: none
[debug] Optional libraries: brotli, certifi, Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {'http': 'socks5://127.0.0.1:10808/', 'https': 'socks5://127.0.0.1:10808/'}
Latest version: 2022.04.08, Current version: 2022.04.08
yt-dlp is up to date (2022.04.08)
[debug] [TwitCasting] Extracting URL: https://twitcasting.tv/taro0666/movie/721230917
[TwitCasting] 721230917: Downloading webpage
[TwitCasting] 721230917: Downloading live info
[TwitCasting] 721230917: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: best/bestvideo+bestaudio
[info] 721230917: Downloading 1 format(s): 796
[debug] Invoking downloader on "https://dl193250.twitcasting.tv/tc.vod.v2/v1/streams/721230917.0.2.1.1645019887/hls/v0/12da9373b07f061c136b4999cb841713/media.m3u8"
[hlsnative] Downloading m3u8 manifest
ERROR: unable to download video data: HTTP Error 404: Not Found
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 3138, in process_info
  File "yt_dlp\YoutubeDL.py", line 2846, in dl
  File "yt_dlp\downloader\common.py", line 457, in download
  File "yt_dlp\downloader\hls.py", line 68, in real_download
  File "yt_dlp\YoutubeDL.py", line 3601, 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 404: Not Found
```



Discussion:
@Lesmiscore 
@zimlouk
Please send me your account credentials by any of the following:

- By sending an email to `nao20010128 at gmail dot com` (replace words appropriately)
- By Discord, join yt-dlp server and ping @Lesmiscore . I'll open DM for you.
- If you can't use any of them, let me know.

Note that I can only understand English and Japanese. Thanks
> @zimlouk Please send me your account credentials by any of the following:
> 
> * By sending an email to `nao20010128 at gmail dot com` (replace words appropriately)
> * By Discord, join yt-dlp server and ping @Lesmiscore . I'll open DM for you.
> * If you can't use any of them, let me know.
> 
> Note that I can only understand English and Japanese. Thanks

Email has been sent, thanks a lot

Resolving patch:
diff --git a/yt_dlp/extractor/twitcasting.py b/yt_dlp/extractor/twitcasting.py
--- a/yt_dlp/extractor/twitcasting.py
+++ b/yt_dlp/extractor/twitcasting.py
@@ -187,6 +187,7 @@ def find_dmu(x):
             infodict = {
                 # No problem here since there's only one manifest
                 'formats': formats,
+                'http_headers': self._M3U8_HEADERS,
             }
         else:
             infodict = {


Test patch: