Repository: yt-dlp/yt-dlp

Issue:
Patreon embedded video not found anymore
### 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
- [X] 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)
- [X] 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

Worldwide

### Provide a description that is worded well enough to be understood

Today it seems that Patreon changed their embedding or embedded videos. The program fails on all embedded videos and creators I got access to. So it looks like a site change.

### 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
[debug] Command-line config: ['-vU', '--cookies-from-browser', 'firefox', 'https://www.patreon.com/posts/fairy-tail-30-85954582']
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\Black\AppData\Roaming\Mozilla\Firefox\Profiles\i7jxqj1d.default-release-1663947917890\cookies.sqlite"
Extracted 2322 cookies from firefox
[debug] Encodings: locale cp932, fs utf-8, pref cp932, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds [95e82347b] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-109468-gd39b34123d-20221230 (setts), ffprobe N-109468-gd39b34123d-20221230
[debug] Optional libraries: Cryptodome-3.19.1, brotli-1.1.0, certifi-2023.11.17, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.1.0, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1798 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds)
[Patreon] Extracting URL: https://www.patreon.com/posts/fairy-tail-30-85954582
[Patreon] 85954582: Downloading API JSON
ERROR: [Patreon] 85954582: No supported media found in this post
  File "yt_dlp\extractor\common.py", line 718, in extract
  File "yt_dlp\extractor\patreon.py", line 289, in _real_extract
  File "yt_dlp\extractor\common.py", line 1196, in raise_no_formats
```



Discussion:
Can be tested with with free video post, no account needed: https://www.patreon.com/posts/happy-holidays-94714289
It throws the same messages:

[debug] Command-line config: ['-vU', '--cookies-from-browser', 'firefox', 'https://www.patreon.com/posts/happy-holidays-94714289']
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\Black\AppData\Roaming\Mozilla\Firefox\Profiles\i7jxqj1d.default-release-1663947917890\cookies.sqlite"
Extracted 2328 cookies from firefox
[debug] Encodings: locale cp932, fs utf-8, pref cp932, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds [95e82347b] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-109468-gd39b34123d-20221230 (setts), ffprobe N-109468-gd39b34123d-20221230
[debug] Optional libraries: Cryptodome-3.19.1, brotli-1.1.0, certifi-2023.11.17, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.1.0, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1798 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.01.09.232723 from yt-dlp/yt-dlp-nightly-builds)
[Patreon] Extracting URL: https://www.patreon.com/posts/happy-holidays-94714289
[Patreon] 94714289: Downloading API JSON
ERROR: [Patreon] 94714289: No supported media found in this post
  File "yt_dlp\extractor\common.py", line 718, in extract
  File "yt_dlp\extractor\patreon.py", line 289, in _real_extract
  File "yt_dlp\extractor\common.py", line 1196, in raise_no_formats

~~as noted in the linked gallery-dl issue, this may be something that's only rolled out to certain regions, as~~ I cannot reproduce the error.

@Ultraporing  What happens if you try w/o passing cookies?
@bashonly good catch! It works fine without cookies. But need them to get access to payed tiers sadly.
Hi,

I can reproduce this as of today (2024-01-12). For me, everything worked fine yesterday, and possibly even earlier today.

So it seems like it's a new video format for content behind a paywall on Patreon, possibly being rolled out in stages for different pages/creators or users.

Also, the same content I could download fine yesterday, I can no longer re-download, resulting in a "No supported media found in this post" error message. So the issue is not only for new content, but also affects old content, once the change has hit a certain Patreon creator and/or user (presumably).

Please let me know if I can add anything useful to the ticket :)
Hi, 
I can reproduce this today (2024-01-13). The same command, with cookies was working okay aweek ago.
So, something's has changed on Patreon
I'm a paid user ..

Resolving patch:
diff --git a/yt_dlp/extractor/patreon.py b/yt_dlp/extractor/patreon.py
--- a/yt_dlp/extractor/patreon.py
+++ b/yt_dlp/extractor/patreon.py
@@ -275,7 +275,7 @@ def _real_extract(self, url):
                     'ext': ext,
                     'url': post_file['url'],
                 }
-            elif name == 'video':
+            elif name == 'video' or determine_ext(post_file.get('url')) == 'm3u8':
                 formats, subtitles = self._extract_m3u8_formats_and_subtitles(post_file['url'], video_id)
                 return {
                     **info,


Test patch: