
    i                     r   S SK r S SKrS SKrS SKrSSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  S	S
KJr  S	SKJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%  S	SK&J'r'J(r(   " S S\5      r) " S S\)5      r* " S S\)5      r+ " S S\)5      r, " S S\5      r- " S S\-5      r. " S S\-5      r/g)    N   )InfoExtractor)DailymotionIE)OdnoklassnikiIE)SibnetEmbedIE)VimeoIE)	YoutubeIE   )JSInterpreter)ExtractorErrorUserNotLive
clean_htmlget_element_by_classget_element_html_by_idint_or_nonejoin_nonemptyparse_qsparse_resolutionstr_or_none
str_to_inttry_callunescapeHTMLunified_timestampupdate_url_queryurl_or_noneurlencode_postdataurljoin)requiretraverse_objc                   D   ^  \ rS rSrSrSS.U 4S jjrS rS	S jrSrU =r	$ )
VKBaseIE$   vkTfatalc          	        > [         TU ]  " X/UQ7SU0UD6nUSL a  U$ Uu  pxUR                  n	[        R                  R                  U	5      R                  S:w  a  U$ U R                  [        U=(       a    SU S3SSS95        [        U	[        1S	S
[        S5      145      n
U R                  SUS5      n[        SU 35      nUR                  S5      " / 5      nU R                  SU 35        [         R"                  " U
 SU 3R%                  5       5      R'                  5       nU R                  SU 35        U R)                  [+        U	SU05      USSSS9  [         TU ]  " X/UQ7SS0UD6$ )Nr%   Fz/challenge.html[]z Received a JS challenge response delimhash429zchallenge hashzL(?s)var\s+salt\s*=\s*\(\s*function\s*\(\)\s*(\{.+?\})\s*\)\(\);\s*var\s+hashzJS challenge salt functionzfunction salt() saltz+Generated salt with native JS interpreter: :zJS challenge key hash: keyz Submitting JS challenge solutionzUnable to solve JS challengeTr$   )super_download_webpage_handleurlurllibparseurlparsepath	to_screenr   r   r   r   _search_regexr   extract_functionwrite_debughashlibmd5encode	hexdigest_request_webpager   )selfurl_or_requestvideo_idr%   argskwargsresponsewebpageurlhchallenge_urlchallenge_hash	func_codejsir.   key_hash	__class__s                  @/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/vk.pyr2   !VKBaseIE._download_webpage_handle'   s   73Nktk[`kdjkuO <<  /448IIO}(1XJa. 	
 &mJ	20@(A'B6D E &&[13	 .yk:;##F+B/FtfMN;;.!14&9@@BCMMO28*=> 	]UH,=>.0NVZ 	 	\ w/f4fW[f_eff    c                 Z   U R                  SS S5      u  p4U R                  U5      nUR                  UR                  S5      UR                  S5      S.5        U R	                  US5        U R                  SS S[        U5      S9n[        R                  " S	U5      (       a
  [        S
SS9eg )Nzhttps://vk.comzDownloading login pagecp1251)emailpassremixlhkzhttps://vk.com/loginz
Logging in)notedataonLoginFailedz3Unable to login, incorrect username and/or passwordTexpected)
r2   _hidden_inputsupdater>   _apply_first_set_cookie_header_download_webpager   researchr   )rA   usernamepassword
login_page
url_handle
login_forms         rO   _perform_loginVKBaseIE._perform_loginK   s    !%!>!>d$<">
 ((4
__X.OOH-
 	 	++J
C++"D#J/ , 1

 99%z22 EPTV V 3rQ   c           	          SU S3nSUS'   U R                  XR[        U5      UUSS.S9S   u  pgUS	:X  a  U R                  5         U$ US
:X  a  [        [	        US   SS 5      SS9eU$ )Nzhttps://vk.com/z.phpr   alXMLHttpRequest)RefererzX-Requested-With)rX   r%   headerspayload38r   r-   TrZ   )_download_jsonr   raise_login_requiredr   r   )rA   r7   rC   rX   r%   endpointcodern   s           rO   _download_payloadVKBaseIE._download_payloadc   s    $TF$/T
++%7%=U#$4 , 
  3;%%'  S[ GAJq,<!=MMrQ    )T)
__name__
__module____qualname____firstlineno___NETRC_MACHINEr2   rg   ru   __static_attributes____classcell__)rN   s   @rO   r!   r!   $   s(    NNR "g "gHV0 rQ   r!   c                   p   \ rS rSrSrSrS/rSrSSSS	S
SSSSS\\SS.SS0S.SSSSSSSSS\\SS.S.SS SSSS	SSSSSS!.	SS0S".S#S$SS%S
S&\S'\S(S)S*SS+.S.S,S-0 S.S/_S0S_S1S2_S3S4_S5S6_S7S8_S9S:_S;S<_S=\_S>S?_S@SA_SB\_SCSD_SESF_SGS:_SHSI_SJSK_SLSMSN/SO\SPSQSR.ESS.STSUSVSSWSXSYSZS[S\SPS]\\S^\	S_.S`Sa.SbScS\S\SSdSeSfSgShSiSj.S.SkSlSmSSnSoSpSqSrSs.StSu.SvSwSxSSySzS{S|S}S~SK\\S.SSF0SS.SSSSSSSS\\SSSSSS.SS.SSSSSSS\\SSSSSS.S.SSFS.SSFS.SSFS.SSFS.SSFS.SSFS.SSFS.SSFS.SSFS.SSFS./r
S rSrg)VKIEs   r#   VKzX<iframe[^>]+?src=(["\'])(?P<url>https?://vk(?:(?:video)?\.ru|\.com)/video_ext\.php.+?)\1a  (?x)
                    https?://
                        (?:
                            (?:
                                (?:(?:m|new|vksport)\.)?vk(?:(?:video)?\.ru|\.com)/video_|
                                (?:www\.)?daxab\.com/
                            )
                            ext\.php\?(?P<embed_query>.*?\boid=(?P<oid>-?\d+).*?\bid=(?P<id>\d+).*)|
                            (?:
                                (?:(?:m|new|vksport)\.)?vk(?:(?:video)?\.ru|\.com)/(?:.+?\?.*?z=)?(?:video|clip)|
                                (?:www\.)?daxab\.com/embed/
                            )
                            (?P<videoid>-?\d+_\d+)(?:.*\blist=(?P<list_id>([\da-f]+)|(ln-[\da-zA-Z]+)))?
                        )
                    z?https://vk.com/videos-77521?z=video-77521_162222515%2Fclub77521z-77521_162222515mp4u%   ProtivoGunz - Хуёвая песняuR   Видео из официальной группы Noize MC
http://vk.com/noizemcz&re:(?:Noize MC|Alexander Ilyashenko).*39545378   i7O20120212z*re:https?://.+(?:\.jpg|getVideoPreview.*)$)idexttitledescriptionuploaderuploader_idduration	timestampupload_datecomment_count
like_count	thumbnailskip_downloadm3u8r3   	info_dictparamsz'https://vk.com/video205387401_165548505205387401_165548505zNo namez
Tom Cruise	205387401	   i!Q20130720)r   r   r   r   r   r   r   r   r   r   r   )r3   r   zEmbedded videozJhttps://vk.com/video_ext.php?oid=-77521&id=162222515&hash=87b046504ccd8bfa)	r   r   r   r   r   r   r   r   r   )rW   r3   r   r   zBhttps://vk.com/video-93049196_456239755?list=ln-cBjJ7S4jYYx3ADnmDTz-93049196_456239755u   8 серия (озвучка)i   Dizi2021ia20211222z	-93049196)r   r   r   r   r   r   r   r   r   r   r   r   zyoutube embedz'https://vk.com/video276849682_170681728r   V3K4mi0SYkcr   r   z`DSWD Awards 'Children's Joy Foundation, Inc.' Certificate of Registration and License to Operater   z$md5:bf9c26cfa4acdfb146362682edd3827ar      r   20130117r   zChildren's Joy Foundation Inc.r   z@CJFIofficial
view_count
channel_idUCgzCNQ11TmR9V97ECnhi3gwavailabilitypublicr   live_statusnot_liveplayable_in_embedTchanneluploader_urlz%https://www.youtube.com/@CJFIofficialr   zre:https?://.+\.jpg$zcount:27g        zNonprofits & Activismz8https://www.youtube.com/channel/UCgzCNQ11TmR9V97ECnhi3gwr   i7vP)tags
start_time
categorieschannel_urlchannel_follower_count	age_limitr   )rW   r3   r   zdailymotion embedz?https://vk.com/video-95168827_456239103?list=cca524a0f0d5557e16x8gfli0z$md5:45410f60ccd4b2760da98cb5fc777d70z$md5:2e71c5c9413735cfa06cf1a166f16c84zMovies and cinema.20221218x1jdavviYcif  zre:https?://.+x1080$)r   r   r   r   r   r   r   r   r   r   r   r   r   r   z7This video has been deleted and is no longer available.)rW   r3   r   skipz7https://vk.com/clips-74006511?z=clip-74006511_456247211z-74006511_456247211i=czClip by @madempress20221005u%   Шальная Императрицаz	-74006511z$md5:f9315f7786fa0e84e75e4f824a48b056)r   r   r   r   r   r   r   r   r   r   r   r   z(https://vk.com/video-110305615_171782105 e13fcda136f99764872e739d13fac1d1z-110305615_171782105u+   S-Dance, репетиции к The way showu   THE WAY SHOW | 17 апреляz
-110305615iQdV20160207)r   r   r   r   r   r   r   Removed)r3   r=   r   r   z"finished live stream, postlive_mp4zEhttps://vk.com/videos-387766?z=video-387766_456242764%2Fpl_-387766_-2z-387766_456242764u@   ИгроМир 2016 День 1 — Игромания Утромu   Игроманияiw  20160929z-387766iW)r   r   r   r   r   r   r   r   r   r   r   zNo formats found)rW   r3   r   r   r   zvideo has chaptersz+https://vkvideo.ru/video-18403220_456239696z-18403220_456239696uq   Трамп отменяет гранты // DeepSeek - Революция в ИИ // Илон Маск читерz$md5:b112ea9de53683b6d03d29076f62eec2u   Руслан Усачевz	-18403220i  zre:https?://.+\.jpgzcount:21iSg20250130)r   r   r   r   r   r   r   r   r   r   chaptersr   r   z+https://vkvideo.ru/video-50883936_456244102z-50883936_456244102u[   Добивание Украины // Техник в коме // МОЯ ЗЛОСТЬ №140z$md5:a9bc46181e9ebd0fdd82cef6c0191140u#   Стас Ай, Как Просто!z	-50883936i+  zcount:59i)g20250330z%https://vk.com/video-140332_456239111r3   only_matchingzBhttp://vk.com/feed?z=video-43215063_166094326%2Fbb50cacd3177146d7az'https://vk.com/video205387401_164765225z*http://new.vk.com/video205387401_165548505z'https://vk.com/video-10639516_456240611z'https://vk.com/video-51812607_171445436z%https://vk.com/clip30014565_456240946z,https://vkvideo.ru/video-127553155_456242961z'https://vk.ru/video-220754053_456242564z4https://vksport.vkvideo.ru/video-124096712_456240773c                    U R                  U5      nUR                  S5      n0 nU(       as  SUS.nUR                  S5      nU(       a  XeS'   U R                  SX55      nUS   nUS   n	U	R                  S	5      =(       d    0 nU	R                  S
5      =(       d    0 n
GOSR	                  UR                  S5      UR                  S5      5      nU R                  SUR                  S5      -   U5      nU R                  SS/USS S9nU(       a
  [        USS9e[        R                  " SU5      (       a
  [        SSS9eSnUUSSSSSSSSS .
nUR                  5        H,  u  p[        R                  " X5      (       d  M"  [        X-  SS9e   U R                  U R                  S!US"5      U5      n
[        R                  " U5      nU(       a%  U R                  U[        R                   " 5       5      $ ["        R                  " X5      nUb%  U R                  U["        R                   " 5       5      $ [        R                  " S#U5      nUbA  U R%                  UR                  S5      R'                  S$S%5      5      nU R                  U5      $ [)        [*        R,                  " X5      S 5      nU(       a%  U R                  U[*        R                   " 5       5      $ [.        R                  " U5      nU(       a%  U R                  U[.        R                   " 5       5      $ [)        [0        R,                  " X5      S 5      nU(       a  U R                  U5      $ [        R                  " S&U5      nU(       aj  [        R                  " S'UR                  S5      5      nU(       a=  UR                  S5      nUR3                  S(5      (       a  S)U-   nU R                  U5      $ U
S*   S+   nUR                  S,5      S-:H  n[5        U R                  S.US/S S95      =(       d    [7        UR                  S05      5      n[9        U R                  S1US2S S95      n/ n0 nUR                  5        GHK  u  nn [;        U 5      n U (       a  U R3                  S35      (       d  M1  UR3                  S45      (       d  US5;   a4  [7        U R                  S6US7S S95      n!UR=                  UU S8SU!S9.5        M  UR3                  S:5      (       aA  US;:w  a;  U R?                  U US8S<US=US>9u  n"n#URA                  U"5        U RC                  U#US?9  M  UR3                  S@5      (       a?  USA;  a9  U RE                  U UUS=SB9u  n"n#URA                  U"5        U RC                  U#US?9  GM-  USC:X  d  GM6  UR=                  UU SDSE.5        GMN     UR                  SF5      =(       d    0  Hq  n$URG                  U$R                  SGSH5      / 5      R=                  U$R                  SISJ5      RI                  SK5      S   [;        U$R                  SL5      5      SM.5        Ms     UUUSN.[K        USI[L        1[N        14SO[P        1[R        4SP[6        14SQ[6        14SR[6        14SS.5      E[K        UST[L        1[N        14SU[P        1[R        4SV[:        14SW[L        1[N        14SX[T        1[V        4SP[6        14SYSZ S[[L        1[N        14S\S].4S^.5      EUUUS_S`.E$ )aNvideoidshow)actvideolist_idlistal_videor   r-   mvDataplayerz{}_{}oidr   zhttps://vk.com/video_ext.php?embed_queryz<(?s)<!><div[^>]+class="video_layer_message"[^>]*>(.+?)</div>z0(?s)<div[^>]+id="video_ext_msg"[^>]*>(.+?)</div>zerror message)defaultTrZ   z&<!>/login\.php\?.*\bact=security_checkzqYou are trying to log in from an unusual location. You should confirm ownership at vk.com to log in with this IP.zJVideo %s has been removed from public access due to rightholder complaint.zvVideo %s is only available for registered users, use --username and --password options to provide account credentials.zVideo %s does not exist.z$Video %s is temporarily unavailable.zAccess denied to video %s.zEVideo %s is no longer available, because its author has been blocked.z=Video %s is no longer available, because it has been deleted.z)Video %s is not available in your region.)
u   >Видеозапись .*? была изъята из публичного доступа в связи с обращением правообладателя.<zR>The video .*? was removed from public access by request of the copyright holder.<z<!>Please log in or <z<!>Unknown erroru3   <!>Видео временно недоступноz<!>Access deniedun   <!>Видеозапись недоступна, так как её автор был заблокирован.zJ<!>This video is no longer available, because its author has been blocked.zB<!>This video is no longer available, because it has been deleted.z1<!>The video .+? is not available in your region.z)var\s+playerParams\s*=\s*({.+?})\s*;\s*\nzplayer paramszG\ssrc="((?:https?:)?//rutube\.ru\\?/(?:video|play)\\?/embed(?:.*?))\\?"\ z(?s)var\s+opts\s*=\s*({.+?});zurl\s*:\s*'((?!/\b)[^']+)//zhttps:r   r   liver
   z.class=["\']mv_info_date[^>]+>([^<]+)(?:<|from)zupload datedatez+class=["\']mv_views_count[^>]+>\s*([\d,.]+)z
view count)httpr   rtmp)r3   cache)
extra_datalive_mp4postlive_mp4z^(?:url|cache)(\d+)heightr   )	format_idr3   r   source_preferencer   hlshls_live_playbackm3u8_nativeF)m3u8_idr%   r   )targetdash)dash_live_playbackdash_unimpd_idr%   r   flv)r   r3   r   subslangenr   z.srt.r3   )r   r3   )r   formats	subtitlesdescr   likes	commcount)r   r   r   r   r   md_titler   jpg	md_author)	author_idauthorId
time_codesc                 (    [        US   [        5      $ )Ntime)
isinstanceint_vs     rO   <lambda>$VKIE._real_extract.<locals>.<lambda>F  s    
1V9c8RrQ   textr   )r   r   )r   r   r   r   r   r   r   )ressource)r   r   is_live_format_sort_fields),_match_valid_urlgroupru   getformatr_   _html_search_regexr   r`   ra   items_parse_jsonr9   r	   _extract_url
url_resultie_keyr   _proto_relative_urlreplacenextr   _extract_embed_urlsr   r   
startswithr   r   r   r   append#_extract_m3u8_formats_and_subtitlesextend_merge_subtitles"_extract_mpd_formats_and_subtitles
setdefaultsplitr   strr   r   filterr   any)%rA   r3   mobjrC   mv_datarX   r   rn   	info_pageoptsr   error_messageERROR_COPYRIGHTERRORSerror_re	error_msgyoutube_url	vimeo_urlm_rutube
rutube_urldailymotion_urlodnoklassniki_url
sibnet_urlm_opts
m_opts_urlopts_urlr   r   r   r   r   r   
format_urlr   fmtsr   subs%                                        rO   _real_extractVKIE._real_extract  s   $$S)::i(!D
 jj+G&V,,ZHG
I2;Dhhx(.BGXXh'-2F~~djj&7D9IJH../$**]2KKXWI !33PGI?D 4 :M $]TBByyBINN$ H!# # kO    X + 7 - X X P <=FB (.||~#99X11()=MM (6 %%d&8&8<?',-57F  ,,Y7??;	0@0@0BCC((8	 ??9gnn.>??99VXac11q!))$35J??:..}@@PRVW???M4H4H4JKK+88C??#4o6L6L6NOO-;;CKTR
??:..;YG#?aQJ%++A.&&t,,'(2Hx00h" ((6"a'%d&=&==y4 '> ') * K-8&9I-J 	   2 2:|T !3 !3 4
 	%)ZZ\!Iz$Z0JZ%:%:;Q%R%R$$%566 $NN$T%7%7*Ix &8 &O P!*% )*$   %%e,,>Q1Q!EE%%U F B
d t$%%d9%=%%f--)Ce2e!DD% E I
dt$%%d9%=f$!*%   7 &2B 88F#)r)C  !6;BBwww/55c:2>"3775>2D  * "
 7!C5<.9 &f='+7&6"-}!=% 	
 4$sel^< -
|VD#k]3(3%,@ 9K=#N'+7)+R$sel^<"(U " 
. #$#45
 	
rQ   rw   N)rx   ry   rz   r{   IE_NAMEIE_DESC_EMBED_REGEX
_VALID_URLr   r   _TESTSr1  r}   rw   rQ   rO   r   r   s   s   GGopLJ$ U(@tD)')!$!J '/!	
& =+"(*')!$!J	
" %_(D@)')J
 '/	
" X+8t !$&!')*J	
$ $<mu { E	
 C z <  c 8  c z $T <   G!" 4#$ #!67Y*-'1	
> (T?E0)(' !!4  N'	
, M+!$!J'.)C*E	
& >5,F<+') 	
  9Z)[0 )('4!$!   ''	
, )@+ ME7*!$! 3&')	
( A+vEA*!$! 3&')	
* ;!		
 X!	
 =!	
 @!	
 =!	
 =!	
 ;!	

 B!	

 =!	

 J!	
wFBG
rQ   r   c            	           \ rS rSrSrSrSr\ S3\ S3/rSSS	0S
S.SSS0SS.SSS0SS.SSS.SSS.SSS.SSS./r\	R                  " SSS/5      rS rS rSrg)VKUserVideosIEiR  zvk:uservideoszVK - User's Videosz4https?://(?:(?:m|new)\.)?vk(?:video\.ru|\.com/video)z/playlist/(?P<id>-?\d+_-?\d+)z7/(?P<id>@[^/?#]+)(?:/all)?/?(?!\?.*\bz=video)(?:[?#]|$)z!https://vk.com/video/@mobidevicesr   z-17892518_alliK  )r3   r   playlist_mincountz2https://vk.com/video/@mobidevices?section=uploadedz-17892518_uploaded   z*https://vkvideo.ru/playlist/-204353299_426z-204353299_playlist_426!   z)https://vk.com/video/@gorkyfilmstudio/allTr   zhttps://vkvideo.ru/@mobidevicesz*https://vk.com/video/playlist/-174476437_2z(https://vkvideo.ru/playlist/-51890028_-2Videoowner_idc           	   #     #    U R                  SUSSUUS.5      S   U   nUS   nUS   nUS   n U Hf  nU R                  R                  US S 5      nS	UR                  UR                  4-  n	U R                  S
U	-   [        R                  5       U	5      v   Mh     XE:  a  g U R                  SUSUUUS.5      S   U   nUS   n
U
(       d  U R                  U SXT-
   S35        g XJ-  nUS   nM  7f)Nr   load_videos_silentr   )r   offsetr   sectioncounttotalr   r
   z%d_%dzhttps://vk.com/videoz: Skipping z unavailable videos)	ru   _VIDEO_maker>  r   r
  r   r  r8   )rA   page_idrB  video_list_jsonrC  rD  
video_listr   r   rC   	new_counts              rO   _entriesVKUserVideosIE._entries{  sK    00W'	G
 
 
   (($V,
#KK%%eBQi0"ajj!$$%77oo*X5t{{}hP P $
 ~"44Z+"	K 
 
 O (0I'+em_DWXYE(0J' s   C0C2c           	         U R                  U5      nU R                  X5      nUR                  S5      (       aU  [        U R	                  SUSU5      S[
        1[        1[        S5      145      n[        [        U5      S5      =(       d    SnOUR                  S5      u  pFnS	U 3n[        [        S
U5      5      nU R                  U R                  XE5      U SU 3U5      $ )N@z\bvar newCur\s*=zcursor datar   zpage id)rB  r   allr   	playlist_VideoInfoPanel__title)	_match_idr_   r  r   _search_jsonr   r   r   r   	partitionr   r   playlist_resultrK  )rA   r3   u_idrG   rG  rB  r   playlist_titles           rO   r1  VKUserVideosIE._real_extract  s    ~~c"((3??3"!!"5wtT}wy/A.BCEG #8C=.AJUG"&.."5G!'+G#$89PRY$Z[##DMM'$CyPQRYQZE[]kllrQ   rw   N)rx   ry   rz   r{   r3  r4  _BASE_URL_REr6  r7  collections
namedtuplerE  rK  r1  r}   rw   rQ   rO   r9  r9  R  s    G"GJL>67>PQJ
 3/
 " D&
 ! <+
   ; 1 < :7F> ##Gj$-?@F1@mrQ   r9  c                       \ rS rSrSrSrSSSSS.S	S
SSSSSSS.S.SSSSSSSSS.S./SS0S.SSSSS.SS.S SS!.S"SS!./rS#r\R                  " S$/ S%Q5      r
S& rS' rS( rS)rg*)+VKWallPostIEi  zvk:wallpostzPhttps?://(?:(?:(?:(?:m|new)\.)?vk\.com/(?:[^?]+\?.*\bw=)?wall(?P<id>-?\d+_\d+)))z-https://vk.com/bs.official?w=wall-23538238_35z-23538238_35z%Black Shadow - Wall post -23538238_35z$md5:190c78f905a53e0de793d83933c6e67f)r   r   r    5ba93864ec5b85f7ce19a9af4af080f6135220665_111806521m4au.   Black Shadow - Слепое Верованиеir  zBlack Shadowu   Слепое Верование)r   r   r   r   r   artisttrack)r=   r    4cc7e804579122b17ea95af7834c9233135220665_111802303uG   Black Shadow - Война - Негасимое Бездны Пламя!i  u8   Война - Негасимое Бездны Пламя!r   T)r3   r   playlistr   z$https://vk.com/wall-32370614_7173954z-32370614_7173954z$md5:9f93c405bbc00061d34007d78c75e3bcz$md5:953b811f26fa9f21ee5856e2ea8e68fcr   )r3   r   playlist_countzhttps://vk.com/wall-23538238_35r   z!https://m.vk.com/wall-23538238_35zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0PQRSTUVWXYZO123456789+/=Audio)r   r>  r3   r   	performerr   album_idunkauthor_linklyricsflagscontextextrahashes	cover_urladsc                     SnS=p4U H\  nU R                   R                  U5      nUS-  nU(       a  SU-  U-   OUnUS-  nU(       d  MB  U[        SUSU-  S-  -	  -  5      -  nM^     U$ )	Nr   r      @   r         )_BASE64_CHARSindexchr)rA   encdecencrconds           rO   _decodeVKWallPostIE._decode  s~    	A""((+Aq5D"Q
AFAts3rAvz!2233  
rQ   c                    SU;   a  UR                  S5      S   R                  S5      nU R                  US   5      R                  [        S5      5      u  pE[        U R                  US   5      5      n[	        U5      nS /U-  n[        U5      U-  n[        US-
  SS5       H  n	XiS-   -  X-   -  U-  nXU	'   M     [        SU5       H  n	X   n
XvS-
  U	-
     nX   X'   XU'   M     SR                  U5      nU$ )	Naudio_api_unavailablez?extra=r   #   r   r-   r   )r  r  r{  r   lenr   rangejoin)rA   mask_urlvk_idro  r   baseurl_lenindexesrz  r  r  s              rO   _unmask_urlVKWallPostIE._unmask_url  s
   "h.NN9-a066s;Ell58,223r7;GADLLq23H(mGfw&GI%E7Q;B/ E*UY6'A"
 0 1g&K!a0&o"#	 '
 wwx(HrQ   c                 &  ^ ^^ T R                  T5      nT R                  SUSSU-   S.5      S   n[        [        SU5      5      n/ n[        R
                  " SU5       H  mT R                  [        T5      U5      mTS   (       d  M*  [        TR                  S	5      5      n[        TR                  S
5      5      nUR                  TS    STS    3[        XvSS9[        U4S j5      [        TR                  S5      5      UUUTS   SSSSS./S.5        M     UR                  U U4S j[        [        R
                  " S[        SU5      5      5       5       5        T R!                  XR[        USU 3SS9[        [        SU5      5      5      $ )Nwkviewr   wall)r   wr   PostHeaderTitle__authorNamezdata-audio="([^"]+)r3   r   ra  r>  r   r   z - r*   c                  \   > TS   R                  S5       V s/ s H  n SU 0PM	     sn $ s  sn f )NcoverUrl,r3   )r  )uaudios    rO   r   ,VKWallPostIE._real_extract.<locals>.<lambda>  s.    E*DUD[D[\_D`/aD`q
D`/a/as   )r   r`  nonemp3m4a_dash)r3   r   vcodecacodec	container)r   r   
thumbnailsr   r   ra  rb  r   c              3   d   >#    U  H%  nTR                  [        TU5      [        5      v   M'     g 7fN)r
  r   r   ).0entryrA   r3   s     rO   	<genexpr>-VKWallPostIE._real_extract.<locals>.<genexpr>(  s0      ? P>etwsE':DAA P>s   -0z0<a[^>]+href=(?:["\'])(/video(?:-?[\d_]+)[^"\']*)wl_post_bodyz
Wall post wall_post_text)rR  ru   r   r   r`   findallr  r   r  r  r   r   r   r  setr   rU  )	rA   r3   post_idrG   r   entriesr   ra  r  s	   ``      @rO   r1  VKWallPostIE._real_extract  s   ..%((7'!=
  
 23PRYZ[ZZ 6@E$$\%%8'BE< 7!34E!%))H"56FNNz*+1U4[M:&vEB&'ab'		*(=>$  < $#!+   A. 	 ?sSUS]S]?">7;T= P> ? 	? ##mH
7)6LTYZ+,<gFGI 	IrQ   rw   N)rx   ry   rz   r{   r3  r6  r7  ry  rZ  r[  _AUDIOr  r  r1  r}   rw   rQ   rO   r]  r]    s    GdJ ? <A
 6+I*(:
 6+b*(S
0 T
?"H 6%;A

 	 1 3_3Fh XM##G  .P  QF
&)IrQ   r]  c                   >    \ rS rSrSrSSSSSSS	S
.rS rS rS rSr	g)VKPlayBaseIEi1  z5https?://(?:vkplay\.live|live\.vk(?:play|video)\.ru)/256x144426x240640x360852x4801280x720	1920x1080	2560x1440)tinylowestlowmediumhighfull_hdquad_hdc                     U R                  X5      n[        U R                  SUSU5      U[        S9nU(       d  [	        S5      eU$ )Nz&<script[^>]+\bid="initial-state"[^>]*>zinitial state)expected_typez;Unable to extract video info from html inline initial state)r_   r   rS  dictr   )rA   r3   rC   r7   rG   
video_infos         rO   _extract_from_initial_state(VKPlayBaseIE._extract_from_initial_state=  sP    ((7!$"3"35wQY#[&
  !^__rQ   c           
         / n[        USSSS 45       H  nUS   n[        US   5      nUS;   d  SU;   a"  UR                  U R                  XRUS	S
95        MD  US:X  a"  UR                  U R	                  XRUS	S95        Ml  US;   a  U R                  SU S35        M  UR                  USUS.[        U R                  R                  U5      5      E5        M     U$ )NrX   r   
playerUrlsc                 6    [        US   5      =(       a    US   $ )Nr3   type)r   r   s     rO   r   /VKPlayBaseIE._extract_formats.<locals>.<lambda>I  s    k!E(6K6YPQRXPY6YrQ   r3   r  )r   live_hlslive_playback_hlsz.m3u8F)r   r%   r   r   )	live_dashlive_playback_dashz#Not extracting unsupported format ""r   )r3   r   r   )
r   r   r  _extract_m3u8_formats_extract_mpd_formatsr;   r  r   _RESOLUTIONSr  )rA   stream_inforC   r   streamr3   r   s          rO   _extract_formatsVKPlayBaseIE._extract_formatsF  s    ";<)Y1[ \F-C#F6N3IDDSVt99#QZbg9hif$t88y`e8fgAA  #FykQR!ST !*  't'8'8'<'<Y'GH	  \" rQ   c                     [        US[        14S[        14S[        14S[        14SS[        14SS[        14SS[        1S	 14S
S[        14S
S[        14S[        14S[
        14SS[        14S.SS9$ )Nr   r   	startTime
previewUrlrC  viewsr   categoryc                     U (       a  U /$ S $ r  rw   )xs    rO   r   3VKPlayBaseIE._extract_common_meta.<locals>.<lambda>c  s    1#BTPTBTrQ   )user)blogownernickr   isOnlineviewers)r   r   release_timestampr   r   r   r   r   r   r   r   concurrent_view_countF)get_all)r   r   r  r   r   bool)rA   r  s     rO   _extract_common_meta!VKPlayBaseIE._extract_common_meta[  s    K+'u%"-}!=&6"Gk];"Gk];%w8T7UV4fseD7}M#k]3"TF+&-y;-%H*
  	rQ   rw   N)
rx   ry   rz   r{   rY  r  r  r  r  r}   rw   rQ   rO   r  r  1  s2    KLL*rQ   r  c                   v    \ rS rSr\R
                   S3rSSSSSSS	S
SS\\S/S.SS0S.SSS.SSS./rS r	Sr
g)VKPlayIEil  z.(?P<username>[^/#?]+)/record/(?P<id>[\da-f-]+)zHhttps://vkplay.live/zitsmann/record/f5e6e3b5-dc52-4d14-965d-0680dd2882daz$f5e6e3b5-dc52-4d14-965d-0680dd2882dar   uH   Atomic Heart (пробуем!) спасибо подписчику EKZO!ZitsmanN13159830iWd20230507zXre:https://[^/]+/public_video_stream/record/f5e6e3b5-dc52-4d14-965d-0680dd2882da/previewip)  zAtomic Heart)r   r   r   r   r   r  release_dater   r   r   r   r   r   r   r   zPhttps://live.vkplay.ru/lebwa/record/33a4e4ce-e3ef-49db-bb14-f006cc6fabc9/recordsTr   zQhttps://live.vkvideo.ru/lebwa/record/33a4e4ce-e3ef-49db-bb14-f006cc6fabc9/recordsc                    U R                  U5      R                  5       u  p#[        U R                  SU SU 3USS9SS[        145      nU(       d  U R                  XS5      n0 U R                  U5      EUU R                  XC5      S.E$ )	N https://api.vkplay.live/v1/blog/z/public_video_stream/record/Fr$   rX   record)r  currentRecordrX   )r   r   )r  groupsr   rq   r  r  r  r  )rA   r3   rb   rC   record_infos        rO   r1  VKPlayIE._real_extract  s    !2237>>@"4#6#6.xj8TU]T^_aiqv $7 $xXv&( ::3JmnK
''4
,,[C
 	
rQ   rw   Nrx   ry   rz   r{   r  rY  r6  r   r7  r1  r}   rw   rQ   rO   r  r  l  s|    !..//]^JY8_"%!+&t)*
 #F+!$ b c)F2
rQ   r  c                   z    \ rS rSr\R
                   S3rSSSSSSS	S
S\\\S/SS.SSS0S.SSS.SSS./rS r	Sr
g)VKPlayLiveIEi  z(?P<id>[^/#?]+)/?(?:[#?]|$)zhttps://vkplay.live/baydaz$f02c321e-427b-408d-b12f-ae34e53e0ea2r   u!   re:эскапизм крута .*Bayda12279401iǐd20230619z5re:https://[^/]+/public_video_stream/12279401/previewz
EVE Onliner   )r   r   r   r   r   r  r  r   r   r  r   r   r   
livestreamr   T)r3   r   r   r   zhttps://live.vkplay.ru/lebwar   z https://live.vkvideo.ru/panterkac                     U R                  U5      nU R                  SU S3USS9nU(       d  U R                  XS5      nU R                  X25      nU(       d!  [	        US[
        145      (       d	  [        US9e0 U R                  U5      ESU0E$ )	Nr  z/public_video_streamFr$   )r  r  rX   r  r  )rC   r   )rR  rq   r  r  r   r  r   r  )rA   r3   rb   r  r   s        rO   r1  VKPlayLiveIE._real_extract  s    >>#&)).xj8LMx_d * f::3JpqK''>|K*tf9MNNx00
''4
w
 	
rQ   rw   Nr  rw   rQ   rO   r  r    s    !..//JKJ*89%!+&Q%('.$
 "D)%( . 2-F6
rQ   r  )0rZ  r<   r`   urllib.parser4   commonr   dailymotionr   odnoklassnikir   sibnetr   vimeor   youtuber	   jsinterpr   utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   utils.traversalr   r   r!   r   r9  r]  r  r  r  rw   rQ   rO   <module>r     s      	  ! & * !   $    ( 4L} L^\
8 \
~WmX WmtBI8 BIJ8= 8v(
| (
V,
< ,
rQ   