o
    iH                     @   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.xml a8efb6c31ed06ca8739294960b2dbabd840376_BQRC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   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 urtd|}|d}|d u r-t |dd d}|r-d| d}|d u r3d}|d	}|s<d S |D ]4}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?://.*?/).*roothttpHostzhttp:///z#http://s3-2u.digitallyspeaking.com/z./MBRVideos/MBRVideo
streamNameTfatalzmp4\:(?P<path>.*)pathbitratez-(\d+)\.mp4vbr)	format_idr   tbrr   )r	   rematchgroupfindallr   _search_regexappend)selfmetadatavideo_formats
video_root	mp4_videomobj	http_hostformatsa_formatstream_name
video_pathr   r   r!   r    r3   L/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/dispeak.py
_parse_mp4/   s>   



zDigitallySpeakingIE._parse_mp4c           
      C   s   g }t |ddd}|d}|D ]}|d| dt|ddd	d
d|dd qdD ]'\}}}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   vcodecqualityr    ))slideslides)speakerr>   z./Videoz video)r   r8   r   format_noter:   r    )r	   r%   r'   r   get)
r(   r)   r/   
akamai_urlaudiosaudio	video_keyr    
preferencer2   r3   r3   r4   
_parse_flvS   s2   




zDigitallySpeakingIE._parse_flvc                 C   sf   |  |}| ||}t|d}| |}|d u r| |}||t|dddtt|dt|ddS )Nr)   r   Tr   endTimer>   )r   r/   r   durationcreator)	_match_id_download_xmlr   r5   rH   r	   r   )r(   r   video_idxml_descriptionr)   r*   r3   r3   r4   _real_extracto   s   



z!DigitallySpeakingIE._real_extractN)__name__
__module____qualname__
_VALID_URL_TESTSr5   rH   rP   r3   r3   r3   r4   r
      s8    
$r
   )
r"   commonr   utilsr   r   r   r   r	   r
   r3   r3   r3   r4   <module>   s    	