
    uki)                     B    d dl mZ ddlmZmZ ddlmZ  G d de      Zy)   )InfoExtractor   )int_or_noneurl_or_none)traverse_objc                       e Zd ZdZdddddddd	d
ddeeeddg dddddddddddddddeeedddddd dd!dd"d#d$eeed%d&d'd(d)d*gd+d,d-d.gZd/ Zy0)1	MedalTVIEzBhttps?://(?:www\.)?medal\.tv/games/[^/?#&]+/clips/(?P<id>[^/?#&]+)z3https://medal.tv/games/valorant/clips/jTBFnLKdLy15K 03e4911fdcf7fce563090705c2e79267jTBFnLKdLy15Kmp4zMornu's clutch Acieliqb2022050419335460zhttps://medal.tv/users/19335460   z8re:https://cdn\.medal\.tv/ugcp/content-thumbnail/.*\.jpg)headshotvalorant4kclutchmornu)idexttitledescriptionuploader	timestampupload_dateuploader_iduploader_urlcomment_count
view_count
like_countduration	thumbnailtags)urlmd5	info_dictz7https://medal.tv/games/cod-cold-war/clips/2um24TWdty0NA b6dc76b78195fff0b4f8bf4a33ec21482um24TWdty0NAzu tk me i tk u biggerzahli8_202011175156321z(re:https://cdn\.medal\.tv/source/.*\.pngzhttps://medal.tv/users/5156321	   )r   r   r   r   r   r   r   r   r$   r   r    r!   r"   r#   z3https://medal.tv/games/valorant/clips/2WRj40tpY_EU9 6c6bb6569777fd8b4ef7b33c09de8dcf2WRj40tpY_EU9z
1v5 clutchadny6256941zhttps://medal.tv/users/6256941   z(re:https://cdn\.medal\.tv/source/.*\.jpgi"`20210209)r   r   r   r   r   r   r   r    r!   r"   r#   r$   r   r   z+Video formats are not available through API)r&   r'   r(   expected_warningsz3https://medal.tv/games/valorant/clips/37rMeFpryCC-9T)r&   only_matchingc                    | j                  |      }| j                  d| |ddi      }g }t        |j                  d            x}r$|j	                  | j                  ||dd             t        |j                  d	            x}r|j                  |d
ddd       |D cg c]  }d|d   vs| }}|sI| j                  d       | j                  d| d|d      }|j                  |j                  dddd       ||dt        |dt        hfdt        hfdt        d      hfdt        hfdt        hfdt        hfdt        hfdd t        hfdd!t        hfdd!t        ht        d" hfd#d$t        hfd%t        hfd&      S c c}w )'Nzhttps://medal.tv/api/content/Acceptzapplication/json)headerscontentUrlHlsr   hls)m3u8_id
contentUrlzhttp-sourcer   )r&   	format_idr   qualityzvideo/privacy-protected-guestr&   zMVideo formats are not available through API, falling back to social video URLz/socialVideoUrlzChecking social video URL)notezsocial-video)r   formatscontentTitlecontentDescriptioncreatedi  )scalevideoLengthSecondsviewslikescommentsposterdisplayNameuserIdc                     | xr d|  S )Nzhttps://medal.tv/users/ )xs    S/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/yt_dlp/extractor/medaltv.py<lambda>z)MedalTVIE._real_extract.<locals>.<lambda>x   s    qOrWnopnqUr     r%   .thumbnailUrl)r   r   r   r#   r!   r"   r    r   r   r   r%   r$   )	_match_id_download_jsonr   getextend_extract_m3u8_formatsappendreport_warning_request_webpager&   r   strr   filter)	selfr&   video_idcontent_datarB   m3u8_urlhttp_urlfmturlhs	            rQ   _real_extractzMedalTVIE._real_extractL   s   >>#&**+H:612 + 4 "<#3#3O#DEE8ENN455h%Y^5_`"<#3#3L#ABB8BNN*	  #*_3-LTWX]T^-^3__ op((/zI80 ) 2D NNxx+	  
 <(3%0 4se<'+D*A)BC1K=A&6&6",{m!<%}se< ((SE:!)8cUFErDs tse,,{m<* 
 	
 `s   #F0FN)__name__
__module____qualname__
_VALID_URLint_TESTSrf   rO   rS   rQ   r	   r	   	   s    VJD1!%#%%= TE
* I1!,#%$D< 
* E1!!$< D#%
  LL), Ey?FB0
rS   r	   N)commonr   utilsr   r   utils.traversalr   r	   rO   rS   rQ   <module>rp      s     ! +s
 s
rS   