Skip to content

Commit

Permalink
[YouTube] Support ... /feeds/videos.xml?playlist_id={pl_id}
Browse files Browse the repository at this point in the history
  • Loading branch information
dirkf committed Jan 15, 2025
1 parent 21fff05 commit 55ad8a2
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions youtube_dl/extractor/youtube.py
Original file line number Diff line number Diff line change
Expand Up @@ -3601,10 +3601,23 @@ def _extract_identity_token(self, ytcfg, webpage):
def _real_extract(self, url):
item_id = self._match_id(url)
url = update_url(url, netloc='www.youtube.com')
# Handle both video/playlist URLs
qs = parse_qs(url)
video_id = qs.get('v', [None])[0]
playlist_id = qs.get('list', [None])[0]

def qs_get(key, default=None):
return qs.get(key, [default])[-1]

# Go around for /feeds/videos.xml?playlist_id={pl_id}
if item_id == 'feeds' and '/feeds/videos.xml?' in url:
playlist_id = qs_get('playlist_id')
if playlist_id:
return self.url_result(
update_url_query('https://www.youtube.com/playlist', {
'list': playlist_id,
}), ie=self.ie_key(), video_id=playlist_id)

# Handle both video/playlist URLs
video_id = qs_get('v')
playlist_id = qs_get('list')
if video_id and playlist_id:
if self._downloader.params.get('noplaylist'):
self.to_screen('Downloading just video %s because of --no-playlist' % video_id)
Expand Down

0 comments on commit 55ad8a2

Please sign in to comment.