U
    gR'                     @   s   d dl Z d dlZd dlZd dlZd dlZddlm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G d	d
 d
eZdS )    N   )InfoExtractor   )HEADRequest)ExtractorErrorfloat_or_none
orderedSetstr_or_nonetry_getc                   @   s   e Zd ZdZdZddddddd	d
ddiddddddddd
ddidddddddddddddddddddddddddd d
ddidg	Zd!d" Zd#S )$GloboIEzV(?:globo:|https?://.+?\.globo\.com/(?:[^/]+/)*(?:v/(?:[^/]+/)?|videos/))(?P<id>\d{7,})Zglobozhttp://g1.globo.com/carros/autoesporte/videos/t/exclusivos-do-g1/v/mercedes-benz-gla-passa-por-teste-de-colisao-na-europa/3607726/Z3607726mp4u7   Mercedes-Benz GLA passa por teste de colisão na EuropagVY@ZG1Z2015)idexttitledurationuploaderuploader_idZskip_downloadT)url	info_dictparamsz%http://globoplay.globo.com/v/4581987/Z4581987uO   Acidentes de trânsito estão entre as maiores causas de queda de energia em SPgB`"?a@z
Rede GloboZ196zHhttp://canalbrasil.globo.com/programas/sangue-latino/videos/3928201.htmlr   Zonly_matchingz2http://globosatplay.globo.com/globonews/v/4472924/zJhttp://globotv.globo.com/t/programa/v/clipe-sexo-e-as-negas-adeus/3836166/zhttp://globotv.globo.com/canal-brasil/sangue-latino/t/todos-os-videos/v/ator-e-diretor-argentino-ricado-darin-fala-sobre-utopias-e-suas-perdas/3928201/zHhttp://canaloff.globo.com/programas/desejar-profundo/videos/4518560.htmlzglobo:3607726z'https://globoplay.globo.com/v/10248083/Z10248083uR   Melhores momentos: Equador 1 x 1 Brasil pelas Eliminatórias da Copa do Mundo 2022gʡE@ZSporTVZ698c                 C   sV  |  |}| td|d | d| d|d d }| dsZ|dd	krZ| | |d
 }g }| jd|d| dditd|ddddd	 d}| t|d d d |d |d d d }|s|d}|rt
| j d| d	d|d d }	dtdd  }
|	d!kr@|d"d# }|d$d  }|d d% }n:|	d&krz|dd' }|d(d  }|
d)7 }
d*|d d(  }tt|d+ |
 }|| d, 	 }tt|  d-}|| | }|d d d. }|d/ d0 |d1  |d2  }d3|||d4rd5nd6}| j||d7d8d9d:d;\}}|| |d< D ]>}|d=d>kr>||d?pdd@g dA|dAi q>t|dBdC tdDpi }| D ],\}}|r||pd@g dA|i qt|dEdC tdDpi }| D ],\}}|r||pd@g dA|i qt|dFdG}|dH}t |dI}|||||||dJS )KNzrhttps://globo-ab.globo.com/v2/selected-alternatives?experiments=player-isolated-experiment-02&skipImpressions=truezGetting cookiesz"http://api.globovideos.com/videos/z	/playlistZvideosr   Zallow_unplayable_formatsZ	encryptedTr   z1https://playback.video.globo.com/v2/video-sessionzDownloading security hash for zcontent-typezapplication/jsonZdesktopmaxZwidevinez$581b986b-4c40-71f0-5a58-803e579d5fa2z-3.0:00)Zplayer_typevideo_idZqualityZcontent_protectionZvsidtz)headersdatasourcesZurl_templatezGetting locksession cookietokenmessagez returned error: )expectedr   z%010dr   l    d(	 )Z04Z14            )02Z12Z03Z13      1Z05iQ Z0xAC10FD=Z	url_partsschemez://domainpathz{}?h={}&k=html5&a={}Zsubscriber_onlyFAr   Zm3u8_nativeZhlsF)Zentry_protocolZm3u8_idfatal	resourcestypeZsubtitlelanguageZporr   c                 S   s   | d d S )Nsource	subtitles xr4   r4   :/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/globo.py<lambda>       z'GloboIE._real_extract.<locals>.<lambda>)Zexpected_typec                 S   s   | d d S )Nr2   Zsubtitles_webvttr4   r5   r4   r4   r7   r8      r9   r   i  ZchannelZ
channel_id)r   r   r   r   r   formatsr3   )!	_match_idZ_request_webpager   Z_download_json	get_paramgetZ
report_drmjsondumpsencoder   ZIE_NAMErandomrandintstrintbase64urlsafe_b64encodehashlibmd5digestdecodestripformatZ#_extract_m3u8_formats_and_subtitlesextend
setdefaultappendr
   dictitemsr   r	   )selfr   r   videor   r:   securityZsecurity_hashr   Z	hash_codepaddingZreceived_timeZreceived_md5Zhash_prefixZpadded_sign_timeZmd5_dataZ
signed_md5Zsigned_hashr2   Zresource_urlZ
signed_urlZfmtsr3   resourcesubsZsub_langZsub_urlr   r   r   r4   r4   r7   _real_extractP   s    
 

   

 

     

 
 
 

zGloboIE._real_extractN)__name__
__module____qualname__
_VALID_URLZ_NETRC_MACHINE_TESTSrX   r4   r4   r4   r7   r      st   	 	 	 ;r   c                       s   e Zd ZdZddddd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dddddddddd dd!dgZe fd"d#Zd$d% Z  Z	S )&GloboArticleIEz=https?://.+?\.globo\.com/(?:[^/]+/)*(?P<id>[^/.]+)(?:\.html)?z"\bdata-video-id=["\'](\d{7,})["\']z*\bdata-player-videosids=["\'](\d{7,})["\']z \bvideosIDs\s*:\s*["\']?(\d{7,})z\bdata-id=["\'](\d{7,})["\']z <div[^>]+\bid=["\'](\d{7,})["\']z+<bs-player[^>]+\bvideoid=["\'](\d{8,})["\']z|http://g1.globo.com/jornal-nacional/noticia/2014/09/novidade-na-fiscalizacao-de-bagagem-pela-receita-provoca-discussoes.htmlzCnovidade-na-fiscalizacao-de-bagagem-pela-receita-provoca-discussoesuF   Novidade na fiscalização de bagagem pela Receita provoca discussõesz$md5:c3c4b4d4c30c32fce460040b1ac46b12)r   r   descriptionr   )r   r   Zplaylist_countzmhttp://g1.globo.com/pr/parana/noticia/2016/09/mpf-denuncia-lula-marisa-e-mais-seis-na-operacao-lava-jato.htmlz:mpf-denuncia-lula-marisa-e-mais-seis-na-operacao-lava-jatou@   Lula era o 'comandante máximo' do esquema da Lava Jato, diz MPFz$md5:8aa7cc8beda4dc71cc8553e00b77c54c   zjhttp://gq.globo.com/Prazeres/Poder/noticia/2015/10/all-o-desafio-assista-ao-segundo-capitulo-da-serie.htmlTr   zhttp://gshow.globo.com/programas/tv-xuxa/O-Programa/noticia/2014/01/xuxa-e-junno-namoram-muuuito-em-luau-de-zeze-di-camargo-e-luciano.htmlzWhttp://oglobo.globo.com/rio/a-amizade-entre-um-entregador-de-farmacia-um-piano-19946271zrhttps://ge.globo.com/video/ta-na-area-como-foi-assistir-ao-jogo-do-palmeiras-que-a-globo-nao-passou-10287094.ghtmlzQta-na-area-como-foi-assistir-ao-jogo-do-palmeiras-que-a-globo-nao-passou-10287094uL   Tá na Área: como foi assistir ao jogo do Palmeiras que a Globo não passouz$md5:2d089d036c4c9675117d3a56f8c61739zZhttps://redeglobo.globo.com/rpc/meuparana/noticia/a-producao-de-chocolates-no-parana.ghtmlz"a-producao-de-chocolates-no-paranau%   A produção de chocolates no Paranáz$md5:f2e3daf00ffd1dc0e9a8a6c7cfb0a89er   c                    s   t |rdS t |S )NF)r   suitablesuper)clsr   	__class__r4   r7   ra      s    zGloboArticleIE.suitablec           	         sx     |} ||}g } jD ]}|t|| q  fddt|D } | } 	d|} 
||||S )Nc                    s"   g | ]}  d | t qS )zglobo:)Z
url_resultr   Zie_key).0r   rR   r4   r7   
<listcomp>   s   z0GloboArticleIE._real_extract.<locals>.<listcomp>r_   )r;   Z_download_webpage_VIDEOID_REGEXESrM   refindallr   Z_og_search_titlerK   Z_html_search_metaZplaylist_result)	rR   r   Z
display_idZwebpageZ	video_idsZvideo_regexentriesr   r_   r4   rg   r7   rX      s    


zGloboArticleIE._real_extract)
rY   rZ   r[   r\   ri   r]   classmethodra   rX   __classcell__r4   r4   rd   r7   r^      sb   
			+r^   )rE   rG   r>   rA   rj   commonr   Z
networkingr   utilsr   r   r   r	   r
   r   r^   r4   r4   r4   r7   <module>   s   	 