mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	[vlive:playlist] Redirect to video extractor when no playlist is found (#20590)
This commit is contained in:
		
							parent
							
								
									ef19739e64
								
							
						
					
					
						commit
						178663df52
					
				| @ -332,26 +332,43 @@ class VLiveChannelIE(InfoExtractor): | ||||
| class VLivePlaylistIE(InfoExtractor): | ||||
|     IE_NAME = 'vlive:playlist' | ||||
|     _VALID_URL = r'https?://(?:(?:www|m)\.)?vlive\.tv/video/(?P<video_id>[0-9]+)/playlist/(?P<id>[0-9]+)' | ||||
|     _TEST = { | ||||
|     _VIDEO_URL_TEMPLATE = 'http://www.vlive.tv/video/%s' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://www.vlive.tv/video/117956/playlist/117963', | ||||
|         'info_dict': { | ||||
|             'id': '117963', | ||||
|             'title': '아이돌룸(IDOL ROOM) 41회 - (여자)아이들' | ||||
|         }, | ||||
|         'playlist_mincount': 10 | ||||
|     }, { | ||||
|         'url': 'http://www.vlive.tv/video/22867/playlist/22912', | ||||
|         'info_dict': { | ||||
|             'id': '22912', | ||||
|             'title': 'Valentine Day Message from TWICE' | ||||
|             'id': '22867', | ||||
|             'ext': 'mp4', | ||||
|             'title': '[V LIVE] Valentine Day Message from MINA', | ||||
|             'creator': "TWICE", | ||||
|             'view_count': int | ||||
|         }, | ||||
|         'playlist_mincount': 9 | ||||
|     } | ||||
|         'params': { | ||||
|             'skip_download': True, | ||||
|         } | ||||
|     }] | ||||
| 
 | ||||
|     def _build_video_result(self, video_id, message): | ||||
|         self.to_screen(message) | ||||
|         return self.url_result( | ||||
|             self._VIDEO_URL_TEMPLATE % video_id, | ||||
|             ie=VLiveIE.ie_key(), video_id=video_id) | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         video_id, playlist_id = mobj.group('video_id', 'id') | ||||
| 
 | ||||
|         VIDEO_URL_TEMPLATE = 'http://www.vlive.tv/video/%s' | ||||
|         if self._downloader.params.get('noplaylist'): | ||||
|             self.to_screen( | ||||
|                 'Downloading just video %s because of --no-playlist' % video_id) | ||||
|             return self.url_result( | ||||
|                 VIDEO_URL_TEMPLATE % video_id, | ||||
|                 ie=VLiveIE.ie_key(), video_id=video_id) | ||||
|             return self._build_video_result( | ||||
|                 video_id, | ||||
|                 'Downloading just video %s because of --no-playlist' | ||||
|                 % video_id) | ||||
| 
 | ||||
|         self.to_screen( | ||||
|             'Downloading playlist %s - add --no-playlist to just download video' | ||||
| @ -361,15 +378,21 @@ class VLivePlaylistIE(InfoExtractor): | ||||
|             'http://www.vlive.tv/video/%s/playlist/%s' | ||||
|             % (video_id, playlist_id), playlist_id) | ||||
| 
 | ||||
|         item_ids = self._parse_json( | ||||
|             self._search_regex( | ||||
|                 r'playlistVideoSeqs\s*=\s*(\[[^]]+\])', webpage, | ||||
|                 'playlist video seqs'), | ||||
|             playlist_id) | ||||
|         raw_item_ids = self._search_regex( | ||||
|             r'playlistVideoSeqs\s*=\s*(\[[^]]+\])', webpage, | ||||
|             'playlist video seqs', default=None, fatal=False) | ||||
| 
 | ||||
|         if not raw_item_ids: | ||||
|             return self._build_video_result( | ||||
|                 video_id, | ||||
|                 'Downloading just video %s because no playlist was found' | ||||
|                 % video_id) | ||||
| 
 | ||||
|         item_ids = self._parse_json(raw_item_ids, playlist_id) | ||||
| 
 | ||||
|         entries = [ | ||||
|             self.url_result( | ||||
|                 VIDEO_URL_TEMPLATE % item_id, ie=VLiveIE.ie_key(), | ||||
|                 self._VIDEO_URL_TEMPLATE % item_id, ie=VLiveIE.ie_key(), | ||||
|                 video_id=compat_str(item_id)) | ||||
|             for item_id in item_ids] | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 biwubo
						biwubo