
    yf:                     N    d dl 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   )determine_extextract_attributesint_or_none
str_to_inturl_or_noneurlencode_postdatac                   P    e Zd ZdZdZddddddeed	d
dddddddeedd
gZd Zy)
ManyVidsIEFz6(?i)https?://(?:www\.)?manyvids\.com/video/(?P<id>\d+)z9https://www.manyvids.com/Video/133957/everthing-about-me/ 03f11bb21c52dd12a05be21a5c7dcc97133957mp4zeverthing about me (Preview)ellyxxix)idexttitleuploader
view_count
like_count)urlmd5	info_dictz5https://www.manyvids.com/Video/935718/MY-FACE-REVEAL/ bb47bab0e0802c2a60c24ef079dfe60f935718zMY FACE REVEALz$md5:ec5901d41808b3746fed90face161612zSarah Calanthe)r   r   r   descriptionr   r   r   c                      j                  |      dd}	  j                  |       j                  ddd      }t	        |      } j                  ddd      }t	        |      }|j                  d	      d
f|j                  d      df|j                  d      df j                  dd       dff}dAd |j                  d            fd} ||j                  d            xs,  j                  ddd       xs  j                  ddd      }t        j                  dd|      xs |}t        fddD              r|dz  } j                  dd d d!"      }|r& j                  d#d$dt        |d%      |d&d'(       g }	|D ][  \  }
}t        |
      }
|
st        |
      d)k(  r&|	j                   j!                  |
d*d+d,-             H|	j#                  |
|d.       ]  j%                  |	       |	D ]  }|j                  d/      $t'         j                  d0|d1   d2d             |d/<   d3|d1   v r4d4j)                  t+        d |j                  d5      d6f            |d5<   d7|d8<   d|d5   v s{|j                  d8d9      d:z
  |d8<     fd;} fd<}||	 |j                  d=             |j                  d            t        |j                  d>            xs t        |j                  d?             |        |       d@S # t        $ r  j                  |      Y w xY w)BNzhttps://www.manyvids.com/video/z/gtm.jsz5(<div\b[^>]*\bid\s*=\s*(['"])pageMetaDetails\2[^>]*>)zmeta details defaultz5(<div\b[^>]*\bid\s*=\s*(['"])rmpPlayerStream\2[^>]*>)zplayer detailszdata-meta-videovideozdata-video-transcoded
transcodedzdata-video-filepathfilepathF)securer!   og_videoc                 N    t        | t              r| j                         xs |S |S N)
isinstancestrstrip)sr!   s     ;/usr/lib/python3/dist-packages/yt_dlp/extractor/manyvids.pytxt_or_nonez-ManyVidsIE._real_extract.<locals>.txt_or_noneG   s!    -73-?AGGI(LWL    zdata-meta-authorc                 t    r.t        j                  dt        j                        dd|       }  |       S )Nz^\s*z\s+[|-]r   )resubescape)r,   r.   r   s    r-   
mung_titlez,ManyVidsIE._real_extract.<locals>.mung_titleL   s.    FFryy/BEr1Mq>!r/   zdata-meta-title)z,<span[^>]+class=["\']item-title[^>]+>([^<]+)z+<h2[^>]+class=["\']h2 m-0["\'][^>]*>([^<]+)r   ztwitter:titleT)fatalz\s*[|-]\s+ManyVids\s*$c              3   &   K   | ]  }|v  
 y wr(    ).0pwebpages     r-   	<genexpr>z+ManyVidsIE._real_extract.<locals>.<genexpr>\   s     HqG|Hs   )preview_videosz_preview.mp4z
 (Preview)z-data-mvtoken=(["\'])(?P<value>(?:(?!\1).)+)\1zmv tokenvalue)r!   groupzIhttps://www.manyvids.com/includes/ajax_repository/you_had_me_at_hello.phpzSetting format cookies)mvtokenvidXMLHttpRequest)RefererzX-Requested-With)noter5   dataheadersm3u8r   m3u8_nativehls)entry_protocolm3u8_id)r   	format_idheightz_(\d{2,3}[02468])_r   zvideo heightz	/preview/_rK   previewi
preferencer   c                      j                  dddd      } t        |       } t        | j                  d            S )Nz (<a\b[^>]*\bdata-id\s*=\s*(['"])z	\2[^>]*>)likesr   r    z
data-likes)_search_regexr   r   get)rR   selfvideo_idr:   s    r-   	get_likesz+ManyVidsIE._real_extract.<locals>.get_likes   sE    &&FNQ" ' .E 'u-Euyy677r/   c                  @    t         j                  ddd             S )Nz\(?s)<span\b[^>]*\bclass\s*=["']views-wrapper\b[^>]+>.+?<span\b[^>]+>\s*(\d[\d,.]*)\s*</span>z
view countr    )r	   _html_search_regex)rU   r:   s   r-   	get_viewsz+ManyVidsIE._real_extract.<locals>.get_views   s,    d55st 6 5 6 6r/   zdata-meta-descriptionzdata-meta-imagezdata-video-screenshot)r   r   formatsr   r   	thumbnailr   r   r(   )	_match_id_download_webpage	ExceptionrS   r   rT   _og_search_video_urlrY   _html_search_metar1   r2   anyr   r
   r   extend_extract_m3u8_formatsappend_remove_duplicate_formatsr   joinfilter)rU   r   real_urlinfoplayervideo_urls_and_idsr4   r   mv_tokenr[   v_urlfmtfrW   rZ   r.   r   rV   r:   s   `              @@@@r-   _real_extractzManyVidsIE._real_extract,   s   >>#&AIL	<,,Xx@G
 !!H^R " 1 "$'##H%r $ 3 $F+ XX'('2ZZ/0,?ZZ-.
;&&wud&KZX	
	M txx(:;<	" txx 123 ?&&A$ ' 0?
 %%' & ? 	 0"e<EH%GHH\!E%%<gG & 5 ""[7u''#)   #(8 # 	 , 	JE3&EU#v-t998U=!  :  # $  !$  	 	&&w/ 	>AuuX&)&&'<ah`d&eg(ah&!$&k8JI7V*W!X+"%,q~-"#%%b"9A"=,	>	8	6 &txx0G'HI#DHH-?$@ADHH%678 Dvzz*ABC#+#+
 	
K  	<,,S(;G	<s   L L>=L>N)__name__
__module____qualname___WORKING
_VALID_URLint_TESTSrq   r7   r/   r-   r   r      sf    HJJ K13"
	 G1%A(
	F6v
r/   r   )r1   commonr   utilsr   r   r   r	   r
   r   r   r7   r/   r-   <module>r{      s#    	 ! T
 T
r/   