a
    h#                     @   s   d dl Z d dlZd dlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ G dd deZG d	d
 d
eZdS )    N   )InfoExtractor   )determine_extfilter_dictfloat_or_noneint_or_none
orderedSetstr_or_nonetry_geturl_or_none)subs_list_to_dicttraverse_objc                   @   s   e Zd 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idd!d"dd#ddd$d%d&d'd(d)
ddidgZd*d+ Zd,S )-GloboIEzC(?:globo:|https?://[^/?#]+?\.globo\.com/(?:[^/?#]+/))(?P<id>\d{7,})Zgloboa9  
    query getVideoView($videoId: ID!) {
        video(id: $videoId) {
            duration
            description
            relatedEpisodeNumber
            relatedSeasonNumber
            headline
            title {
                originProgramId
                headline
            }
        }
    }
    z&https://globoplay.globo.com/v/3607726/Z3607726mp4u7   Mercedes-Benz GLA passa por teste de colisão na EuropagVY@z
G1 ao vivoZ4209)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Bom Dia BrasilZ810zglobo:3607726r   Zonly_matchingzglobo:8013907Z8013907u   Capítulo de 14/08/1989z	Episode 1r   ZTietaZ11895gJ+T@zcount:1)	r   r   r   episodeepisode_numberr   r   r   	subtitleszglobo:12824146Z12824146zAcordo de damaszRensga Hits!Z20481g"@zSeason 2r   )
r   r   r   r   r   r   r   r   Zseasonseason_numberc                 C   s  |  |}| jd|dtd|i| jdddddd	d
d d }g }| jd|d| ddittd|ddt  dddidt| 	ddd dd

 d}t|ddthfr| | |d d  }t|d! d"kr| j|d! |d#d$\}}n| j|d! |d%d&d'\}}| jt|d(d)d*d!d+d!thfittd,d-hf|d. d/|it|d0thfd1td2d3hfd4d0thfd4d5thfd6thfd7thfd8||d9S ):Nz&https://cloud-jarvis.globo.com/graphqlZgetVideoViewZvideoId)ZoperationName	variablesqueryzapplication/jsonZwebZdesktopz	2024.12-5)zcontent-typezx-platform-idzx-device-idzx-client-version)r    headersdatavideoz1https://playback.video.globo.com/v4/video-sessionzDownloading resource info for zContent-TypeZmirakulo_8k_hdrmaxZwidevineZ	streamingZlow_latencyTz-03:00zhttps://globo.comc                 S   s   d| d j  S )NzBearer ZGLBID)value)x r'   K/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/globo.py<lambda>       z'GloboIE._real_extract.<locals>.<lambda>r   )
Zplayer_typevideo_idZqualityZcontent_protectionZvsidZconsumptionZcapabilitiestzAuthorizationversion)r!   r"   resourceZdrm_protection_enabledsourcesr   r   ZmpdZdash)Zmpd_idr   Zhls)Zm3u8_idtext.)captionZsubtitleZsrtzpt-BR)lang)targetr   Zheadliner   i  )Zscaler   ZoriginProgramIdZrelatedEpisodeNumberZrelatedSeasonNumber)r   r   r   r   r   r   )formatsr   )	_match_idZ_download_jsonjsondumps_VIDEO_VIEWr   uuiduuid4r   Z_get_cookiesencoder   boolZ
report_drmr   Z"_extract_mpd_formats_and_subtitlesZ#_extract_m3u8_formats_and_subtitlesZ_merge_subtitlesr   allr   strr   r
   r   )selfr   r+   infor5   r#   Zmain_sourcer   r'   r'   r(   _real_extractg   s    






zGloboIE._real_extractN)__name__
__module____qualname__
_VALID_URLZ_NETRC_MACHINEr9   _TESTSrB   r'   r'   r'   r(   r      sv   		Br   c                       s   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dZdd  Z  Z	S )!GloboArticleIEzNhttps?://(?!globoplay).+?\.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__r'   r(   rK      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+   r@   r'   r(   
<listcomp>   s   z0GloboArticleIE._real_extract.<locals>.<listcomp>rI   )r6   Z_download_webpage_VIDEOID_REGEXESextendrefindallr	   Z_og_search_titlestripZ_html_search_metaZplaylist_result)	r@   r   Z
display_idZwebpageZ	video_idsZvideo_regexentriesr   rI   r'   rQ   r(   rB      s    


zGloboArticleIE._real_extract)
rC   rD   rE   rF   rS   rG   classmethodrK   rB   __classcell__r'   r'   rN   r(   rH      sV   
			+rH   )r7   rU   r:   commonr   utilsr   r   r   r   r	   r
   r   r   Zutils.traversalr   r   r   rH   r'   r'   r'   r(   <module>   s   (
 