a
    h                     @   s8   d dl mZ ddlmZmZmZmZ G dd deZdS )   )InfoExtractor   )ExtractorErrordetermine_extparse_durationurlencode_postdatac                   @   s   e Zd ZdZdZde dZde dgZdd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dddddd d!gZd"d# Z	d$d% Z
d&d' Zd-d)d*Zd+d, ZdS ).WimTVIENz7[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}z(?x:
        https?://platform\.wim\.tv/
        (?:
            (?:embed/)?\?
            |\#/webtv/.+?/
        )
        (?P<type>vod|live|cast)[=/]
        (?P<id>z).*?)z<iframe[^>]+src=["\'](?P<url>)zGhttps://platform.wim.tv/embed/?vod=db29fb32-bade-47b6-a3a6-cb69fe80267az$db29fb32-bade-47b6-a3a6-cb69fe80267amp4z"AMA SUPERCROSS 2020 - R2 ST. LOUISiQ  z"re:https?://.+?/thumbnail/.+?/720$)idexttitleduration	thumbnailzInvalid URL)urlmd5	info_dictskipzWhttps://platform.wim.tv/embed/?live=28e22c22-49db-40f3-8c37-8cbb0ff44556&autostart=truez$28e22c22-49db-40f3-8c37-8cbb0ff44556zStreaming MSmotorTVT)r   r   r   is_live)r   r   r   zVhttps://platform.wim.tv/#/webtv/automotornews/vod/422492b6-539e-474d-9c6b-68c9d5893365)r   Zonly_matchingz\https://platform.wim.tv/#/webtv/renzoarborechannel/cast/f47e0d15-5b45-455e-bf0d-dba8ffa96365z9http://www.renzoarborechannel.tv/50_sorrisi_da_napoli.htmZ50_sorrisi_da_napoliz0Renzo Arbore Channel . TV - 50 Sorrisi da Napoli    iD`Z20210202)r   r   Z	age_limit	timestampZupload_date(   )r   r   Zplaylist_countc                 C   s   | j s|   d S )N)_player_get_player_data)self r   K/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/wimtv.py_real_initialize?   s    zWimTVIE._real_initializec                 C   s   d}i | _ ddddgdddd	dd
ddgdg}|D ]X}| |d |}|d D ]:}| |d ||}|std|d || j |d < qVq:d S )NzPlayer dataz<https://platform.wim.tv/common/libs/player/wimtv/wim-rest.jszappAuth = "(.+?)"app_auth)regexvariable)r   varsz7https://platform.wim.tv/common/config/endpointconfig.jsz#PRODUCTION_HOSTNAME_THUMB = "(.+?)"thumb_serverz(PRODUCTION_HOSTNAME_THUMB\s*\+\s*"(.+?)"thumb_server_pathr   r!   r   z{} not foundr    )r   Z_download_webpageZ_search_regexr   format)r   Zmsg_idZdatasdatatempvarvalr   r   r   r   C   s0    zWimTVIE._get_player_datac                 C   sD   | j dddd| jd itddid}|d	}|s@td
|S )Nz0https://platform.wim.tv/wimtv-server/oauth/tokenzToken generationAuthorizationzBasic {}r   Z
grant_typeZclient_credentialsheadersr%   Zaccess_tokenzaccess token not generated)_download_jsonr$   r   r   getr   )r   jsontokenr   r   r   _generate_token`   s    

zWimTVIE._generate_token720c                 C   sF   |r| j dsd S | j ds*d| j d< d| j d | j d ||S )Nr"   r#    z{}{}/asset/thumbnail/{}/{})r   r-   r$   )r   Zthumb_idwidthr   r   r   _generate_thumbnailj   s    
zWimTVIE._generate_thumbnailc              	   C   s4  |  | }|d }d  }}|d dv r<|d d }d}nd}d}|  }| jd| d	| d
|d| dddd}g }|dpg D ]`}	|	ddkr|| |	d|d |	ddkr|d|	dt|	dd|d q|d}| 	|d}
||dp|dt
|d||
|dS )Nr   type>   Zlivecastz/channelTZvodFz0https://platform.wim.tv/wimtv-server/api/public//z/playzBearer zapplication/json)r)   zContent-Types   {}r*   ZsrcsZmimeTypezapplication/x-mpegurlZuniqueStreamerr
   zvideo/flashZrtmpZflv)Z	format_idr   r   Z	rtmp_liveresourceZthumbnailIdr   namer   )r   r   r   formatsr   r   )Z_match_valid_url	groupdictr0   r,   r-   extendZ_extract_m3u8_formatsappendr   r4   r   )r   r   ZurlcZvideo_idZstream_typer   r/   r.   r:   srcZthumbr   r   r   _real_extractt   sR    

zWimTVIE._real_extract)r1   )__name__
__module____qualname__r   Z_UUID_REZ
_VALID_URLZ_EMBED_REGEXZ_TESTSZ_WEBPAGE_TESTSr   r   r0   r4   r?   r   r   r   r   r   
   sZ   


r   N)commonr   utilsr   r   r   r   r   r   r   r   r   <module>   s   