
    yfR                     J    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e      Z	y)    N   )InfoExtractor   )int_or_noneparse_duration
remove_endxpath_element
xpath_textc                   `    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 Zd Zd Zy)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           	         g }d }t        |dd       }|'t        j                  d|      }|j                  d      }|t        |dd       }|rd|z  }|d}|j	                  d      }|sy |D ]  }t        |d	d
      }	t        j                  d|	      j                  d      }
||
z   }t        |d      }t        |      }t        | j                  d|
dd             }|j                  ||||d        |S )Nz
./mp4video)defaultz(?P<root>https?://.*?/).*roothttpHostz
http://%s/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!   s                  :/usr/lib/python3/dist-packages/yt_dlp/extractor/dispeak.py
_parse_mp4zDigitallySpeakingIE._parse_mp4/   s+   
xtD	 888)DDF+J"8ZFI)I5
 ?J""#9: 	H$X|4HK"6DJJ6RJz)C 95Gg&Cd00
E4 1 A BC  $	" 	     c                 f   g }t        |dd      }|j                  d      }|D ]E  }|j                  d|z  t        |j	                  d      d      dd	d
|j	                  d      d       G dD ]@  \  }}}t        |d|z        }	|	s|j                  d|z  t        |	d      dd|z  ||d       B |S )Nz./akamaiHostTr   z./audios/audiozrtmp://%s/ondemand?ovpfv=1.1r   z.flvr   noner   code)r   	play_pathr   vcodecqualityr"   ))slideslides)speakerrA   z	./%sVideoz%s video)r   r;   r   format_noter=   r"   )r
   r'   r)   r   get)
r*   r+   r1   
akamai_urlaudiosaudio	video_keyr"   
preferencer4   s
             r5   
_parse_flvzDigitallySpeakingIE._parse_flvS   s    .E
!!"23 	ENN5
B'		%(8&A "YYv. 	1E 	,Iy*#HkI.EFJNN5
B'
F;)I5%& 	 r7   c           	      
   | j                  |      }| j                  ||      }t        |d      }| j                  |      }|| j	                  |      }||t        |dd      t        t        |d            t        |d      dS )Nr+   r   Tr   endTimerA   )r   r1   r   durationcreator)	_match_id_download_xmlr	   r6   rJ   r
   r   )r*   r   video_idxml_descriptionr+   r,   s         r5   _real_extractz!DigitallySpeakingIE._real_extracto   s    >>#&,,S(; *=1  OOH5M $'>&z(I'FG!(I6
 	
r7   N)__name__
__module____qualname__
_VALID_URL_TESTSr6   rJ   rS    r7   r5   r   r      s}    pJ I1H
		 ^ W c3@
 n3F>"H8
r7   r   )
r$   commonr   utilsr   r   r   r	   r
   r   rY   r7   r5   <module>r\      s#    	 ! r
- r
r7   