U
    g                     @   sH   d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
 G dd deZdS )   )InfoExtractor   )ExtractorErrordetermine_extint_or_nonemimetype2extparse_iso8601strip_jsonpunified_timestampurl_or_nonec                   @   s   e Zd Zdd ZdS )AMPIEc              
      s  | j |d ddtd}|di d  s@td| j|d  d }d0 fd	d
	}g }|d}|rt|trv|g}|D ]R}|di }t|d}	|	sqz|	| 
|	dt|dt|dd qzi }
|d}|rTt|tr|g}|D ]^}|di }t|d}|sq|
|dp,dg 	|t|dpJt|d qg }|d}t|trr|g}|D ]}|di }t|d}|sqvt|dpt|}|dkr|| j|d |ddd n||dkr| j||dd dd!\}}|| | j||
d" n@|	|d#i di d$|t|d%t|d&|d' qvt d(d)p|t d*}||d+|d,||t|d- di d.|
|d/S )1NzDownloading Akamai AMP feedz"Unable to download Akamai AMP feed)Ztransform_sourceZchannelitemz{} said: {}errorZguidc                    s8   d|  }  dp }| |p6  |p6  | |S )Nzmedia-zmedia-group)get)namedefaultZ
media_nameZmedia_groupr    8/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/amp.pyget_media_node   s    
z0AMPIE._extract_feed_info.<locals>.get_media_node	thumbnailz@attributesurlzhttp:widthheight)r   r   r   ZsubTitlehreflangentype)r   extcontentZf4mz'?hdcore=3.4.0&plugin=aasp-3.4.0.132.124ZhdsF)Zf4m_idfatalZm3u8Zmp4Zhls)Zm3u8_idr    )targetzmedia-categorylabelZbitrateZfileSize)Z	format_idr   Ztbrfilesizer   ZpubDate zdc-datetitledescription    duration)idr%   r&   
thumbnails	timestampr(   	subtitlesformats)N)Z_download_jsonr	   r   r   formatZIE_NAME
isinstancedictr   appendZ_proto_relative_urlr   
setdefaultr   r   extendZ_extract_f4m_formatsZ#_extract_m3u8_formats_and_subtitlesZ_merge_subtitlesr
   r   )selfr   feedZvideo_idr   r*   Zmedia_thumbnailZthumbnail_datar   Zthumbnail_urlr,   Zmedia_subtitleZsubtitle_dataZsubtitleZsubtitle_hrefr-   Zmedia_contentZ
media_dataZmediaZ	media_urlr   Zfmtssubsr+   r   r   r   _extract_feed_info   s       





  

    

 zAMPIE._extract_feed_infoN)__name__
__module____qualname__r7   r   r   r   r   r      s   r   N)commonr   utilsr   r   r   r   r   r	   r
   r   r   r   r   r   r   <module>   s   (