
    V|h=                     f    S SK r S SKrS SKrSSKJr  SSKJrJrJrJ	r	  SSK
JrJr   " S S\5      rg)	    N   )InfoExtractor   )int_or_nonejwt_decode_hs256try_callurl_or_none)requiretraverse_objc                      \ rS rSrSrS0 SS_SS_SS	_S
S_SS_SS_S\_S\_S\_S\_S\_SS_SSS/_SS_S\_S\_SS_\\S.ES S!0S".S#S$0 SS%_SS_SS&_S
S'_SS(_SS)_S\_S\_S\_S\_S\_S*S+_SS,_SS/_SS-_SS._SS/_S0S1S.ES2.S3S40 SS5_SS_SS6_S
S7_SS8_SS9_S\_S\_S\_S\_S\_S*S:_SS;_SSS</_SS=_SS>_S?S@_SAS@SB.ES2./rSCrSDr	SE r
SF rSG rSHrgI)JLocoIE
   zGhttps?://(?:www\.)?loco\.com/(?P<type>streamers|stream)/(?P<id>[^/?#]+)z$https://loco.com/streamers/teuzinfpsid	teuzinfpsextmp4titlez,re:MS BOLADAO, RESENHA & GAMEPLAY ALTO NIVELdescriptionz
bom e novouploader_id
RLUVE3S9JUchannelchannel_follower_countcomment_count
view_countconcurrent_view_count
like_count	thumbnailzZhttps://static.ivory.getloconow.com/default_thumb/743701a9-98ca-41ae-9a8b-70bd5da070ad.jpgtagsMMORPGGameplayseriesTibia	timestampmodified_timestamplive_statusis_live)upload_datemodified_dateskip_download
Livestream)url	info_dictparamsz<https://loco.com/stream/c64916eb-10fb-46a9-9a19-8c4b7ed064e7 8b9bda03eba4d066928ae8d71f19befbz$c64916eb-10fb-46a9-9a19-8c4b7ed064e7zPAULINHO LOKO NA LOCO!zlive on na loco
2MDO7Z1DPMpaulinholokobrdurationi8  zZhttps://static.ivory.getloconow.com/default_thumb/59b5970b-23c1-4518-9e96-17ce341299fe.jpgzGTA 5igiWZ]h2025022620250626)r+   md5r,   z<https://loco.com/stream/ac854641-ae0f-497c-a8ea-4195f6d8cc53 0513edf85c1e65c9521f555f665387d5z$ac854641-ae0f-497c-a8ea-4195f6d8cc53z-DUAS CONTAS DESAFIANTE, RUSH TOP 1 NO BRASIL!z$md5:aa77818edd6fe00dd4b6be75cba5f826
7Y9JNAZC3Qayelloli  zZhttps://static.ivory.getloconow.com/default_thumb/f5aa678b-6d04-45d9-a89a-859af0a8028f.jpgCarryzLeague of Legendsi-Ugr'   20250305iUg)r$   r(   (TlwKp1zmF6eKFpcisn3FyR18WkhcPkZtzwPVEEC3ڀKp7tYlUN7LXvtcSpwYvIitgYcLparbtsQSe5AdyyCdiEJBP53Vt9J8eB4AsLdChIpcO2BM19RA3HsGtqDJFjWmwoonvMSG3ZQmnS8x1YIM8yl82xMXZGbE3NKiqmgBVUc                 P    [        U5      S   [        R                  " 5       -
  S:  $ )Nexpi,  )r   time)selftokens     O/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/loco.py_is_jwt_expiredLocoIE._is_jwt_expired]   s"    &u-		;cAA    c                   ^  [        U 4S j5      nU(       a  T R                  U5      (       d  U$ [        T R                  SUSS[        R
                  " ST R                  T R                  SSSSS	.5      R                  5       S
SR                  [        R                  " SSS95      S-   SST R                  T R                  SS.S9S5      nU(       a,  T R                  U5      (       d  T R                  SSU5        U$ g g )Nc                  @   > T R                  S5      S   R                  $ )Nzhttps://loco.comaccess_token)_get_cookiesvalue)r?   s   rA   <lambda>*LocoIE._get_access_token.<locals>.<lambda>a   s    (9(9:L(Mn(](c(crD   z2https://api.getloconow.com/v3/user/device_profile/zDownloading access tokenF   MozillaWin32z5.0 (Windows))platform	client_idclient_secretmodelos_nameos_verapp_verzapplication/json;charset=utf-8 0123456789abcdef    )kliveenzen-US7)zContent-Typez	DEVICE-IDz
X-APP-LANGzX-APP-LOCALEzX-CLIENT-IDzX-CLIENT-SECRETz
X-PLATFORM)fataldataheadersrG   z	.loco.com)r   rB   r   _download_jsonjsondumps
_CLIENT_ID_CLIENT_SECRETencodejoinrandomchoices_set_cookie)r?   video_idrG   s   `  rA   _get_access_tokenLocoIE._get_access_token`   s     cd 4 4\ B B#D$7$7@(&e$**!__!%!4!4"")*F ; vx @WWV^^4F"%MNQWW" '##'#6#6!" %8 %$ % &  4 4\ B B[.,G !C<rD   c                    U R                  U5      R                  SS5      u  p#U R                  X5      n[        U R	                  XC5      SSS[
        1[        [        S5      145      nU R                  U5      =n(       a  U R                  SUSS	S
U0SUS   0S9  U R                  US   S   U5      UUS:H  S.[        US[        14S[        14S[        14S[        14S[        14S[        14S[        14S[        14S[        14SS[        14S[        SS914S[        SS914S [        14S![        14S"[        14S#.5      E$ )$Ntyper   .)NssrData)liveStreamDatastream
liveStreamzstream infoz)https://drm.loco.com/v1/streams/playback/zDownloading video authorizationFauthorization
stream_uiduid)r]   r_   queryconfhls	streamers)formatsr   r&   r   	game_nameuser_uidaliasr   viewersCurrenttotal_viewsthumbnail_url_smalllikesr   
started_ati  )scale
updated_atcomments_countfollowers_countr1   )r   r!   r   r   r   r   r   r   r   r   r#   r$   r   r   r1   )_match_valid_urlgroup_download_webpager   _search_nextjs_v13_datadictanyr
   rk   _request_webpage_extract_m3u8_formatsstrr   r	   )r?   r+   
video_typerj   webpagerq   rG   s          rA   _real_extractLocoIE._real_extract{   s   #44S9??M
((7d::7M"$NQUPVX[^efs^t]uPw x  11(;;<;!!;X1#\I !&-	 "  11&.2GR![0
 6!C5)&. *SE2#cU+ -u5*:[M)J,{m<3k]C&6se,*[t-D,EF'3k6M5N&O"2[M!B+<{m*L'+7$ 	
 	
rD    N)__name__
__module____qualname____firstlineno__
_VALID_URLintr   _TESTSrc   rd   rB   rk   r   __static_attributes__r   rD   rA   r   r   
   s   [J5
+
5
 D
 <	

 <
 {
 %c
 S
 #
 $S
 #
 u
 Xz*
 g
 
  !#!
" 9#
$  '
, \
/6 N1
8
5
 -
 ,	

 <
 '
 %c
 S
 #
 $S
 #
 
 u
 ZL
 g
  !
" !*#
$ &''
4 N1
8
5
 D
 A	

 <
 y
 %c
 S
 #
 $S
 #
 
 u
 Z)
 )
  !
" :#
$ #-''
	eKF\ <J XNB 6$
rD   r   )ra   rg   r>   commonr   utilsr   r   r   r	   utils.traversalr
   r   r   r   rD   rA   <module>r      s(       ! H H 3U
] U
rD   