Repository: youtube-dl
Issue: www.captiongenerator.com
Labels: site-support-request

<!--

######################################################################
  WARNING!
  IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE
######################################################################

-->


## Checklist

<!--
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.02.22. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
- Make sure that site you are requesting is not dedicated to copyright infringement, see https://yt-dl.org/copyright-infringement. youtube-dl does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
- Search the bugtracker for similar site support requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
- Finally, put x into all relevant boxes (like this [x])
-->

- [x] I'm reporting a new site support request
- [x] I've verified that I'm running youtube-dl version **2021.02.22**
- [x] I've checked that all provided URLs are alive and playable in a browser
- [x] I've checked that none of provided URLs violate any copyrights
- [x] I've searched the bugtracker for similar site support requests including closed ones


## Example URLs

<!--
Provide all kinds of example URLs support for which should be included. Replace following example URLs by yours.
-->

- Single video: https://www.captiongenerator.com/128/Team-building
- Single video: https://www.captiongenerator.com/2153287/Man-finds-phone
- Single video: https://www.captiongenerator.com/2140517/Haavisto-Pietarissa
- Single video: https://www.captiongenerator.com/2153147/81-Pay

## Description

<!--
Provide any additional information.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
-->

This is a website aimed at changing original captions, usually to make parodies, thus the many Downfall templates.
Some time ago if I remember well, it also allowed you to set the desired video from any Youtube URL, apparently it is now restricted to a certain set only.

The aim would be to download the video with a subtitles channel at best, else hardcoded captions.

Currently, calling `youtube-dl` results in a 403. My first move after that error is usually to delete cache, adding cookies does not seem to change anything neither, althought no authentification is required, nor captcha as far as I know.

URLs seem to match regexp 'https://www\.captiongenerator\.com/[0-9]+/[a-zA-Z0-9+-]'
Actual videos are stored behind Amazon CDN, the video for the very first link above is https://d34ov3vwfhhb30.cloudfront.net/Hitler+Reacts+-+No+Subtitles.mp4

Trying to access this second address directly from a browser also triggers a 403. According to the source video name. It seems (as expected) that the website just play the video from the CDN and adds captions on top of it. So from the original URL it could be possible to fetch captions as well as the CDN video, and assemble them together.

```sh
youtube-dl --rm-cache-dir && youtube-dl "https://www.captiongenerator.com/128/Team-building" -v -C --cookies cookies.txt
```
```
Removing cache dir /home/user/.cache/youtube-dl ..
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.captiongenerator.com/128/Team-building', '-v', '-C', '--cookies', 'b']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.02.22
[debug] Python version 3.9.1 (CPython) - Linux-4.14.221-1-MANJARO-x86_64-with-glibc2.33
[debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1, rtmpdump 2.4
[debug] Proxy map: {}
[debug] Public IP address:
[generic] Team-building: Requesting header
WARNING: Falling back on generic information extractor.
[generic] Team-building: Downloading webpage
[generic] Team-building: Extracting information
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 806, in wrapper
    return func(self, *args, **kwargs)
  File "/home/user/.local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 827, in __extract_info
    ie_result = ie.extract(url)
  File "/home/user/.local/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 532, in extract
    ie_result = self._real_extract(url)
  File "/home/user/.local/lib/python3.9/site-packages/youtube_dl/extractor/generic.py", line 3355, in _real_extract
    self._sort_formats(entry['formats'])
  File "/home/user/.local/lib/python3.9/site-packages/youtube_dl/extractor/common.py", line 1367, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
```