ytdl-org/youtube-dl · error · ExtractorError
%s: No songs found, try using proxy
Error message
%s: No songs found, try using proxy
What it means
Raised by MySpacePlaylistIE when the playlist page HTML contains zero "music:song" content entries. Because MySpace serves region-dependent pages, the message explicitly suggests a proxy. It is expected=True, so it fails that playlist cleanly.
Source
Thrown at youtube_dl/extractor/myspace.py:200
'playlist_count': 14,
'skip': 'this album is only available in some countries',
}, {
'url': 'https://myspace.com/killsorrow/music/album/the-demo-18596029',
'info_dict': {
'title': 'The Demo',
'id': '18596029',
},
'playlist_count': 5,
}]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
playlist_id = mobj.group('id')
display_id = mobj.group('title') + playlist_id
webpage = self._download_webpage(url, display_id)
tracks_paths = re.findall(r'"music:song" content="(.*?)"', webpage)
if not tracks_paths:
raise ExtractorError(
'%s: No songs found, try using proxy' % display_id,
expected=True)
entries = [
self.url_result(t_path, ie=MySpaceIE.ie_key())
for t_path in tracks_paths]
return {
'_type': 'playlist',
'id': playlist_id,
'display_id': display_id,
'title': self._og_search_title(webpage),
'entries': entries,
}
View on GitHub (pinned to 956b8c5855)
Solutions
- Retry with a proxy: --proxy <us-proxy-url> as the message suggests.
- Verify the playlist URL still lists tracks in a browser (it may simply be deleted or made private).
- Update youtube-dl / use yt-dlp in case the page markup changed.
Example fix
# before youtube-dl https://myspace.com/<artist>/mixtape/... # after youtube-dl --proxy http://us-proxy:8080 https://myspace.com/<artist>/mixtape/...
Defensive patterns
Strategy: retry
Validate before calling
import requests
html = requests.get(playlist_url, proxies=us_proxy).text
if '"music:song" content=' not in html:
print('no tracks visible — playlist deleted or region-served') # skip extractor Try / catch
except ExtractorError as e:
if e.expected and 'No songs found' in str(e):
retry(url, proxy=get_us_proxy()) # message itself suggests proxy
else:
raise Prevention
- Route MySpace requests through a US residential-style proxy by default.
- Verify playlists in a browser before archiving; deleted ones render empty shells.
- Distinguish empty-because-deleted from empty-because-region: only the latter benefits from a proxy.
When it happens
Trigger: Downloading a MySpace playlist whose webpage has no matches for the regex '"music:song" content="(.*?)"'.
Common situations: Requests routed through IPs (often non-US or datacenter) for which MySpace returns an empty/alternate page; deleted playlists; extractor markup drift on older versions.
Related errors
- This video is not available from your country.
- %s said: video is not available
- %s returned error: %s - %s
- %s (site code %d)
- Invalid url for track %d of album url %s
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/cfeb4742141cda69.
Report an issue: GitHub.