Repository: yt-dlp
Issue: GDCVault: Reports a login is required for a publicly accessible video.
Labels: site-bug,patch-available

### 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 that yt-dlp is broken on a **supported** site
- [ ] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [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)
- [ ] 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

_No response_

### Provide a description that is worded well enough to be understood

The following video: https://gdcvault.com/play/1020791/ "Approaching Zero Driver Overhead in OpenGL (Presented by NVIDIA)" can be played without an account, but when trying to download it, GDCVault requires login information.

This really shouldn't happen, especially since you can find the base m3u8 stream by looking at network requests and download the talk directly!

Also throws a list index out of range error which might be related?

PS: i'm not sure what updating yt-dlp to nightly could possibly help with here since GDCVault code hasn't been touched in 6 months...
tried to get it to work anyways but alas i can't figure out how to nixos well enough to get a custom derivation working so...

### 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
[hjs@nixfv:~]$ yt-dlp -vU https://gdcvault.com/play/1020791/
[debug] Command-line config: ['-vU', 'https://gdcvault.com/play/1020791/']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.12.30 from yt-dlp/yt-dlp [f10589e34] (pip)
[debug] Python 3.11.6 (CPython x86_64 64bit) - Linux-6.7.1-x86_64-with-glibc2.38 (OpenSSL 3.0.12 24 Oct 2023, glibc 2.38)
[debug] exe versions: ffmpeg 6.0 (setts), ffprobe 6.0, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, secretstorage-3.3.3, sqlite3-3.43.2, websockets-11.0.3
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Loaded 1798 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2023.12.30 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2023.12.30 from yt-dlp/yt-dlp)
[GDCVault] Extracting URL: https://gdcvault.com/play/1020791/
[GDCVault] 1020791: Downloading webpage
WARNING: [GDCVault] It looks like http://www.gdcvault.com/play/1020791 requires a login. Try specifying a username and password and try again.
WARNING: [GDCVault] Could not login.
ERROR: list index out of range
Traceback (most recent call last):
  File "/nix/store/2ln1n2lqjldy7v5ri79krq0xlplxrmhh-python3.11-yt-dlp-2023.12.30/lib/python3.11/site-packages/yt_dlp/YoutubeDL.py", line 1587, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/2ln1n2lqjldy7v5ri79krq0xlplxrmhh-python3.11-yt-dlp-2023.12.30/lib/python3.11/site-packages/yt_dlp/YoutubeDL.py", line 1722, in __extract_info
    ie_result = ie.extract(url)
                ^^^^^^^^^^^^^^^
  File "/nix/store/2ln1n2lqjldy7v5ri79krq0xlplxrmhh-python3.11-yt-dlp-2023.12.30/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 718, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/2ln1n2lqjldy7v5ri79krq0xlplxrmhh-python3.11-yt-dlp-2023.12.30/lib/python3.11/site-packages/yt_dlp/extractor/gdcvault.py", line 194, in _real_extract
    info = self._parse_html5_media_entries(url, start_page, video_id)[0]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
```