ytdl-org/youtube-dl · error · ExtractorError
Found song but don't know how to download it
Error message
Found song but don't know how to download it
What it means
Raised by MySpaceIE when the page identifies a song (the media branch matched) but none of the stream URL fields ('stream-url', 'hls-stream-url', 'http-stream-url'), 'vevo-id', or 'youtube-id' are present in the page's data. The extractor knows there is media but has no route to it. It is not marked expected, so it reads as an extraction bug.
Source
Thrown at youtube_dl/extractor/myspace.py:138
def search_data(name):
return self._search_regex(
r'''data-%s=([\'"])(?P<data>.*?)\1''' % name,
song_data, name, default='', group='data')
formats = formats_from_stream_urls(
search_data('stream-url'), search_data('hls-stream-url'),
search_data('http-stream-url'))
if not formats:
vevo_id = search_data('vevo-id')
youtube_id = search_data('youtube-id')
if vevo_id:
self.to_screen('Vevo video detected: %s' % vevo_id)
return self.url_result('vevo:%s' % vevo_id, ie='Vevo')
elif youtube_id:
self.to_screen('Youtube video detected: %s' % youtube_id)
return self.url_result(youtube_id, ie='Youtube')
else:
raise ExtractorError(
'Found song but don\'t know how to download it')
self._sort_formats(formats)
return {
'id': video_id,
'title': self._og_search_title(webpage),
'uploader': search_data('artist-name'),
'uploader_id': search_data('artist-username'),
'thumbnail': self._og_search_thumbnail(webpage),
'duration': int_or_none(search_data('duration')),
'formats': formats,
}
else:
video = self._parse_json(self._search_regex(
r'context = ({.*?});', webpage, 'context'),
video_id)['video']
formats = formats_from_stream_urls(
video.get('streamUrl'), video.get('hlsStreamUrl'),
video.get('mp4StreamUrl'), int_or_none(video.get('width')),View on GitHub (pinned to 956b8c5855)
Solutions
- Update youtube-dl, preferably switch to yt-dlp, for current MySpace parsing.
- Check the track page in a browser while logged in — session-only playback cannot be downloaded anonymously.
- If the song mirrors on Vevo/YouTube, search and download from there directly.
Example fix
pip install -U yt-dlp
Defensive patterns
Strategy: try-catch
Try / catch
except ExtractorError as e:
if "don't know how to download it" in str(e):
try_alternative_source(track_name) # e.g. search YouTube/Vevo mirrors
else:
raise Prevention
- Check the track page exposes a playable stream for anonymous visitors before batching.
- Update yt-dlp regularly — MySpace markup drift breaks these field lookups.
- Build fallbacks: many MySpace tracks mirror on YouTube/Vevo.
When it happens
Trigger: A MySpace music page where search_data() returns nothing for every stream URL key and both vevo-id and youtube-id fallbacks are absent.
Common situations: MySpace page markup/API changes after the extractor's last update; tracks only playable via authenticated sessions; deleted or region-limited tracks whose page shell still renders.
Related errors
- Invalid rendition field.
- Could not find video title
- Unable to extract embedUrl
- Letv cloud returned an unknown error
- couldn't extract vid and key
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/c0b2d9d7c0f99b54.
Report an issue: GitHub.