
    yf                     Z    d dl Z 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  G d de      Zy)	    N   )InfoExtractor   )
compat_str)ExtractorErrorformat_fieldfloat_or_noneint_or_nonestr_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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#d$d%d&eeed'ddd(d)d*d+d)d*gZd, Zy-).	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   )idexttitledescriptionuploader	timestampupload_dateuploader_iduploader_urlcomment_count
view_count
like_countduration)urlmd5	info_dictz7https://medal.tv/games/cod-cold-war/clips/2mA60jWAGQCBH fc7a3e4552ae8993c1c4006db46be4472mA60jWAGQCBHz	Quad ColdzMedal,https://medal.tv/desktop/MowgliSBiR\_2020102010619174zRhttps://cdn.medal.tv/10619174/thumbnail-34934644-720p.jpg?t=1080p&c=202042&missingzhttps://medal.tv/users/10619174   )r   r   r   r   r   r   r   r   	thumbnailr   r    r!   r"   r#   z7https://medal.tv/games/cod-cold-war/clips/2um24TWdty0NA b6dc76b78195fff0b4f8bf4a33ec21482um24TWdty0NAzu tk me i tk u biggerMimicci8_202011175156321zQhttps://cdn.medal.tv/5156321/thumbnail-36787208-360p.jpg?t=1080p&c=202046&missingzhttps://medal.tv/users/5156321	   z3https://medal.tv/games/valorant/clips/37rMeFpryCC-9T)r$   only_matchingz3https://medal.tv/games/valorant/clips/2WRj40tpY_EU9c                    | j                  |      }| j                  ||ddi      }| j                  d|d|dd      }t        |d	d
      }|st	        d|      |d   }t        |j                  d            }t        |j                  d            }|r|r||z  ndd,fd	}	g }
g }|j                         D ]  \  }}|rt        |t              st        j                  d|      }|s2|j                  d      }t        |j                  d            }|dk(  r |	|
||xs ||rd nd       w|dk(  s} |	|||d        |j                  d      }|
s>|r<|dk(  r| j                  dd|       n"| j                  dj                  |      |       t        |d d
      xs i }t        |j                  d!            }t!        |d d"      }|||
||j                  d#      |j                  d$      t#        |j                  d%      d&      ||t        |j                  d'            t        |j                  d(            t        |j                  d)            t        |j                  d*            d+S )-Nmobilebypasstrue)queryz%<script[^>]*>[^<]*\bhydrationData\s*=z	next dataz	</script>F)end_patternfatal)clips.)get_allz!Could not find video information.)video_idcontentTitlesourceWidthsourceHeightgqq?c           
          |xs d|z  }||vry t        t        |z              }| j                  d|||d|d|i       y )Nz%dpr$   widthheight)introundappend)	containeritem_urlrC   id_keyitem_idrB   aspect_ratios         :/usr/lib/python3/dist-packages/yt_dlp/extractor/medaltv.pyadd_itemz)MedalTVIE._real_extract.<locals>.add_itemf   sW    /Gh&lV345Ex&	     z"(contentUrl|thumbnail)(?:(\d+)p)?$r   r   
contentUrlsource)rJ   r-   r   errori  zThat clip does not exist.T)expectedr=   z An unknown error occurred ({0}).)profiles.userIdzhttps://medal.tv/users/%scontentDescriptiondisplayNamecreatedi  videoLengthSecondsviewslikescomments)r   r   formats
thumbnailsr   r   r   r   r   r#   r!   r"   r    )	format_idN)	_match_id_download_webpage_search_jsonr   r   r
   getitems
isinstancer   rematchgroupraise_no_formatsformatr   r   r	   )selfr$   r=   webpagehydration_dataclipr   source_widthsource_heightrM   r\   r]   kvmobjprefixrC   rQ   author	author_id
author_urlrK   s                        @rL   _real_extractzMedalTVIE._real_extractQ   s   >>#&((h~v>V(W**4g{% + I NNEJ 3hH H ^$"488M#:;#DHH^$<=7C|m3[a
	 
JJL 	6DAq*Q
388A1EDZZ]F A/F%Q 7-$*D: ;&Q5	6 !5|%%/!H & 6 %%6==eD% & ' n.?OUSU

8 45	!)T3NO
 $88$89

=1&txx	':DA$&#DHH-A$BC%dhhw&78%dhhw&78(*)=>
 	
rN   N)__name__
__module____qualname__
_VALID_URLrD   _TESTSrw    rN   rL   r   r      s    VJD1!%#%%= 
& I1! <"#%%m= 
( I1!,< #%$l< 
( E Ew>F@Q
rN   r   )re   commonr   compatr   utilsr   r   r	   r
   r   r   r   r}   rN   rL   <module>r      s&    	 !  S
 S
rN   