Repository: yt-dlp/yt-dlp

Issue:
[TF1] [wat.tv]: Permission insuffisante
### 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'm running yt-dlp version **2023.03.04** ([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/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

France

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

when i launch the command : yt-dlp  https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html
I have a message: 
[TF1] une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13992774
[wat.tv] 13992774: Downloading JSON metadata
ERROR: [wat.tv] 13992774: Permission insuffisante


### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [X] 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', 'https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (zip)
[debug] Python 3.10.6 (CPython x86_64 64bit) - Linux-5.15.0-73-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, phantomjs broken
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, secretstorage-3.3.1, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1788 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: a818cd85814f94bb7a07b6a731a5f110093e0549590625558985c244c0a31e0e
yt-dlp is up to date (stable@2023.03.04)
[TF1] Extracting URL: https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html
[TF1] une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13992774
[wat.tv] 13992774: Downloading JSON metadata
ERROR: [wat.tv] 13992774: Permission insuffisante
  File "/home/ludovic/.local/bin/yt-dlp/yt_dlp/extractor/common.py", line 694, in extract
    ie_result = self._real_extract(url)
  File "/home/ludovic/.local/bin/yt-dlp/yt_dlp/extractor/wat.py", line 64, in _real_extract
    raise ExtractorError(error_desc, expected=True)
```

[TF1] [wat.tv]: Permission insuffisante
### 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'm running yt-dlp version **2023.03.04** ([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/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

France

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

when i launch the command : yt-dlp  https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html
I have a message: 
[TF1] une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13992774
[wat.tv] 13992774: Downloading JSON metadata
ERROR: [wat.tv] 13992774: Permission insuffisante


### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [X] 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', 'https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (zip)
[debug] Python 3.10.6 (CPython x86_64 64bit) - Linux-5.15.0-73-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, phantomjs broken
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, secretstorage-3.3.1, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1788 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.03.04, Current version: stable@2023.03.04
Current Build Hash: a818cd85814f94bb7a07b6a731a5f110093e0549590625558985c244c0a31e0e
yt-dlp is up to date (stable@2023.03.04)
[TF1] Extracting URL: https://www.tf1.fr/tmc/une-nounou-d-enfer/videos/une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134.html
[TF1] une-nounou-denfer-s03-e7-un-homme-metamorphose-01883134: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13992774
[wat.tv] 13992774: Downloading JSON metadata
ERROR: [wat.tv] 13992774: Permission insuffisante
  File "/home/ludovic/.local/bin/yt-dlp/yt_dlp/extractor/common.py", line 694, in extract
    ie_result = self._real_extract(url)
  File "/home/ludovic/.local/bin/yt-dlp/yt_dlp/extractor/wat.py", line 64, in _real_extract
    raise ExtractorError(error_desc, expected=True)
```



Discussion:
Note to devs:

There's a possibly relevant comment in the extractor code:
```py
        # 'contentv4' is used in the website, but it also returns the related
        # videos, we don't need them
        # video_data = self._download_json(
        #     'http://www.wat.tv/interface/contentv4s/' + video_id, video_id)
        video_data = self._download_json(
            'https://mediainfo.tf1.fr/mediainfocombo/' + video_id,
            video_id, query={'context': 'MYTF1', 'pver': '4020003'})
```
I tested changing the API URL to that, and while I didn't get an error code, I also didn't get any manifest URLs in the response. It's probable that I am geo-blocked
The Wat stuff has been obsolete for some time. This stuff was ported from upstream, where:
```console
$ git blame -L 51 youtube_dl/extractor/wat.py
Blaming lines: 100% (57/57), done.
...
8244288dfe (Jaime Marquínez Ferrándiz 2013-06-29 18:22:03 +0200  53) 
c5f5155100 (remitamine                2016-04-22 09:36:14 +0100  54)         # 'contentv4' is used in the website, but it also returns the related
c5f5155100 (remitamine                2016-04-22 09:36:14 +0100  55)         # videos, we don't need them
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  56)         # video_data = self._download_json(
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  57)         #     'http://www.wat.tv/interface/contentv4s/' + video_id, video_id)
57ce8a6d08 (Remita Amine              2016-08-10 14:17:22 +0100  58)         video_data = self._download_json(
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  59)             'https://mediainfo.tf1.fr/mediainfocombo/' + video_id,
c3deca86ae (dirkf                     2022-05-19 17:41:48 +0000  60)             video_id, query={'context': 'MYTF1', 'pver': '4001000'})
57ce8a6d08 (Remita Amine              2016-08-10 14:17:22 +0100  61)         video_info = video_data['media']
...
$
```
At https://github.com/ytdl-org/youtube-dl/commit/295860ff00 (where the media look-up using wat.tv was replaced with one using mediainfo.tf1.fr), anything to do with wat.tv had become obsolete, so the comments from 2016 haven't been relevant for 2 years. We should then have rolled the wat.py and lci.py extractors into tf1.py. See https://github.com/ytdl-org/youtube-dl/issues/32299, which covers the same problem. Probably this is just a different symptom of the change reported in #7299.


I didn't understand all the technical explanations, can the problem be solved or should we just let it go?
@guy-teube the technical stuff is for devs

This problem will most likely be fixed once/if a developer decides to work on it!
per https://github.com/ytdl-org/youtube-dl/issues/32299, everything seems to now be DRM protected besides short clips/previews. The extractor could be fixed to extract those, but somebody will need to post an example URL if there is any interest in that

I have interest in that, I usually cherry-pick in sliced replay. Here's a link : 
https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html
@FM33 does it play in browser with DRM disabled?
```shell
$ yt-dlp -F 'https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html'
[TF1] Extracting URL: https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-liv...tidien-67219751.html
[TF1] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13995700
[wat.tv] 13995700: Downloading JSON metadata
[wat.tv] 13995700: Downloading MPD manifest
ERROR: [wat.tv] 13995700: This video is DRM protected
```

edit: no it does not

```json
{
  "type": "engine:drm",
  "error": {
    "severity": 2,
    "category": 6,
    "code": 6001,
    "data": [],
    "handled": false
  },
  "logHit": {
    "level": "FATAL",
    "logType": "VIDEO_ERROR",
    "message": "{\"name\":\"REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE\",\"engine\":\"shaka\",\"category\":6,\"code\":6001,\"data\":\"\"}"
  }
}
```
OK, that's not a full program, but in Nightly with a clean profile, it didn't play until enabling DRM.
So TF1 is all dead :-(
More or less. See https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196.
@FM33: 

**Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it): 
```console
youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 

[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
format code            extension  resolution note
dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
```
Caveat: **720p** (HD) not always accessible via that simple hack 😞 ...

For `yt-dlp`:

https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57

... change that to: 
```python
            video_id, query={'pver': '5010000'})
```
ALL credit goes to **gamer191** 👍 !



I only have one file called yt-dlp (2.7 Mb), and no other directory or file. I've taken it here: https://github.com/yt-dlp/yt-dlp/releases/tag/2023.03.04
(5th file of the list, "yt-dlp" without extension)
Whre should I try the modification you are talking about?
@guy-teube You cannot make modification on the binary. The instructions are mostly for devs
It worked! Many thanks.
Here are the steps I made in ubuntu, for anyone interested : 
1. Download the source code as zip from https://github.com/yt-dlp/yt-dlp/ (green code button)
2. Extract preserving directory structure
3. Edit yt-dlp-master/yt_dlp/extractor/wat.py to replace the content of line 57 with the code from gamer191 `video_id, query={'pver': '5010000'})`
4. Open a terminal in the code's directory
5. Run these three commands (readme from github's page) : 
```
python3 -m pip install -U pyinstaller -r requirements.txt
python3 devscripts/make_lazy_extractors.py
python3 pyinst.py
```
In case of error, review dependancies and install what's missing.
6. Run `cd dist`
7. Run `./yt-dlp_linux https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/invitee-selah-sue-la-musique-pour-apaiser-les-maux-83263666.html`
Thank you @FM33 
I've made the change line 57, and run the python commands, then here what I got : 
`
guy@ubuntu:~/Programmes/yt-dlp/yt-dlp-master/dist$ ./yt-dlp_linux https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html
[TF1] Extracting URL: https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html
[TF1] mighty-express-robot-en-cavale-77341749: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13994428
[wat.tv] 13994428: Downloading JSON metadata
ERROR: [wat.tv] 13994428: Erreur dans le delivery
`
I didn't have any error with the 3 python commands, only "info" logs.
per https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196, this "hack" only works with short excerpts/clips. Anything without non-DRM formats available will error with `Erreur dans le delivery`
@guy-teube: Please read carefully what I posted above: 

> **Short** episode excerpts/clips that are **free to watch** and **do not require a mandatory `MYTF1` account**

https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html

will generate the message below when tried in a browser **without being logged-in** 😜 : 

![tf1](https://github.com/yt-dlp/yt-dlp/assets/9669492/2de5d9be-5583-42a9-a95d-773d361b923f)

Donc, je suis désolé... 😞 
> I only have one file called yt-dlp (2.7 Mb), and no other directory or file.
> ...
> (5th file of the list, "yt-dlp" without extension)

> You cannot make modification on the binary.

... Er, I don't want to step on someone else's toes 😉 here, but that statement is not entirely true... The **binary** file (`yt-dlp`) mentioned above is: 

> Platform-independent [zipimport](https://docs.python.org/3/library/zipimport.html) binary. Needs Python

Upstream has a similarly packaged binary file, `youtube-dl`, and their documentation states this: 

https://github.com/ytdl-org/youtube-dl#what-is-this-binary-file-where-has-the-code-gone

> `youtube-dl` is packed as an **executable zipfile**, simply **unzip it** (might need renaming to `youtube-dl.zip` first on some systems) or clone the git repository, as laid out above. 
> If you **modify the code**, you can run it by executing the
 `__main__.py` 
file. To **recompile the executable**, run 
`make youtube-dl`

so I believe **a similar procedure** can be applied here; disclaimer: not a Unix person, so someone else may need to provide the succinct details 😉 ...

Under **Windows** at least, **7-zip** can successfully extract the `yt-dlp` file; then, source code modifications **can be made** and resultant code invoked via, e.g., 
```console
C:\Python3717-32>python "yt-dlp\__main__.py" => 

Usage: __main__.py [OPTIONS] URL [URL...]

__main__.py: error: You must provide at least one URL.
Type yt-dlp --help to see a list of all options.
```
> @FM33:
> 
> **Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it):
> 
> ```
> youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 
> 
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
> format code            extension  resolution note
> dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
> dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
> ```
> 
> Caveat: **720p** (HD) not always accessible via that simple hack disappointed ...
> 
> For `yt-dlp`:
> 
> https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57
> 
> ... change that to:
> 
> ```python
>             video_id, query={'pver': '5010000'})
> ```
> 
> ALL credit goes to **gamer191** +1 !

@Vangelis66 @gamer191 Your fix works for [Les 12 coups de midi](https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-22-juin-2023-27257005.html) (full replay, not only a short clip), though. Thank you!
> @FM33:
> 
> **Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it):
> 
> ```
> youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 
> 
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
> format code            extension  resolution note
> dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
> dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
> ```
> 
> Caveat: **720p** (HD) not always accessible via that simple hack 😞 ...
> 
> For `yt-dlp`:
> 
> https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57
> 
> ... change that to:
> 
> ```python
>             video_id, query={'pver': '5010000'})
> ```
> 
> ALL credit goes to **gamer191** 👍 !

I encountered a the same issue so I've tried the suggested fix, but I received a different error message:
```
PS C:\Users\username\Documents\DEV\yt-dlp\dist> .\yt-dlp.exe --list-formats https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html
[TF1] Extracting URL: https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html
[TF1] hpi-s03-e07-tonnerre-10707475: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13998091
[wat.tv] 13998091: Downloading JSON metadata
ERROR: [wat.tv] 13998091: Erreur dans le delivery
```

@destructor6907 wrote: 

> I encountered the same issue, **so I've tried the suggested fix**,

With respect, why did you try the "suggested fix" in the first place? 

https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html

is NOT a "**short episode excerpt/clip**", the video's duration is **55min**; and, while **free to watch** for a limited time frame, it _does require_ a mandatory (free) `MYTF1` account to be able to unlock it... 

The only one exception posted so far for which the "suggested fix" _does work_ is for episodes of the `les douze coups de midi` series, e.g. 

https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-3-juillet-2023-71100550.html

These are indeed **full-length** episodes and do require a `MYTF1` account to be watched in a browser, however the "fix" appears able to bypass **both the log-in requirement and the DRM-protection present in the streams served to browsers**; FWIW, these episodes are reserved for mainland France and the rest of the French speaking territories (barring Quebec) ... 

 The only one peculiarity I can spot about this series is that the episodes are NOT available with a `MYTF1 MAX` (paid) account past the 7-day free account time frame... 
With patched `yt-dl` and a French proxy: 
```console
youtube-dl --proxy "localhost:8080" -F "https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-3-juillet-2023-71100550.html"

[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading webpage
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading JSON metadata
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading MPD manifest
WARNING: [tf1.fr] Unknown MIME type application/mp4 in DASH manifest
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading JSON metadata
[info] Available formats for 6faf54bc-df0f-49dc-b1be-d519283f0bc1:
format code            extension  resolution note
dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-video=200054      mp4        416x234    DASH video  200k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=400105      mp4        480x270    DASH video  400k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=600175      mp4        640x360    DASH video  600k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=1200513     mp4        1024x576   DASH video 1200k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video=1700611     mp4        1024x576   DASH video 1700k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
```
FWIW, I'm not a regular consumer of `MYTF1` content and don't reside within France; if normal users of the service do come across series/full episodes that do work with "the fix", do chime in; but for "it" not to work on full-length episodes, that's kind of expected... 

The `Erreur dans le delivery` ERROR you got has been explained in the [analysis](https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196) I posted in the corresponding upstream issue 😉 ...

@Vangelis66 Thanks for your answer
One month ago I was able to download the same full-lenght episodes even if they were only accessible with the paid subscription MyTF1Max so I thought that the fix could allow me to download at least any free (with an account) episodes but II didn't quite read what the fix fixes. Sorry

yt-dlp was updated but the extractor was not patched upstream, so I had to manually apply the fix again on `wat.py`.
If it's still valid, which fix?
@dirkf [This one](https://github.com/yt-dlp/yt-dlp/issues/7303#issuecomment-1596411764): replacing line 57 in `wat.tv` by

```
 video_id, query={'pver': '5010000'})
```
Ah, fine. That's already in the new wat-free TF1 extractor for yt-dl.
Is there a reason why no one has done a PR for this change? 
Note to devs:

There's a possibly relevant comment in the extractor code:
```py
        # 'contentv4' is used in the website, but it also returns the related
        # videos, we don't need them
        # video_data = self._download_json(
        #     'http://www.wat.tv/interface/contentv4s/' + video_id, video_id)
        video_data = self._download_json(
            'https://mediainfo.tf1.fr/mediainfocombo/' + video_id,
            video_id, query={'context': 'MYTF1', 'pver': '4020003'})
```
I tested changing the API URL to that, and while I didn't get an error code, I also didn't get any manifest URLs in the response. It's probable that I am geo-blocked
The Wat stuff has been obsolete for some time. This stuff was ported from upstream, where:
```console
$ git blame -L 51 youtube_dl/extractor/wat.py
Blaming lines: 100% (57/57), done.
...
8244288dfe (Jaime Marquínez Ferrándiz 2013-06-29 18:22:03 +0200  53) 
c5f5155100 (remitamine                2016-04-22 09:36:14 +0100  54)         # 'contentv4' is used in the website, but it also returns the related
c5f5155100 (remitamine                2016-04-22 09:36:14 +0100  55)         # videos, we don't need them
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  56)         # video_data = self._download_json(
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  57)         #     'http://www.wat.tv/interface/contentv4s/' + video_id, video_id)
57ce8a6d08 (Remita Amine              2016-08-10 14:17:22 +0100  58)         video_data = self._download_json(
295860ff00 (Remita Amine              2021-02-23 12:39:46 +0100  59)             'https://mediainfo.tf1.fr/mediainfocombo/' + video_id,
c3deca86ae (dirkf                     2022-05-19 17:41:48 +0000  60)             video_id, query={'context': 'MYTF1', 'pver': '4001000'})
57ce8a6d08 (Remita Amine              2016-08-10 14:17:22 +0100  61)         video_info = video_data['media']
...
$
```
At https://github.com/ytdl-org/youtube-dl/commit/295860ff00 (where the media look-up using wat.tv was replaced with one using mediainfo.tf1.fr), anything to do with wat.tv had become obsolete, so the comments from 2016 haven't been relevant for 2 years. We should then have rolled the wat.py and lci.py extractors into tf1.py. See https://github.com/ytdl-org/youtube-dl/issues/32299, which covers the same problem. Probably this is just a different symptom of the change reported in #7299.


I didn't understand all the technical explanations, can the problem be solved or should we just let it go?
@guy-teube the technical stuff is for devs

This problem will most likely be fixed once/if a developer decides to work on it!
per https://github.com/ytdl-org/youtube-dl/issues/32299, everything seems to now be DRM protected besides short clips/previews. The extractor could be fixed to extract those, but somebody will need to post an example URL if there is any interest in that

I have interest in that, I usually cherry-pick in sliced replay. Here's a link : 
https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html
@FM33 does it play in browser with DRM disabled?
```shell
$ yt-dlp -F 'https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html'
[TF1] Extracting URL: https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-liv...tidien-67219751.html
[TF1] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13995700
[wat.tv] 13995700: Downloading JSON metadata
[wat.tv] 13995700: Downloading MPD manifest
ERROR: [wat.tv] 13995700: This video is DRM protected
```

edit: no it does not

```json
{
  "type": "engine:drm",
  "error": {
    "severity": 2,
    "category": 6,
    "code": 6001,
    "data": [],
    "handled": false
  },
  "logHit": {
    "level": "FATAL",
    "logType": "VIDEO_ERROR",
    "message": "{\"name\":\"REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE\",\"engine\":\"shaka\",\"category\":6,\"code\":6001,\"data\":\"\"}"
  }
}
```
OK, that's not a full program, but in Nightly with a clean profile, it didn't play until enabling DRM.
So TF1 is all dead :-(
More or less. See https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196.
@FM33: 

**Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it): 
```console
youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 

[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
[tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
[info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
format code            extension  resolution note
dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
```
Caveat: **720p** (HD) not always accessible via that simple hack 😞 ...

For `yt-dlp`:

https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57

... change that to: 
```python
            video_id, query={'pver': '5010000'})
```
ALL credit goes to **gamer191** 👍 !



I only have one file called yt-dlp (2.7 Mb), and no other directory or file. I've taken it here: https://github.com/yt-dlp/yt-dlp/releases/tag/2023.03.04
(5th file of the list, "yt-dlp" without extension)
Whre should I try the modification you are talking about?
@guy-teube You cannot make modification on the binary. The instructions are mostly for devs
It worked! Many thanks.
Here are the steps I made in ubuntu, for anyone interested : 
1. Download the source code as zip from https://github.com/yt-dlp/yt-dlp/ (green code button)
2. Extract preserving directory structure
3. Edit yt-dlp-master/yt_dlp/extractor/wat.py to replace the content of line 57 with the code from gamer191 `video_id, query={'pver': '5010000'})`
4. Open a terminal in the code's directory
5. Run these three commands (readme from github's page) : 
```
python3 -m pip install -U pyinstaller -r requirements.txt
python3 devscripts/make_lazy_extractors.py
python3 pyinst.py
```
In case of error, review dependancies and install what's missing.
6. Run `cd dist`
7. Run `./yt-dlp_linux https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/invitee-selah-sue-la-musique-pour-apaiser-les-maux-83263666.html`
Thank you @FM33 
I've made the change line 57, and run the python commands, then here what I got : 
`
guy@ubuntu:~/Programmes/yt-dlp/yt-dlp-master/dist$ ./yt-dlp_linux https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html
[TF1] Extracting URL: https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html
[TF1] mighty-express-robot-en-cavale-77341749: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13994428
[wat.tv] 13994428: Downloading JSON metadata
ERROR: [wat.tv] 13994428: Erreur dans le delivery
`
I didn't have any error with the 3 python commands, only "info" logs.
per https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196, this "hack" only works with short excerpts/clips. Anything without non-DRM formats available will error with `Erreur dans le delivery`
@guy-teube: Please read carefully what I posted above: 

> **Short** episode excerpts/clips that are **free to watch** and **do not require a mandatory `MYTF1` account**

https://www.tf1.fr/tf1/mighty-express/videos/mighty-express-robot-en-cavale-77341749.html

will generate the message below when tried in a browser **without being logged-in** 😜 : 

![tf1](https://github.com/yt-dlp/yt-dlp/assets/9669492/2de5d9be-5583-42a9-a95d-773d361b923f)

Donc, je suis désolé... 😞 
> I only have one file called yt-dlp (2.7 Mb), and no other directory or file.
> ...
> (5th file of the list, "yt-dlp" without extension)

> You cannot make modification on the binary.

... Er, I don't want to step on someone else's toes 😉 here, but that statement is not entirely true... The **binary** file (`yt-dlp`) mentioned above is: 

> Platform-independent [zipimport](https://docs.python.org/3/library/zipimport.html) binary. Needs Python

Upstream has a similarly packaged binary file, `youtube-dl`, and their documentation states this: 

https://github.com/ytdl-org/youtube-dl#what-is-this-binary-file-where-has-the-code-gone

> `youtube-dl` is packed as an **executable zipfile**, simply **unzip it** (might need renaming to `youtube-dl.zip` first on some systems) or clone the git repository, as laid out above. 
> If you **modify the code**, you can run it by executing the
 `__main__.py` 
file. To **recompile the executable**, run 
`make youtube-dl`

so I believe **a similar procedure** can be applied here; disclaimer: not a Unix person, so someone else may need to provide the succinct details 😉 ...

Under **Windows** at least, **7-zip** can successfully extract the `yt-dlp` file; then, source code modifications **can be made** and resultant code invoked via, e.g., 
```console
C:\Python3717-32>python "yt-dlp\__main__.py" => 

Usage: __main__.py [OPTIONS] URL [URL...]

__main__.py: error: You must provide at least one URL.
Type yt-dlp --help to see a list of all options.
```
> @FM33:
> 
> **Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it):
> 
> ```
> youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 
> 
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
> format code            extension  resolution note
> dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
> dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
> ```
> 
> Caveat: **720p** (HD) not always accessible via that simple hack disappointed ...
> 
> For `yt-dlp`:
> 
> https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57
> 
> ... change that to:
> 
> ```python
>             video_id, query={'pver': '5010000'})
> ```
> 
> ALL credit goes to **gamer191** +1 !

@Vangelis66 @gamer191 Your fix works for [Les 12 coups de midi](https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-22-juin-2023-27257005.html) (full replay, not only a short clip), though. Thank you!
> @FM33:
> 
> **Short** episode excerpts/clips that are **free to watch** and **do not require** a mandatory `MYTF1` account _do require_ **EME/DRM enabled** to be viewed in a browser, but "clear" (**DRM-free**) versions of them can be downloaded with `youtube-dl`/`yt-dlp` via a "hack" (subject to break in the future, if **TF1** decide to patch it):
> 
> ```
> youtube-dl -F "https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751.html" => 
> 
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading webpage
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading MPD manifest
> [tf1.fr] selah-sue-when-it-all-falls-down-en-live-pour-quotidien-67219751: Downloading JSON metadata
> [info] Available formats for b6dab841-b24d-4723-85b9-294876a610eb:
> format code            extension  resolution note
> dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
> dash-video=201585      mp4        416x234    DASH video  201k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=402889      mp4        480x270    DASH video  402k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=604089      mp4        640x360    DASH video  604k , mp4_dash container, avc1.42C01E, 25fps, video only
> dash-video=1214876     mp4        1024x576   DASH video 1214k , mp4_dash container, avc1.4D401F, 25fps, video only
> dash-video=1722182     mp4        1024x576   DASH video 1722k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
> ```
> 
> Caveat: **720p** (HD) not always accessible via that simple hack 😞 ...
> 
> For `yt-dlp`:
> 
> https://github.com/yt-dlp/yt-dlp/blob/01aba2519a0884ef17d5f85608dbd2a455577147/yt_dlp/extractor/wat.py#L57
> 
> ... change that to:
> 
> ```python
>             video_id, query={'pver': '5010000'})
> ```
> 
> ALL credit goes to **gamer191** 👍 !

I encountered a the same issue so I've tried the suggested fix, but I received a different error message:
```
PS C:\Users\username\Documents\DEV\yt-dlp\dist> .\yt-dlp.exe --list-formats https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html
[TF1] Extracting URL: https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html
[TF1] hpi-s03-e07-tonnerre-10707475: Downloading JSON metadata
[wat.tv] Extracting URL: wat:13998091
[wat.tv] 13998091: Downloading JSON metadata
ERROR: [wat.tv] 13998091: Erreur dans le delivery
```

@destructor6907 wrote: 

> I encountered the same issue, **so I've tried the suggested fix**,

With respect, why did you try the "suggested fix" in the first place? 

https://www.tf1.fr/tf1/hpi/videos/hpi-s03-e07-tonnerre-10707475.html

is NOT a "**short episode excerpt/clip**", the video's duration is **55min**; and, while **free to watch** for a limited time frame, it _does require_ a mandatory (free) `MYTF1` account to be able to unlock it... 

The only one exception posted so far for which the "suggested fix" _does work_ is for episodes of the `les douze coups de midi` series, e.g. 

https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-3-juillet-2023-71100550.html

These are indeed **full-length** episodes and do require a `MYTF1` account to be watched in a browser, however the "fix" appears able to bypass **both the log-in requirement and the DRM-protection present in the streams served to browsers**; FWIW, these episodes are reserved for mainland France and the rest of the French speaking territories (barring Quebec) ... 

 The only one peculiarity I can spot about this series is that the episodes are NOT available with a `MYTF1 MAX` (paid) account past the 7-day free account time frame... 
With patched `yt-dl` and a French proxy: 
```console
youtube-dl --proxy "localhost:8080" -F "https://www.tf1.fr/tf1/les-douze-coups-de-midi/videos/les-12-coups-de-midi-du-3-juillet-2023-71100550.html"

[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading webpage
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading JSON metadata
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading MPD manifest
WARNING: [tf1.fr] Unknown MIME type application/mp4 in DASH manifest
[tf1.fr] les-12-coups-de-midi-du-3-juillet-2023-71100550: Downloading JSON metadata
[info] Available formats for 6faf54bc-df0f-49dc-b1be-d519283f0bc1:
format code            extension  resolution note
dash-audio_fra=64000   m4a        audio only [fr] DASH audio   64k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-audio_fra=128000  m4a        audio only [fr] DASH audio  128k , m4a_dash container, mp4a.40.2 (48000Hz)
dash-video=200054      mp4        416x234    DASH video  200k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=400105      mp4        480x270    DASH video  400k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=600175      mp4        640x360    DASH video  600k , mp4_dash container, avc1.42C01E, 25fps, video only
dash-video=1200513     mp4        1024x576   DASH video 1200k , mp4_dash container, avc1.4D401F, 25fps, video only
dash-video=1700611     mp4        1024x576   DASH video 1700k , mp4_dash container, avc1.4D401F, 25fps, video only (best)
```
FWIW, I'm not a regular consumer of `MYTF1` content and don't reside within France; if normal users of the service do come across series/full episodes that do work with "the fix", do chime in; but for "it" not to work on full-length episodes, that's kind of expected... 

The `Erreur dans le delivery` ERROR you got has been explained in the [analysis](https://github.com/ytdl-org/youtube-dl/issues/32299#issuecomment-1596234196) I posted in the corresponding upstream issue 😉 ...

@Vangelis66 Thanks for your answer
One month ago I was able to download the same full-lenght episodes even if they were only accessible with the paid subscription MyTF1Max so I thought that the fix could allow me to download at least any free (with an account) episodes but II didn't quite read what the fix fixes. Sorry

yt-dlp was updated but the extractor was not patched upstream, so I had to manually apply the fix again on `wat.py`.
If it's still valid, which fix?
@dirkf [This one](https://github.com/yt-dlp/yt-dlp/issues/7303#issuecomment-1596411764): replacing line 57 in `wat.tv` by

```
 video_id, query={'pver': '5010000'})
```
Ah, fine. That's already in the new wat-free TF1 extractor for yt-dl.
Is there a reason why no one has done a PR for this change? 

Resolving patch:
diff --git a/yt_dlp/extractor/tf1.py b/yt_dlp/extractor/tf1.py
--- a/yt_dlp/extractor/tf1.py
+++ b/yt_dlp/extractor/tf1.py
@@ -27,6 +27,25 @@ class TF1IE(InfoExtractor):
             # Sometimes wat serves the whole file with the --test option
             'skip_download': True,
         },
+    }, {
+        'url': 'https://www.tf1.fr/tmc/burger-quiz/videos/burger-quiz-du-19-aout-2023-s03-episode-21-85585666.html',
+        'info_dict': {
+            'id': '14010600',
+            'ext': 'mp4',
+            'title': 'Burger Quiz - S03 EP21 avec Eye Haidara, Anne Depétrini, Jonathan Zaccaï et Pio Marmaï',
+            'thumbnail': 'https://photos.tf1.fr/1280/720/burger-quiz-11-9adb79-0@1x.jpg',
+            'description': 'Manu Payet recevra Eye Haidara, Anne Depétrini, Jonathan Zaccaï et Pio Marmaï.',
+            'upload_date': '20230819',
+            'timestamp': 1692469471,
+            'season_number': 3,
+            'series': 'Burger Quiz',
+            'episode_number': 21,
+            'season': 'Season 3',
+            'tags': 'count:13',
+            'episode': 'Episode 21',
+            'duration': 2312
+        },
+        'params': {'skip_download': 'm3u8'},
     }, {
         'url': 'http://www.tf1.fr/tf1/koh-lanta/videos/replay-koh-lanta-22-mai-2015.html',
         'only_matching': True,
diff --git a/yt_dlp/extractor/wat.py b/yt_dlp/extractor/wat.py
--- a/yt_dlp/extractor/wat.py
+++ b/yt_dlp/extractor/wat.py
@@ -41,6 +41,18 @@ class WatIE(InfoExtractor):
             'expected_warnings': ["Ce contenu n'est pas disponible pour l'instant."],
             'skip': 'This content is no longer available',
         },
+        {
+            'url': 'wat:14010600',
+            'info_dict': {
+                'id': '14010600',
+                'title': 'Burger Quiz - S03 EP21 avec Eye Haidara, Anne Depétrini, Jonathan Zaccaï et Pio Marmaï',
+                'thumbnail': 'https://photos.tf1.fr/1280/720/burger-quiz-11-9adb79-0@1x.jpg',
+                'upload_date': '20230819',
+                'duration': 2312,
+                'ext': 'mp4',
+            },
+            'params': {'skip_download': 'm3u8'},
+        }
     ]
     _GEO_BYPASS = False
 
@@ -54,7 +66,7 @@ def _real_extract(self, url):
         #     'http://www.wat.tv/interface/contentv4s/' + video_id, video_id)
         video_data = self._download_json(
             'https://mediainfo.tf1.fr/mediainfocombo/' + video_id,
-            video_id, query={'context': 'MYTF1', 'pver': '4020003'})
+            video_id, query={'pver': '5010000'})
         video_info = video_data['media']
 
         error_desc = video_info.get('error_desc')


Test patch: