ytdl-org/youtube-dl · error · ExtractorError

This video has been removed in response to a complaint recei

Error message

This video has been removed in response to a complaint received under the US Digital Millennium Copyright Act.

What it means

Raised by the Vube extractor when the video's API metadata has status field vst == 'dmca' and no playable formats were produced. Vube's backend marks the entry as taken down under a US DMCA complaint, so no media streams exist. youtube-dl surfaces this as an expected ExtractorError rather than attempting further downloads.

Source

Thrown at youtube_dl/extractor/vube.py:131

            if media['transcoding_status'] != 'processed':
                continue
            fmt = {
                'url': 'http://video.thestaticvube.com/video/%s/%s.mp4' % (media['media_resolution_id'], public_id),
                'abr': int(media['audio_bitrate']),
                'format_id': compat_str(media['media_resolution_id']),
            }
            vbr = int(media['video_bitrate'])
            if vbr:
                fmt.update({
                    'vbr': vbr,
                    'height': int(media['height']),
                })
            formats.append(fmt)

        self._sort_formats(formats)

        if not formats and video.get('vst') == 'dmca':
            raise ExtractorError(
                'This video has been removed in response to a complaint received under the US Digital Millennium Copyright Act.',
                expected=True)

        title = video['title']
        description = video.get('description')
        thumbnail = self._proto_relative_url(video.get('thumbnail_src'), scheme='http:')
        uploader = video.get('user_alias') or video.get('channel')
        timestamp = int_or_none(video.get('upload_time'))
        duration = video['duration']
        view_count = video.get('raw_view_count')
        like_count = video.get('total_likes')
        dislike_count = video.get('total_hates')

        comments = video.get('comments')
        comment_count = None
        if comments is None:
            comment_data = self._download_json(
                'http://vube.com/api/video/%s/comment' % video_id,

View on GitHub (pinned to 956b8c5855)

Solutions

  1. Accept that the content is legally removed and stop trying to download it — no client-side fix exists.
  2. Remove or mark the URL in your batch list and continue with --ignore-errors / -i so other videos proceed.
  3. Verify by opening the Vube page in a browser; the site itself will show the takedown notice.
  4. Look for a re-uploaded or official copy of the content elsewhere if you have a legitimate need.
Defensive patterns

Strategy: try-catch

Try / catch

try:
    ydl.extract_info(url, download=True)
except ExtractorError as e:
    if 'Digital Millennium Copyright Act' in str(e):
        log_skip(url, reason='dmca-takedown')
    else:
        raise

Prevention

When it happens

Trigger: Calling the Vube extractor on a video whose JSON metadata contains video['vst'] == 'dmca' while the media list yields zero formats; the check runs after format extraction and _sort_formats, only when formats is empty.

Common situations: Following an old link to a Vube video that was taken down after a rights-holder complaint; batch-archiving URLs where some targets have been DMCA-removed since the list was built.

Related errors


AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14). Data as JSON: /api/errors/59096d678b5606e7. Report an issue: GitHub.