U
    g                     @   s4   d dl mZ ddlmZmZmZ G dd deZdS )   )InfoExtractor   )int_or_noneparse_filesizeparse_iso8601c                   @   s<   e Zd ZdZdZdZdZddddd	d
dddZdd ZdS )UMGDeIEFzumg:dezUniversal Music DeutschlandzGhttps?://(?:www\.)?universal-music\.de/[^/]+/videos/[^/?#]+-(?P<id>\d+)zJhttps://www.universal-music.de/sido/videos/jedes-wort-ist-gold-wert-457803Z ebd90f48c80dcc82f77251eb1902634fZ457803mp4zJedes Wort ist Gold werti7ZZ20171218)idexttitle	timestampZupload_date)urlmd5Z	info_dictc                    s   |jddd idd d d }|d }d	d
t d g }g   fdd}|dg D ]}|d}|d}|rr|dkrqr|t|dt|dt|dd}	|d}
|
dkr||	 qr|
dkrr|d}|r||	d< |dkr|| j|dd}|rr|	d}|dkr>qr |	 qr sdd D ]}|| qT|t|d!t
|d"d#| d$S )%Nz#https://graphql.universal-music.de/queryz{
  universalMusic(channel:16) {
    video(id:%s) {
      headline
      formats {
        formatId
        url
        type
        width
        height
        mimeType
        fileSize
      }
      duration
      createdDate
    }
  }
})r   dataZuniversalMusicvideoZheadlinezJhttp://mediadelivery.universal-music-services.de/vod/mp4:autofill/storage//z/content/%s/file/playlist.m3u8c              
      s$     j|  ddddd d S )Nr   Zm3u8_nativeZhlsF)Zm3u8_idfatal)extendZ_extract_m3u8_formats)	format_idformatsZhls_url_templateselfZvideo_id 8/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/umg.pyadd_m3u8_format8   s        z.UMGDeIE._real_extract.<locals>.add_m3u8_formatr   r   ZmimeTypezapplication/mxfwidthheightZfileSize)r   r   r   filesizetypeZImageZVideoZformatIdr   z	video/mp4F)r   r   )   F    )ic  iD  i  durationZcreatedDate )r	   r   r"   r   
thumbnailsr   )Z	_match_idZ_download_jsonjoinlistgetr   r   appendZ_request_webpagereadr   )r   r   Z
video_datar   r$   r   fZf_urlZ	mime_typefmtZf_typer   ZurlhZ
first_byter   r   r   _real_extract   sp    
 






zUMGDeIE._real_extractN)	__name__
__module____qualname__Z_WORKINGZIE_NAMEZIE_DESCZ
_VALID_URLZ_TESTr,   r   r   r   r   r   	   s   r   N)commonr   utilsr   r   r   r   r   r   r   r   <module>   s   