U
    Mf                     @   sp   d dl mZ ddlmZ ddlmZmZmZmZm	Z	m
Z
mZ G dd deZG dd deZG d	d
 d
eZdS )   )InfoExtractor   )HEADRequest)UserNotLivefloat_or_nonemerge_dictsstr_or_nonetraverse_objunified_timestampurl_or_nonec                   @   s"   e Zd Zdd Zdi fddZdS )
KickBaseIEc                 C   sX   | j tdd dddd | dd}|s6| d |rNd|j |jd	ni t_d S )
Nzhttps://kick.com/zSetting up sessionFT)fatalimpersonatez
XSRF-TOKENz&kick.com did not set XSRF-TOKEN cookiezBearer )AuthorizationzX-XSRF-TOKEN)Z_request_webpager   Z_get_cookiesgetZwrite_debugvaluer   _API_HEADERS)selfZ
xsrf_token r   9/tmp/pip-unpacked-wheel-zk9bgjdq/yt_dlp/extractor/kick.py_real_initialize   s"        

zKickBaseIE._real_initializezDownloading API JSONc                 K   s*   | j d| |f|t|| jdd|S )Nzhttps://kick.com/api/v1/T)noteheadersr   )Z_download_jsonr   r   )r   pathZ
display_idr   r   kwargsr   r   r   	_call_api   s     
 zKickBaseIE._call_apiN)__name__
__module____qualname__r   r   r   r   r   r   r      s   r   c                   @   sJ   e Zd ZdZdddeedddded	ed
eddddddgZdd ZdS )KickIEzZhttps?://(?:www\.)?kick\.com/(?!(?:video|categories|search|auth)(?:[/?#]|$))(?P<id>[\w-]+)zhttps://kick.com/yuppyz;6cde1-kickrp-joe-flemmingskick-info-heremust-knowmust-see21mp4ZyuppyZ33538ZYuppyZ33793is_livere:^https?://.*\.jpg)idexttitledescriptionchannel
channel_iduploaderuploader_idupload_dateZlive_status	timestamp	thumbnail
categories
livestream)url	info_dictskipzhttps://kick.com/kmack710T)r0   Zonly_matchingc                 C   s   |  |}| d| |}t|dtds4t|dtt|dd|d| j|d |d	d
dt|ddddt|d|tt|ddt|ddtt|ddd
tt|dt|dt	dt|ddS )Nz	channels/r/   Zexpected_type)video_id)r/   )slugr#   Fget_alldefaultZplayback_urlr    T)Zliver/   )Zsession_titler5    )userbior#   )r/   r(   name)r;   usernameuser_id)r;   r#   )r/   
created_at)r/   r-   r0   )Zrecent_categories.r=   )r#   formatsr%   r&   r'   r(   r)   r*   r!   r,   r-   r.   )
	_match_idr   r	   dictr   str_extract_m3u8_formatsr   r
   r   )r   r0   r'   responser   r   r   _real_extract9   sH    

         
  zKickIE._real_extractN)	r   r   r   
_VALID_URLrD   intlist_TESTSrG   r   r   r   r   r       s.   r   c                   @   sN   e Zd ZdZdddddddd	d
ddddddgdddidgdgZdd ZdS )	KickVODIEzShttps?://(?:www\.)?kick\.com/video/(?P<id>[\da-f]{8}-(?:[\da-f]{4}-){3}[\da-f]{12})z;https://kick.com/video/58bac65b-e641-4476-a7ba-3707a35e60e3Z 3870f94153e40e7121a6e46c068b70cbz$58bac65b-e641-4476-a7ba-3707a35e60e3r    u4   🤠REBIRTH IS BACK!!!!🤠!stake CODE JAREDFPS 🤠z$md5:02b0c46f9b4197fb545ab09dddb85b1dZjaredfpsZ26608ZJaredFPSZ26799Z20240402iTfg    `@r"   zCall of Duty: Warzone)r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   durationr-   r.   Zskip_downloadZm3u8Zimpersonation)r0   md5r1   paramsZexpected_warningsc                 C   s   |  |}| d| |}|| |d |dt|ddddt|dt|d	tt|d
t|dtt|dt|dtt|dddt|dtdt|ddS )Nzvideo/sourcer    r9   Fr:   r6   )r/   r'   r;   r<   )r/   r'   r5   )r/   r'   r#   )r/   r'   r;   r>   )r/   r'   r?   r@   )r/   rM   i  )Zscale)r/   r-   r3   )r/   r.   .r=   )r#   rA   r%   r&   r'   r(   r)   r*   r,   rM   r-   r.   )	rB   r   rE   r	   r   r
   r   r   r   )r   r0   r4   rF   r   r   r   rG   m   s0    
     zKickVODIE._real_extractN)r   r   r   rH   rK   rG   r   r   r   r   rL   S   s.    rL   N)commonr   Z
networkingr   utilsr   r   r   r   r	   r
   r   r   r   rL   r   r   r   r   <module>   s
   $3