
    =Ґi	                        d Z ddlmZ 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
mZ ddlmZ g dZdZ G d d	ej                         Zed
f	 	 	 ddZd Zy)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                      e Zd ZdZdZdZdZy)r   visitor_datadatasync_idvideo_id
visitor_idN)__name__
__module____qualname__VISITOR_DATADATASYNC_IDVIDEO_ID
VISITOR_ID     [/var/www/descvideos/venv/lib/python3.12/site-packages/yt_dlp/extractor/youtube/pot/utils.pyr   r      s    !LKHJr   r   Fc                x   t        | j                  d      }|r||vry| j                  t        j                  k(  r(| j
                  r| j                  t        j                  fS | j                  t        j                  k(  s|dv ro| j                  r| j                  t        j                  fS |r)t        | j                        }|r|t        j                  fS | j                  t        j                  fS | j                  t        j                   t        j"                  fv r| j                  t        j                  fS y)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                0   | sy t        j                  t              5  t        j                  t
        j                  j                  |             dd j                         }t        j                  d|      r|cd d d        S 	 d d d        y # 1 sw Y   y xY w)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  :	  s   ABB)r-   r   returnz,tuple[str | None, ContentBindingType | None])__doc__
__future__r   r7   r4   enumr=   urllib.parser9   %yt_dlp.extractor.youtube.pot.providerr   r   yt_dlp.utilsr   __all__r   Enumr   r	   r*   r   r   r    <module>rH      s`     "    	  P %
N	    2	:r   