Repository: youtube-dl
Issue: Add preachub.com support
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.06.06. 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.06.06**
- [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.preachub.com/watch.php?vid=7d6b5336d
- Playlist: https://www.preachub.com/playlist/C31C5E1232B6


## Description

<!--
Provide any additional information.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
-->

youtube-dl uses the generic extractor on each video URL but it does not work on playlists : 

```python
$ ytdlnoconfig -v -F https://www.preachub.com/watch.php?vid=7d6b5336d
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '-F', 'https://www.preachub.com/watch.php?vid=7d6b5336d']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-77-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Proxy map: {}
[generic] watch: Requesting header
WARNING: Falling back on generic information extractor.
[generic] watch: Downloading webpage
[generic] watch: Extracting information
[info] Available formats for watch:
format code  extension  resolution note
0            mp4        unknown    
$ ytdlnoconfig -v -F https://www.preachub.com/playlist/C31C5E1232B6
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '-F', 'https://www.preachub.com/playlist/C31C5E1232B6']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-77-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Proxy map: {}
[generic] C31C5E1232B6: Requesting header
WARNING: Falling back on generic information extractor.
[generic] C31C5E1232B6: Downloading webpage
[generic] C31C5E1232B6: Extracting information
ERROR: Unsupported URL: https://www.preachub.com/playlist/C31C5E1232B6
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/lib/python3.8/dist-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/lib/python3.8/dist-packages/youtube_dl/extractor/generic.py", line 3520, in _real_extract
    raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://www.preachub.com/playlist/C31C5E1232B6

```

If I append `/all` to the playlist URL, it only extracts the first video : 
```python
$ ytdlnoconfig -v --get-title --get-id --get-filename -o '%(format_id)s' https://www.preachub.com/playlist/C31C5E1232B6/all 
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '--get-title', '--get-id', '--get-filename', '-o', '%(format_id)s', 'https://www.preachub.com/playlist/C31C5E1232B6/all']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-77-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Proxy map: {}
WARNING: Falling back on generic information extractor.
[debug] Default format spec: bestvideo+bestaudio/best
Joseph Prince - Believe In A God Who Freely Gives - 21 Dec 14
all
0
```