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

Code before:
            'modified_date': '20241010',
            'release_date': '20240903',
            'release_timestamp': 1725379200,
            'modified_timestamp': 1728577804,
        },
    }, {
        'url': 'https://prophecywatchers.subspla.sh/8gps8cx',
        'only_matching': True,
    }]

    def _real_extract(self, url):
        display_id = self._match_id(url)
        headers = self._get_headers(url, display_id)

        data = self._download_json(
            'https://core.subsplash.com/media/v1/media-items', display_id, headers=headers,
            query={
                'filter[short_code]': display_id,
                'include': 'images,audio.audio-outputs,audio.video,video.video-outputs,video.playlists,document,broadcast',
            })
        return self._extract_video(traverse_obj(data, ('_embedded', 'media-items', 0)), display_id)


class SubsplashPlaylistIE(SubsplashBaseIE):
    IE_NAME = 'subsplash:playlist'
    _VALID_URL = r'https?://(?:www\.)?subsplash\.com/[^/]+/(?:our-videos|media)/ms/\+(?P<id>\w+)'
    _PAGE_SIZE = 15
    _TESTS = [{
        'url': 'https://subsplash.com/skywatchtv/our-videos/ms/+dbyjzp8',
        'info_dict': {
            'id': 'dbyjzp8',
            'title': 'Five in Ten',
        },
        'playlist_mincount': 16,
    }, {
        'url': 'https://subsplash.com/prophecywatchers/media/ms/+n42mr48',
        'info_dict': {
            'id': 'n42mr48',
            'title': 'Road to Zion Series',
        },
        'playlist_mincount': 13,
    }, {
        'url': 'https://subsplash.com/prophecywatchers/media/ms/+918b9f6',
        'only_matching': True,
    }]

    def _entries(self, series_id, headers, page):
        data = self._download_json(
            'https://core.subsplash.com/media/v1/media-items', series_id, headers=headers,
            query={
                'filter[broadcast.status|broadcast.status]': 'null|on-demand',

Review comment (suggestion):
```suggestion
    _VALID_URL = r'https?://(?:www\.)?subsplash\.com/[^/?#]+/(?:our-videos|media)/ms/\+(?P<id>\w+)'
```

Code after:
            'release_timestamp': 1725379200,
            'modified_timestamp': 1728577804,
        },
    }, {
        'url': 'https://subsplash.com/laiglesiadelcentro/vid/mi/+ecb6a6b?autoplay=true',
        'md5': '013c9b1e391dd4b34d8612439445deef',
        'info_dict': {
            'id': 'ecb6a6b',
            'ext': 'mp4',
            'thumbnail': r're:https?://.*\.(?:jpg|png)$',
            'release_timestamp': 1477095852,
            'title': 'En el Principio Era el Verbo | EVANGELIO DE JUAN | Ps. Gadiel Ríos',
            'timestamp': 1425772800,
            'upload_date': '20150308',
            'description': 'md5:f368221de93176654989ba66bb564798',
            'modified_timestamp': 1730258864,
            'modified_date': '20241030',
            'release_date': '20161022',
        },
    }, {
        'url': 'https://prophecywatchers.subspla.sh/8gps8cx',
        'only_matching': True,
    }]

    def _real_extract(self, url):
        video_id = self._match_id(url)
        data = self._download_json(
            'https://core.subsplash.com/media/v1/media-items',
            video_id, headers=self._get_headers(url, video_id),
            query={
                'filter[short_code]': video_id,
                'include': 'images,audio.audio-outputs,audio.video,video.video-outputs,video.playlists,document,broadcast',
            })
        return self._extract_video(traverse_obj(data, ('_embedded', 'media-items', 0)), video_id)


class SubsplashPlaylistIE(SubsplashBaseIE):
    IE_NAME = 'subsplash:playlist'
    _VALID_URL = r'https?://(?:www\.)?subsplash\.com/[^/?#]+/(?:our-videos|media)/ms/\+(?P<id>\w+)'
    _PAGE_SIZE = 15
    _TESTS = [{
        'url': 'https://subsplash.com/skywatchtv/our-videos/ms/+dbyjzp8',
        'info_dict': {
            'id': 'dbyjzp8',
            'title': 'Five in Ten',
        },
        'playlist_mincount': 11,
    }, {
        'url': 'https://subsplash.com/prophecywatchers/media/ms/+n42mr48',
        'info_dict': {
            'id': 'n42mr48',