[soundcloud:pagedplaylist] Add ie and title to entries (#19022)
authorCory Hall <corydantehall@gmail.com>
Fri, 1 Feb 2019 01:51:37 +0000 (20:51 -0500)
committerSergey M․ <dstftw@gmail.com>
Sat, 2 Feb 2019 16:40:22 +0000 (23:40 +0700)
rel: https://github.com/rg3/youtube-dl/issues/19022

youtube_dl/extractor/soundcloud.py

index 13463ae4fe867d2a0697b536d189d3fabc344ef7..1c8d3c53bc61be8897611cd37a833db1d89f8e8a 100644 (file)
@@ -395,18 +395,20 @@ class SoundcloudPagedPlaylistBaseIE(SoundcloudPlaylistBaseIE):
             # Empty collection may be returned, in this case we proceed
             # straight to next_href
 
-            def resolve_permalink_url(candidates):
-                for cand in candidates:
+            def append_url_result(entries, item):
+                for cand in (item, item.get('track'), item.get('playlist')):
                     if isinstance(cand, dict):
                         permalink_url = cand.get('permalink_url')
-                        entry_id = self._extract_id(cand)
                         if permalink_url and permalink_url.startswith('http'):
-                            return permalink_url, entry_id
+                            return entries.append(
+                                self.url_result(
+                                    permalink_url,
+                                    ie=SoundcloudIE.ie_key() if SoundcloudIE.suitable(permalink_url) else None,
+                                    video_id=self._extract_id(cand),
+                                    video_title=cand.get('title')))
 
             for e in collection:
-                permalink_url, entry_id = resolve_permalink_url((e, e.get('track'), e.get('playlist')))
-                if permalink_url:
-                    entries.append(self.url_result(permalink_url, video_id=entry_id))
+                append_url_result(entries, e)
 
             next_href = response.get('next_href')
             if not next_href: