
    V|h	                        S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSK	J
r
Jr  SSKJr  / SQrSr " S S	\R                   5      r\S
4   SS jjrS rg)z
PUBLIC API    )annotationsN)PoTokenContextPoTokenRequest)traverse_obj)WEBPO_CLIENTSContentBindingTypeget_webpo_content_binding)WEBMWEBTVHTML5WEB_EMBEDDED_PLAYERWEB_CREATOR	WEB_REMIXTVHTML5_SIMPLYTVHTML5_SIMPLY_EMBEDDED_PLAYERc                  $    \ rS rSrSrSrSrSrSrg)r      visitor_datadatasync_idvideo_id
visitor_id N)	__name__
__module____qualname____firstlineno__VISITOR_DATADATASYNC_IDVIDEO_ID
VISITOR_ID__static_attributes__r       \/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/youtube/pot/utils.pyr   r      s    !LKHJr"   r   Fc                   [        U R                  S5      nU(       a  X1;  a  gU R                  [        R                  :X  a-  U R
                  (       a  U R                  [        R                  4$ U R                  [        R                  :X  d  US;   a~  U R                  (       a  U R                  [        R                  4$ U(       a.  [        U R                  5      nU(       a  U[        R                  4$ U R                  [        R                  4$ U R                  [        R                   [        R"                  4;   a  U R                  [        R                  4$ g)N)client
clientName)NN)r   )r   innertube_contextcontextr   GVS_gvs_bind_to_video_idr   r   r   is_authenticateddata_sync_idr   _extract_visitor_idr   r    r   PLAYERSUBS)requestwebpo_clientsbind_to_visitor_idclient_namer   s        r#   r	   r	   #   s    w88:RSK+:.,,,1N1N!3!<!<<<.,,,0N##'');)G)GGG!01E1EF
%'9'D'DDD'');)H)HHH	^22N4G4GH	H!3!<!<<<r"   c                T   U (       d  g [         R                  " [        5         [        R                  " [
        R                  R                  U 5      5      SS R                  5       n[        R                  " SU5      (       a  UsS S S 5        $  S S S 5        g ! , (       d  f       g = f)N      z[A-Za-z0-9_-]{11})
contextlibsuppress	Exceptionbase64urlsafe_b64decodeurllibparseunquote_plusdecodere	fullmatch)r   r   s     r#   r-   r-   @   s     
		Y	'--LL%%l3556r;;A68 	 <<,j99 
(	' :	 
(  
(	' s   A"B
B')r0   r   returnz,tuple[str | None, ContentBindingType | None])__doc__
__future__r   r:   r7   enumr@   urllib.parser<   %yt_dlp.extractor.youtube.pot.providerr   r   yt_dlp.utilsr   __all__r   Enumr   r	   r-   r   r"   r#   <module>rK      s`     "    	  P %
N	    2	:r"   