{"record":{"id":"59096d678b5606e7","repo":"ytdl-org/youtube-dl","slug":"this-video-has-been-removed-in-response-to-a-compl","errorCode":null,"errorMessage":"This video has been removed in response to a complaint received under the US Digital Millennium Copyright Act.","messagePattern":"This video has been removed in response to a complaint received under the US Digital Millennium Copyright Act\\.","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/vube.py","lineNumber":131,"sourceCode":"            if media['transcoding_status'] != 'processed':\n                continue\n            fmt = {\n                'url': 'http://video.thestaticvube.com/video/%s/%s.mp4' % (media['media_resolution_id'], public_id),\n                'abr': int(media['audio_bitrate']),\n                'format_id': compat_str(media['media_resolution_id']),\n            }\n            vbr = int(media['video_bitrate'])\n            if vbr:\n                fmt.update({\n                    'vbr': vbr,\n                    'height': int(media['height']),\n                })\n            formats.append(fmt)\n\n        self._sort_formats(formats)\n\n        if not formats and video.get('vst') == 'dmca':\n            raise ExtractorError(\n                'This video has been removed in response to a complaint received under the US Digital Millennium Copyright Act.',\n                expected=True)\n\n        title = video['title']\n        description = video.get('description')\n        thumbnail = self._proto_relative_url(video.get('thumbnail_src'), scheme='http:')\n        uploader = video.get('user_alias') or video.get('channel')\n        timestamp = int_or_none(video.get('upload_time'))\n        duration = video['duration']\n        view_count = video.get('raw_view_count')\n        like_count = video.get('total_likes')\n        dislike_count = video.get('total_hates')\n\n        comments = video.get('comments')\n        comment_count = None\n        if comments is None:\n            comment_data = self._download_json(\n                'http://vube.com/api/video/%s/comment' % video_id,","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vube.py#L113-L149","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Accept that the content is legally removed and stop trying to download it — no client-side fix exists.","Remove or mark the URL in your batch list and continue with --ignore-errors / -i so other videos proceed.","Verify by opening the Vube page in a browser; the site itself will show the takedown notice.","Look for a re-uploaded or official copy of the content elsewhere if you have a legitimate need."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    ydl.extract_info(url, download=True)\nexcept ExtractorError as e:\n    if 'Digital Millennium Copyright Act' in str(e):\n        log_skip(url, reason='dmca-takedown')\n    else:\n        raise","preventionTips":["Curate URL lists periodically to drop known-taken-down videos.","Run batch jobs with --ignore-errors so DMCA removals skip gracefully.","Treat 'dmca' status as permanent — do not retry the URL."],"tags":["dmca","copyright","takedown","extractor","vube"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}