mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 22:57:08 -05:00 
			
		
		
		
	[bilibili] Fix extraction (Closes #4660)
This commit is contained in:
		@@ -4,9 +4,7 @@ from __future__ import unicode_literals
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from ..compat import compat_parse_qs
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    int_or_none,
 | 
			
		||||
    unified_strdate,
 | 
			
		||||
)
 | 
			
		||||
@@ -54,19 +52,14 @@ class BiliBiliIE(InfoExtractor):
 | 
			
		||||
        thumbnail = self._html_search_meta(
 | 
			
		||||
            'thumbnailUrl', video_code, 'thumbnail', fatal=False)
 | 
			
		||||
 | 
			
		||||
        player_params = compat_parse_qs(self._html_search_regex(
 | 
			
		||||
            r'<iframe .*?class="player" src="https://secure\.bilibili\.(?:tv|com)/secure,([^"]+)"',
 | 
			
		||||
            webpage, 'player params'))
 | 
			
		||||
 | 
			
		||||
        if 'cid' in player_params:
 | 
			
		||||
            cid = player_params['cid'][0]
 | 
			
		||||
        cid = self._search_regex(r'cid=(\d+)', webpage, 'cid')
 | 
			
		||||
 | 
			
		||||
        lq_doc = self._download_xml(
 | 
			
		||||
                'http://interface.bilibili.cn/v_cdn_play?cid=%s' % cid,
 | 
			
		||||
            'http://interface.bilibili.com/v_cdn_play?appkey=1&cid=%s' % cid,
 | 
			
		||||
            video_id,
 | 
			
		||||
            note='Downloading LQ video info'
 | 
			
		||||
        )
 | 
			
		||||
            lq_durl = lq_doc.find('.//durl')
 | 
			
		||||
        lq_durl = lq_doc.find('./durl')
 | 
			
		||||
        formats = [{
 | 
			
		||||
            'format_id': 'lq',
 | 
			
		||||
            'quality': 1,
 | 
			
		||||
@@ -76,13 +69,13 @@ class BiliBiliIE(InfoExtractor):
 | 
			
		||||
        }]
 | 
			
		||||
 | 
			
		||||
        hq_doc = self._download_xml(
 | 
			
		||||
                'http://interface.bilibili.cn/playurl?cid=%s' % cid,
 | 
			
		||||
            'http://interface.bilibili.com/playurl?appkey=1&cid=%s' % cid,
 | 
			
		||||
            video_id,
 | 
			
		||||
            note='Downloading HQ video info',
 | 
			
		||||
            fatal=False,
 | 
			
		||||
        )
 | 
			
		||||
        if hq_doc is not False:
 | 
			
		||||
                hq_durl = hq_doc.find('.//durl')
 | 
			
		||||
            hq_durl = hq_doc.find('./durl')
 | 
			
		||||
            formats.append({
 | 
			
		||||
                'format_id': 'hq',
 | 
			
		||||
                'quality': 2,
 | 
			
		||||
@@ -91,8 +84,6 @@ class BiliBiliIE(InfoExtractor):
 | 
			
		||||
                'filesize': int_or_none(
 | 
			
		||||
                    hq_durl.find('./size'), get_attr='text'),
 | 
			
		||||
            })
 | 
			
		||||
        else:
 | 
			
		||||
            raise ExtractorError('Unsupported player parameters: %r' % (player_params,))
 | 
			
		||||
 | 
			
		||||
        self._sort_formats(formats)
 | 
			
		||||
        return {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user