
    yf                         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e      Z G d de      Z G d	 d
e      Zy)   )InfoExtractor   )HEADRequest)UserNotLivefloat_or_nonemerge_dictsstr_or_nonetraverse_objunified_timestampurl_or_nonec                       e Zd Zd Zdi fdZy)
KickBaseIEc                    | j                  t        d      d ddd       | j                  d      j                  d      }|s| j	                  d       |r&d|j
                   |j
                  d	t        _        y i t        _        y )
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)_request_webpager   _get_cookiesgetwrite_debugvaluer   _API_HEADERS)self
xsrf_tokens     7/usr/lib/python3/dist-packages/yt_dlp/extractor/kick.py_real_initializezKickBaseIE._real_initialize   s    +,d4HPUcg 	 	i&&':;??M
EF   'z'7'7&89&,,#

   	    zDownloading API JSONc                 `     | j                   d| |f|t        || j                        dd|S )Nzhttps://kick.com/api/v1/T)noteheadersr   )_download_jsonr   r   )r   path
display_idr   r    kwargss         r   	_call_apizKickBaseIE._call_api   sI    "t""&tf-zY@D):):;YQWY 	Yr   N)__name__
__module____qualname__r   r%    r   r   r   r      s    	  0Fr Yr   r   c                   H    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 Zy)KickIEzZhttps?://(?:www\.)?kick\.com/(?!(?:video|categories|search|auth)(?:[/?#]|$))(?P<id>[\w-]+)zhttps://kick.com/yuppyz;6cde1-kickrp-joe-flemmingskick-info-heremust-knowmust-see21mp4yuppy33538Yuppy33793is_livere:^https?://.*\.jpg)idexttitledescriptionchannel
channel_iduploaderuploader_idupload_datelive_status	timestamp	thumbnail
categories
livestream)url	info_dictskipzhttps://kick.com/kmack710T)rA   only_matchingc                    | j                  |      }| j                  d| |      }t        |dt              st	        |      t        t        |dd|            | j                  |d   |d	d
      t        |ddd      t        |d      |t        t        |dd            t        |dd      t        t        |dd            d
t        t        |d            t        |dt              t        |d      dS )Nz	channels/r@   expected_type)video_id)r@   )slugr3   Fget_alldefaultplayback_urlr,   T)liver@   )session_titlerI    )userbior3   )r@   r8   name)rR   usernameuser_id)rR   r3   )r@   
created_at)r@   r>   rA   )recent_categories.rT   )r3   formatsr5   r6   r7   r8   r9   r:   r1   r=   r>   r?   )
	_match_idr%   r
   dictr   str_extract_m3u8_formatsr	   r   r   )r   rA   r7   responses       r   _real_extractzKickIE._real_extract9   s   ..%>>IgY"7AHl$Gw// l8%QXZ [11('5t 2 E!CU\^`'/B%l8TC_&`a$Xv7KL&|Hi'XY*<B^+_`%<KY&x1ST!
 	
r   N)	r&   r'   r(   
_VALID_URLr\   intlist_TESTSr_   r)   r   r   r+   r+       sY    nJ'O!"$0
 #& +%F.
r   r+   c                   L    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 Zy)	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-3707a35e60e3 3870f94153e40e7121a6e46c068b70cbz$58bac65b-e641-4476-a7ba-3707a35e60e3r,   u4   🤠REBIRTH IS BACK!!!!🤠!stake CODE JAREDFPS 🤠z$md5:02b0c46f9b4197fb545ab09dddb85b1djaredfps26608JaredFPS2679920240402iTfg    `@r2   zCall of Duty: Warzone)r3   r4   r5   r6   r7   r8   r9   r:   r;   r=   durationr>   r?   skip_downloadm3u8impersonation)rA   md5rB   paramsexpected_warningsc                    | j                  |      }| j                  d| |      }|| j                  |d   |d      t        |ddd      t        |d      t        |d	      t	        t        |d
            t        |d      t	        t        |d            t        |j                  d            t        t        |d      d      t        |dt              t        |d      dS )Nzvideo/sourcer,   rO   FrQ   rJ   )r@   r7   rR   rS   )r@   r7   rI   )r@   r7   r3   )r@   r7   rR   rU   )r@   r7   rV   rW   )r@   rl   i  )scale)r@   r>   rF   )r@   r?   .rT   )r3   rY   r5   r6   r7   r8   r9   r:   r=   rl   r>   r?   )	rZ   r%   r]   r
   r	   r   r   r   r   )r   rA   rH   r^   s       r   r_   zKickVODIE._real_extractm   s    >>#&>>F8*"5x@ 11(82DhPUV!CU\^`'2Z[#H.OP%l8=\&]^$X/\]&|H>b'cd*8<<+EF%l8=W&X`de%5[R&x1Z[
 	
r   N)r&   r'   r(   r`   rc   r_   r)   r   r   re   re   S   sa    gJL18KA!!""%#023
  V
 //+ F0
r   re   N)commonr   
networkingr   utilsr   r   r   r	   r
   r   r   r   r+   re   r)   r   r   <module>ry      sA    ! $  Y Y$0
Z 0
f-

 -
r   