
    yf'                         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
 ddlmZmZmZmZmZ  G d d	e      Z G d
 de      Zy)    N   )InfoExtractor   )
compat_str)HEADRequest)ExtractorErrorfloat_or_none
orderedSetstr_or_nonetry_getc                       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! Zy")#GloboIEzV(?:globo:|https?://.+?\.globo\.com/(?:[^/]+/)*(?:v/(?:[^/]+/)?|videos/))(?P<id>\d{7,})globozhttp://g1.globo.com/carros/autoesporte/videos/t/exclusivos-do-g1/v/mercedes-benz-gla-passa-por-teste-de-colisao-na-europa/3607726/3607726mp4u7   Mercedes-Benz GLA passa por teste de colisão na EuropagVY@G12015)idexttitledurationuploaderuploader_idskip_downloadT)url	info_dictparamsz%http://globoplay.globo.com/v/4581987/4581987uO   Acidentes de trânsito estão entre as maiores causas de queda de energia em SPgB`"?a@z
Rede Globo196zHhttp://canalbrasil.globo.com/programas/sangue-latino/videos/3928201.htmlr   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/10248083uR   Melhores momentos: Equador 1 x 1 Brasil pelas Eliminatórias da Copa do Mundo 2022gʡE@SporTV698c                    | j                  |      }| j                  t        d      |d       | j                  d|z  |      d   d   }| j	                  d      s$|j                  d      du r| j                  |       |d	   }g }| j                  d
|d|z  ddit        j                  d|ddddd      j                               }| j                  t        |d   d   d         |d       |d   d   d   }|s/|j                  d      }|rt        | j                  d|d      |d d }	dt        j                  dd      z  }
|	d v r|d!d" }|d#d  }|d d$ }n|	d%v r|dd& }|d'd  }|
d(z  }
d)|d d' z   }t        t              d*z         |
z   }|z   d+z   j                         }t!        j"                  t%        j&                  |      j)                               j+                         j-                  d,      }|z   |z   }|d   d   d-   }|d.   d/z   |d0   z   |d1   z   }|d2|d3|j                  d4      rd5nd6}| j/                  ||d7d8d9d:;      \  }}|j1                  |       |d<   D ]\  }|j                  d=      d>k(  s|j3                  |j                  d?      xs d@g       j5                  dA|j                  dA      i       ^ t7        |dB t8        C      xs i }|j;                         D ]/  \  }}|s	|j3                  |xs d@g       j5                  dA|i       1 t7        |dD t8        C      xs i }|j;                         D ]/  \  }}|s	|j3                  |xs d@g       j5                  dA|i       1 t=        |j                  dE      dF      }|j                  dG      }t?        |j                  dH            }|||||||dIS )JNzrhttps://globo-ab.globo.com/v2/selected-alternatives?experiments=player-isolated-experiment-02&skipImpressions=truezGetting cookiesz-http://api.globovideos.com/videos/%s/playlistvideosr   allow_unplayable_formats	encryptedTr   z1https://playback.video.globo.com/v2/video-sessionz Downloading security hash for %szcontent-typezapplication/jsondesktopmaxwidevinez$581b986b-4c40-71f0-5a58-803e579d5fa2z-3.0:00)player_typevideo_idqualitycontent_protectionvsidtz)headersdatasourcesurl_templatezGetting locksession cookietokenmessagez returned error: )expectedr   z%010dr   l    d(	 )0414            )02120313      105iQ 0xAC10FD=	url_partsschemez://domainpathz?h=z&k=html5&a=subscriber_onlyFAr   m3u8_nativehlsF)entry_protocolm3u8_idfatal	resourcestypesubtitlelanguageporr   c                     | d   d   S )Nsource	subtitles xs    8/usr/lib/python3/dist-packages/yt_dlp/extractor/globo.py<lambda>z'GloboIE._real_extract.<locals>.<lambda>   s    1X;{+C     )expected_typec                     | d   d   S )Nr[   subtitles_webvttr]   r^   s    r`   ra   z'GloboIE._real_extract.<locals>.<lambda>   s    1X;7I+J rb   r   i  channel
channel_id)r   r   r   r   r   formatsr\   ) 	_match_id_request_webpager   _download_json	get_paramget
report_drmjsondumpsencoder   IE_NAMErandomrandintr   intbase64urlsafe_b64encodehashlibmd5digestdecodestrip#_extract_m3u8_formats_and_subtitlesextend
setdefaultappendr   dictitemsr	   r   )selfr   r-   videor   rh   securitysecurity_hashr7   	hash_codepaddingreceived_timereceived_md5hash_prefixpadded_sign_timemd5_data
signed_md5signed_hashr[   resource_url
signed_urlfmtsr\   resourcesubssub_langsub_urlr   r   r   s                                 r`   _real_extractzGloboIE._real_extractS   sn   >>#&  M  N'	) ##;hF  !# ~~89eii>TX\>\OOH%g&&?KmpxKx#%78tzz($ &0>K @ vx ' 	 	k(9*=a*@*PQS[]yz +A.w7ll9-G$/3||WEPTV V ""1%	FNN1k::$)!B/M(-L',K22)!B/M(-LsNGs!33K%c-&85&@AGK #33j@HHJ--gkk(.C.J.J.LMTTV\\]`a
!$44zA)$Q'4h'%/&2BBVF^S/;[QVQZQZ[lQm#svJvw
BB%u\a C citk* 	H||F#z1$$X\\*%=%FKRR8<<.T 	
 x!CSWX^\^!% 	Hg$$X%6;BB7D 	
 x!JZ^_ece!% 	Hg$$X%6;BB7D 	 !:!6=99Y'!%))L"9:   &"
 	
rb   N)__name__
__module____qualname__
_VALID_URL_NETRC_MACHINE_TESTSr   r]   rb   r`   r   r      s    jJN TN!
 T
 7f$ 
 T
 Z D \ i Z  9i  
 T
Y9FvZ
rb   r   c                        e Zd ZdZg d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       Zd Z x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   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                 X    t         j                  |      rdS t        t        |   |      S )NF)r   suitablesuperr   )clsr   	__class__s     r`   r   zGloboArticleIE.suitable   s(    ((-u[53VWZ3[[rb   c                    | j                  |      }| j                  ||      }g }| j                  D ]'  }|j                  t	        j
                  ||             ) t        |      D cg c])  }| j                  d|z  t        j                               + }}| j                  |      j                         }| j                  d|      }	| j                  ||||	      S c c}w )Nzglobo:%sr   )ri   _download_webpage_VIDEOID_REGEXESr~   refindallr
   
url_resultr   ie_key_og_search_titler|   _html_search_metaplaylist_result)
r   r   
display_idwebpage	video_idsvideo_regexr-   entriesr   r   s
             r`   r   zGloboArticleIE._real_extract   s    ^^C(
((j9	00 	?KRZZW=>	? 'y13 OOJ17>>3CD3 3 %%g.446,,]GD##GZLL3s   ).C)
r   r   r   r   r   r   classmethodr   r   __classcell__)r   s   @r`   r   r      s    QJ NW]A

  NWA

  | \ i DecA

  l6<A

 C)FV \ \Mrb   r   )rv   rx   ro   rs   r   commonr   compatr   
networkingr   utilsr   r	   r
   r   r   r   r   r]   rb   r`   <module>r      sJ        	 ! % X
m X
vFM] FMrb   