Repository: youtube-dl
Issue: Add site support for banned.video
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 2019.09.28. 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 **2019.09.28**
- [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://banned.video/watch?id=5da4afaf9f040f0014733e18
- Single video: https://api.infowarsmedia.com/embed/5da4afaf9f040f0014733e18
- Playlist: https://banned.video/watch?id=5da558f10f4f1d001476cced&playlist=5d8a2abcf0ff0d001649b182
- Livestream: https://banned.video/channel/5b9301172abf762e22bc22fd

## Description

<!--
Provide any additional information.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
-->

Only video works after many fallbacks, no audio, takes long to init. Please also support automatic title to filename.

The single videos all correspond to the same video. Livestream links correspond to another video. "Channel Livestreams" don't work at all, unsupported URL.

**Additional domains:** 
Player: `https://www.infowarsmedia.com/js/player.js`
Player2: `https://cdn.irsdn.net/videojs-hlsjs-plugin/1/stable/videojs-hlsjs-plugin.js`
Referr: `https://api.infowarsmedia.com/embed/5da4afaf9f040f0014733e18`
HLS: `https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/manifest/stream_3.m3u8`
There's also an "incremental" url but doesn't work by it self.

(OperaBrowser) Right Click -> Copy Video Address seems to throw out an ever changing `blob API` link using same domain as the embed/referr domain, but the guid is always different when copying and also always invalid, it won't connect. doesn't seem like it's important, but I mentioned it anyway.
`blob:https://api.infowarsmedia.com/14d3fa9f-dc4b-4f81-a29f-d25fb7f3ab39`
and sometimes another version: `blob:https://vod-api.infowars.com/40a4552c-20e0-44f3-bd2e-506ac1b1c17c`

------
Livestreams don't seem to have a special video link, they're inserted into the banned.video channel page. Maybe there is one, but the API and Blob ones I tried again return 404 or have errors (probably some kind of security system maybe, or metadata only accessible by scripts)

Channel Livestream M3U8: `https://infostream.secure.footprint.net/hls-live/infostream3-infostream3/_definst_/live.m3u8`

------
StaticDL: `https://api.infowarsmedia.com/api/video/5da4afaf9f040f0014733e18/download`
StaticDL Direct: `https://assets.infowarsmedia.com/videos/2892eae3-88b9-4f26-a56a-ac8252cd3238.mov` (for some reason another GUID here but corresponds to 5da4a..)

Static MOV download is the highest quality and separate of HLS VOD and Livestream, this works ofcourse out of the box as it's meant for downloading, but it's not the most optimal choice when it comes to storage space so.

------
**Verbose Output**
```
C:\Program Files Manual\YoutubeDL>youtube-dl -F https://banned.video/watch?id=5da4afaf9f040f0014733e18 -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', 'https://banned.video/watch?id=5da4afaf9f040f0014733e18', '-v']
[debug] Encodings: locale cp1250, fs mbcs, out cp852, pref cp1250
[debug] youtube-dl version 2019.09.28
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.14393
[debug] exe versions: ffmpeg N-94664-g0821bc4eee, ffprobe N-94664-g0821bc4eee
[debug] Proxy map: {}
[generic] watch?id=5da4afaf9f040f0014733e18: Requesting header
WARNING: Falling back on generic information extractor.
[generic] watch?id=5da4afaf9f040f0014733e18: Downloading webpage
[generic] watch?id=5da4afaf9f040f0014733e18: Extracting information
[generic] 5da4afaf9f040f0014733e18: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 5da4afaf9f040f0014733e18: Downloading webpage
[generic] 5da4afaf9f040f0014733e18: Extracting information
[generic] 5da4afaf9f040f0014733e18: Downloading m3u8 information
[download] Downloading playlist: video
[generic] playlist video: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[info] Available formats for 5da4afaf9f040f0014733e18:
format code              extension  resolution note
hls-group_audio-audio_0  mp4        audio only
hls-580                  mp4        426x240     580k , avc1.42c015, video only
hls-1020                 mp4        640x360    1020k , avc1.4d401e, video only
hls-2120                 mp4        854x480    2120k , avc1.4d401f, video only
hls-4100                 mp4        1280x720   4100k , avc1.4d401f, video only
hls-5860                 mp4        1920x1080  5860k , avc1.4d4028, video only (best)
[download] Finished downloading playlist: video

C:\Program Files Manual\YoutubeDL>youtube-dl -f hls-4100 https://banned.video/watch?id=5da4afaf9f040f0014733e18 -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'hls-4100', 'https://banned.video/watch?id=5da4afaf9f040f0014733e18', '-v']
[debug] Encodings: locale cp1250, fs mbcs, out cp852, pref cp1250
[debug] youtube-dl version 2019.09.28
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.14393
[debug] exe versions: ffmpeg N-94664-g0821bc4eee, ffprobe N-94664-g0821bc4eee
[debug] Proxy map: {}
[generic] watch?id=5da4afaf9f040f0014733e18: Requesting header
WARNING: Falling back on generic information extractor.
[generic] watch?id=5da4afaf9f040f0014733e18: Downloading webpage
[generic] watch?id=5da4afaf9f040f0014733e18: Extracting information
[generic] 5da4afaf9f040f0014733e18: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 5da4afaf9f040f0014733e18: Downloading webpage
[generic] 5da4afaf9f040f0014733e18: Extracting information
[generic] 5da4afaf9f040f0014733e18: Downloading m3u8 information
[download] Downloading playlist: video
[generic] playlist video: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[debug] Invoking downloader on 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/manifest/stream_4.m3u8'
[download] Destination: video-5da4afaf9f040f0014733e18.mp4
[debug] ffmpeg command line: ffmpeg -y -loglevel verbose -headers "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3738.4 Safari/537.36
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: __cfduid=d6680d978e00d9fdf34688d4027c01ab41571117218
Referer: https://api.infowarsmedia.com/embed/5da4afaf9f040f0014733e18
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
" -i "https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/manifest/stream_4.m3u8" -c copy -f mp4 "file:video-5da4afaf9f040f0014733e18.mp4.part"
ffmpeg version N-94664-g0821bc4eee Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.1.1 (GCC) 20190807
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 33.100 / 56. 33.100
  libavcodec     58. 55.101 / 58. 55.101
  libavformat    58. 31.104 / 58. 31.104
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 58.101 /  7. 58.101
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[tcp @ 000001938b55c880] Starting connection attempt to 104.17.106.42 port 443
[tcp @ 000001938b55c880] Successfully connected to 104.17.106.42 port 443
[hls @ 000001938b559600] Skip ('#EXT-X-VERSION:6')
[hls @ 000001938b559600] Skip ('#EXT-X-INDEPENDENT-SEGMENTS')
[hls @ 000001938b559600] Skip ('#Stream job=ApPJdf5x4qI= try=998095')
[hls @ 000001938b559600] HLS request for url 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_0.ts', offset 0, playlist 0
[hls @ 000001938b559600] Opening 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_0.ts' for reading
[tcp @ 000001938bc21d40] Starting connection attempt to 104.17.106.42 port 443
[tcp @ 000001938bc21d40] Successfully connected to 104.17.106.42 port 443
[hls @ 000001938b559600] HLS request for url 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_1.ts', offset 0, playlist 0
[hls @ 000001938b559600] Opening 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_1.ts' for reading
[tcp @ 000001938bc109c0] Starting connection attempt to 104.17.106.42 port 443
[tcp @ 000001938bc109c0] Successfully connected to 104.17.106.42 port 443
[h264 @ 000001938bfc8fc0] Reinit context to 1280x720, pix_fmt: yuv420p
[hls @ 000001938b559600] HLS request for url 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_2.ts', offset 0, playlist 0
[https @ 000001938bc0aa80] Opening 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_2.ts' for reading
Input #0, hls, from 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/manifest/stream_4.m3u8':
  Duration: 00:19:50.83, start: 0.066667, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Main), 1 reference frame ([27][0][0][0] / 0x001B), yuv420p(left), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'file:video-5da4afaf9f040f0014733e18.mp4.part':
  Metadata:
    encoder         : Lavf58.31.104
    Stream #0:0: Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 30 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[hls @ 000001938b559600] HLS request for url 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_3.ts', offset 0, playlist 0
[https @ 000001938bda3040] Opening 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_3.ts' for reading
[hls @ 000001938b559600] HLS request for url 'https://bytehighway.net/7a99a5cbb9409bcb49b7ef8a3df84683/video/720/stream_4-seg_4.ts', offset 0, playlist 0
```