Repository: yt-dlp/yt-dlp
File: yt_dlp/extractor/arte.py (Python)

Code before:
        'url': 'https://www.arte.tv/en/videos/088501-000-A/mexico-stealing-petrol-to-survive/',
        'only_matching': True,
    }, {
        'note': 'No alt_title',
        'url': 'https://www.arte.tv/fr/videos/110371-000-A/la-chaleur-supplice-des-arbres-de-rue/',
        'only_matching': True,
    }, {
        'url': 'https://api.arte.tv/api/player/v2/config/de/100605-013-A',
        'only_matching': True,
    }, {
        'url': 'https://api.arte.tv/api/player/v2/config/de/LIVE',
        'only_matching': True,
    }, {
        'url': 'https://www.arte.tv/de/videos/110203-006-A/zaz/',
        'only_matching': True,
    }, {
        'url': 'https://www.arte.tv/fr/videos/109067-000-A/la-loi-de-teheran/',
        'info_dict': {
            'id': '109067-000-A',
            'ext': 'mp4',
            'description': 'md5:d2ca367b8ecee028dddaa8bd1aebc739',
            'timestamp': 1713927600,
            'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/3rR6PLzfbigSkkeHtkCZNF/940x530',
            'duration': 7599,
            'title': 'La loi de Téhéran',
            'alt_title': None,
            'upload_date': '20240424',
            'subtitles': {
                'fr': 'mincount:1',
                'fr-acc': 'mincount:1',
                'fr-partial': 'mincount:1',
            },
        },
    }]

    _GEO_BYPASS = True

    _LANG_MAP = {  # ISO639 -> French abbreviations
        'fr': 'F',
        'de': 'A',
        'en': 'E[ANG]',
        'es': 'E[ESP]',
        'it': 'E[ITA]',
        'pl': 'E[POL]',
        # XXX: probably means mixed; <https://www.arte.tv/en/videos/107710-029-A/dispatches-from-ukraine-local-journalists-report/>
        # uses this code for audio that happens to be in Ukrainian, but the manifest uses the ISO code 'mul' (mixed)
        'mul': 'EU',
    }

    _VERSION_CODE_RE = re.compile(r'''(?x)
        V

Review comment (bug):
If the correct expected value is `None`, it doesn't need to be in the test. If not, put the correct value here and let the test fail
```suggestion
```

Code after:
        'url': 'https://www.arte.tv/en/videos/088501-000-A/mexico-stealing-petrol-to-survive/',
        'only_matching': True,
    }, {
        'note': 'No alt_title',
        'url': 'https://www.arte.tv/fr/videos/110371-000-A/la-chaleur-supplice-des-arbres-de-rue/',
        'only_matching': True,
    }, {
        'url': 'https://api.arte.tv/api/player/v2/config/de/100605-013-A',
        'only_matching': True,
    }, {
        'url': 'https://api.arte.tv/api/player/v2/config/de/LIVE',
        'only_matching': True,
    }, {
        'url': 'https://www.arte.tv/de/videos/110203-006-A/zaz/',
        'only_matching': True,
    }, {
        'url': 'https://www.arte.tv/fr/videos/109067-000-A/la-loi-de-teheran/',
        'info_dict': {
            'id': '109067-000-A',
            'ext': 'mp4',
            'description': 'md5:d2ca367b8ecee028dddaa8bd1aebc739',
            'timestamp': 1713927600,
            'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/3rR6PLzfbigSkkeHtkCZNF/940x530',
            'duration': 7599,
            'title': 'La loi de Téhéran',
            'upload_date': '20240424',
            'subtitles': {
                'fr': 'mincount:1',
                'fr-acc': 'mincount:1',
                'fr-forced': 'mincount:1',
            },
        },
    }, {
        'note': 'age-restricted',
        'url': 'https://www.arte.tv/de/videos/006785-000-A/the-element-of-crime/',
        'info_dict': {
            'id': '006785-000-A',
            'description': 'md5:c2f94fdfefc8a280e4dab68ab96ab0ba',
            'title': 'The Element of Crime',
            'timestamp': 1696111200,
            'duration': 5849,
            'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/q82dTTfyuCXupPsGxXsd7B/940x530',
            'upload_date': '20230930',
            'ext': 'mp4',
        },
        'skip': '404 Not Found',
    }]

    _GEO_BYPASS = True

    _LANG_MAP = {  # ISO639 -> French abbreviations