mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 07:17:07 -05:00 
			
		
		
		
	[periscope:user] Adapt to layout changes (Closes #9563)
This commit is contained in:
		@@ -2,7 +2,10 @@
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..utils import parse_iso8601
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    parse_iso8601,
 | 
			
		||||
    unescapeHTML,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PeriscopeIE(InfoExtractor):
 | 
			
		||||
@@ -92,6 +95,7 @@ class PeriscopeUserIE(InfoExtractor):
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': 'LularoeHusbandMike',
 | 
			
		||||
            'title': 'LULAROE HUSBAND MIKE',
 | 
			
		||||
            'description': 'md5:6cf4ec8047768098da58e446e82c82f0',
 | 
			
		||||
        },
 | 
			
		||||
        # Periscope only shows videos in the last 24 hours, so it's possible to
 | 
			
		||||
        # get 0 videos
 | 
			
		||||
@@ -103,16 +107,19 @@ class PeriscopeUserIE(InfoExtractor):
 | 
			
		||||
 | 
			
		||||
        webpage = self._download_webpage(url, user_id)
 | 
			
		||||
 | 
			
		||||
        broadcast_data = self._parse_json(self._html_search_meta(
 | 
			
		||||
            'broadcast-data', webpage, default='{}'), user_id)
 | 
			
		||||
        username = broadcast_data.get('user', {}).get('display_name')
 | 
			
		||||
        user_broadcasts = self._parse_json(
 | 
			
		||||
            self._html_search_meta('user-broadcasts', webpage, default='{}'),
 | 
			
		||||
        data_store = self._parse_json(
 | 
			
		||||
            unescapeHTML(self._search_regex(
 | 
			
		||||
                r'data-store=(["\'])(?P<data>.+?)\1',
 | 
			
		||||
                webpage, 'data store', default='{}', group='data')),
 | 
			
		||||
            user_id)
 | 
			
		||||
 | 
			
		||||
        user = data_store.get('User', {}).get('user', {})
 | 
			
		||||
        title = user.get('display_name') or user.get('username')
 | 
			
		||||
        description = user.get('description')
 | 
			
		||||
 | 
			
		||||
        entries = [
 | 
			
		||||
            self.url_result(
 | 
			
		||||
                'https://www.periscope.tv/%s/%s' % (user_id, broadcast['id']))
 | 
			
		||||
            for broadcast in user_broadcasts.get('broadcasts', [])]
 | 
			
		||||
            for broadcast in data_store.get('UserBroadcastHistory', {}).get('broadcasts', [])]
 | 
			
		||||
 | 
			
		||||
        return self.playlist_result(entries, user_id, username)
 | 
			
		||||
        return self.playlist_result(entries, user_id, title, description)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user