U
    gH                     @   sD   d dl Z ddlmZ ddlmZmZmZmZmZ G dd deZ	dS )    N   )InfoExtractor   )int_or_noneparse_duration
remove_endxpath_element
xpath_textc                   @   sf   e Zd ZdZdddddddd	d
ddd
ddddddddd
dgZdd Zdd Zdd ZdS )DigitallySpeakingIEz\https?://(?:s?evt\.dispeak|events\.digitallyspeaking)\.com/(?:[^/]+/)+xml/(?P<id>[^.]+)\.xmlz7http://evt.dispeak.com/ubm/gdc/sf16/xml/840376_BQRC.xmlZ a8efb6c31ed06ca8739294960b2dbabdZ840376_BQRCZmp4z/Tenacious Design and The Interface of 'Destiny')idexttitle)urlmd5	info_dictzLhttp://events.digitallyspeaking.com/gdc/sf11/xml/12396_1299111843500GMPX.xmlT)r   Zonly_matchingzEhttp://sevt.dispeak.com/ubm/gdc/eur10/xml/11256_1282118587281VNIT.xmlzQhttps://sevt.dispeak.com/ubm/gdc/online12/xml/201210-822101_1349794556671DDDD.xmlz201210-822101_1349794556671DDDDflvz)Pre-launch - Preparing to Take the Plunge)r   r   z\http://events.digitallyspeaking.com/gdc/project25/xml/p25-miyamoto1999_1282467389849HSVB.xmlc                 C   s   g }d }t |dd d}|d k	r4td|}|d}|d krZt |dd d}|rZd| d}|d krfd}|d	}|sxd S |D ]h}t |d
dd}	td|	d}
||
 }t |d}t|}t| jd|
dd d}|||||d q||S )Nz
./mp4video)defaultz(?P<root>https?://.*?/).*rootZhttpHostzhttp:///z#http://s3-2u.digitallyspeaking.com/z./MBRVideos/MBRVideoZ
streamNameTfatalzmp4\:(?P<path>.*)pathbitratez-(\d+)\.mp4vbr)	format_idr   tbrr   )r	   rematchgroupfindallr   Z_search_regexappend)selfmetadatavideo_formatsZ
video_rootZ	mp4_videoZmobjZ	http_hostformatsZa_formatstream_name
video_pathr   r   r   r    r'   </tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/dispeak.py
_parse_mp4/   sD    


   
zDigitallySpeakingIE._parse_mp4c           
      C   s   g }t |ddd}|d}|D ]6}|d| dt|ddd	d
d|dd q dD ]N\}}}t |d| d}	|	s~q\|d| dt|	dd	| d||d q\|S )Nz./akamaiHostTr   z./audios/audiozrtmp://z/ondemand?ovpfv=1.1r   z.flvr   noner   code)r   	play_pathr   Zvcodecqualityr   ))ZslideZslides)speakerr/   z./ZVideoz video)r   r,   r   Zformat_noter-   r   )r	   r   r    r   get)
r!   r"   r$   Z
akamai_urlZaudiosaudioZ	video_keyr   Z
preferencer&   r'   r'   r(   
_parse_flvS   s2    




zDigitallySpeakingIE._parse_flvc                 C   sf   |  |}| ||}t|d}| |}|d kr<| |}||t|dddtt|dt|ddS )Nr"   r   Tr   ZendTimer/   )r   r$   r   durationZcreator)Z	_match_idZ_download_xmlr   r)   r3   r	   r   )r!   r   Zvideo_idZxml_descriptionr"   r#   r'   r'   r(   _real_extracto   s    



z!DigitallySpeakingIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr)   r3   r5   r'   r'   r'   r(   r
      s6   
$r
   )
r   commonr   utilsr   r   r   r   r	   r
   r'   r'   r'   r(   <module>   s   	