Repository: yt-dlp/yt-dlp

Issue:
[aenetworks]: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences
### Checklist

- [X] I'm reporting a broken site
- [X] I've verified that I'm running yt-dlp version **2022.05.18** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [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/ytdl-org/youtube-dl#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 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

United States

### Description

Specific video from a site that other videos work.
Playable in browser with DRM disabled.

### Verbose log

```shell
% yt-dlp -v "${URL}" -o "alone.s09e03.mp4" 
[debug] Command-line config: ['-v', 'https://play.history.com/shows/alone/season-9/episode-3', '-o', 'alone.s09e03.mp4']
[debug] User config "/home/user/.config/yt-dlp.conf": ['--ap-mso', 'Verizon', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.05.18 [b14d52355]
[debug] Python version 3.10.5 (CPython 64bit) - Linux-5.18.3-arch1-1-x86_64-with-glibc2.35
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: ffmpeg -bsfs
[debug] exe versions: ffmpeg 5.0.1 (setts), ffprobe 5.0.1
[debug] Optional libraries: Cryptodome-3.12.0, certifi-2021.10.08, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [aenetworks] Extracting URL: https://play.history.com/shows/alone/season-9/episode-3
[aenetworks] /shows/alone/season-9/episode-3: Downloading JSON metadata
[aenetworks] 2041648195915: Downloading JSON metadata
[aenetworks] 2041648195915: Downloading hls_high_ak SMIL data
[aenetworks] 2041648195915: Downloading high_video_s3 SMIL data
[aenetworks] 2041648195915: Downloading hls_high_fastly SMIL data
ERROR: [aenetworks] shows/alone/season-9/episode-3: None of the available releases match the specified AssetType, ProtectionScheme, and/or Format preferences
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/common.py", line 642, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/aenetworks.py", line 169, in _real_extract
    return self._extract_aetn_info(domain, 'canonical', '/' + canonical, url)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/aenetworks.py", line 88, in _extract_aetn_info
    info.update(self._extract_aen_smil(media_url, video_id, auth))
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/aenetworks.py", line 61, in _extract_aen_smil
    raise last_e
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/aenetworks.py", line 51, in _extract_aen_smil
    tp_formats, tp_subtitles = self._extract_theplatform_smil(
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/theplatform.py", line 45, in _extract_theplatform_smil
    raise ExtractorError(

-------------------- Working Video ---------------
% yt-dlp -v "${URL}" -o output.mp4                          
[debug] Command-line config: ['-v', 'https://play.history.com/shows/alone/season-9/episode-4', '-o', 'output.mp4']
[debug] User config "/home/user/.config/yt-dlp.conf": ['--ap-mso', 'Verizon', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.05.18 [b14d52355]
[debug] Python version 3.10.5 (CPython 64bit) - Linux-5.18.3-arch1-1-x86_64-with-glibc2.35
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: ffmpeg -bsfs
[debug] exe versions: ffmpeg 5.0.1 (setts), ffprobe 5.0.1
[debug] Optional libraries: Cryptodome-3.12.0, certifi-2021.10.08, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [aenetworks] Extracting URL: https://play.history.com/shows/alone/season-9/episode-4
[aenetworks] /shows/alone/season-9/episode-4: Downloading JSON metadata
[aenetworks] 2044162627627: Downloading JSON metadata
[debug] Loading ap-mvpd.HISTORY from cache
[aenetworks] 2044162627627: Retrieving Media Token
[aenetworks] 2044162627627: Downloading hls_high_ak SMIL data
[aenetworks] 2044162627627: Downloading m3u8 information
[aenetworks] 2044162627627: Downloading high_video_s3 SMIL data
[aenetworks] 2044162627627: Downloading m3u8 information
[aenetworks] 2044162627627: Downloading hls_high_fastly SMIL data
[aenetworks] 2044162627627: 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: bestvideo*+bestaudio/best
[info] 2044162627627: Downloading 1 format(s): hls-2695-2
[debug] Invoking hlsnative downloader on ...
```



Discussion:
@G-E-N-E what happens if you run the first command (the one which gave the error) with `--list-formats`?
@gamer191 They'll get the same output
@gamer191 It's as @pukkandan says.
I have encountered this error before on aenetwork sites.

It is rare, but some random videos have a different syntax and do not follow the standard template on the site. You can see this by using the console and web developer tools in Firefox.

I don't think this is really a bug in yt-dlp, rather yt-dlp does not extract because of the different syntax used for that specific video.

However, it is easy to still get the video. Play the video in the browser and use the browser console to copy the address for the master.m3u8 and paste it into your script for ytp-dlp. 
@Mr-Jake I imagine yt-dlp could still support those using fall backs
Yes, someone would have to analyze how these random videos differ from the site's standard template and make a fall back in the the extractor. 
I was able to make it work by adding `'formats': 'MPEG-DASH+widevine,M3U+appleHlsEncryption,M3U+none,MPEG-DASH+none,MPEG4,MP3',` to the list of parameters of each of the `TP_SMIL_QUERY` items here:
https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/extractor/aenetworks.py#L34-L42

Resolving patch:
diff --git a/yt_dlp/extractor/aenetworks.py b/yt_dlp/extractor/aenetworks.py
--- a/yt_dlp/extractor/aenetworks.py
+++ b/yt_dlp/extractor/aenetworks.py
@@ -28,14 +28,17 @@ class AENetworksBaseIE(ThePlatformIE):
     }
 
     def _extract_aen_smil(self, smil_url, video_id, auth=None):
-        query = {'mbr': 'true'}
+        query = {
+            'mbr': 'true',
+            'formats': 'M3U+none,MPEG-DASH+none,MPEG4,MP3',
+        }
         if auth:
             query['auth'] = auth
         TP_SMIL_QUERY = [{
             'assetTypes': 'high_video_ak',
-            'switch': 'hls_high_ak'
+            'switch': 'hls_high_ak',
         }, {
-            'assetTypes': 'high_video_s3'
+            'assetTypes': 'high_video_s3',
         }, {
             'assetTypes': 'high_video_s3',
             'switch': 'hls_high_fastly',


Test patch: