
    V|h                     ^   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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   )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(       a  US   R                  OSS pUR                  S5      (       a   U R	                  U5      R                  S5      nU(       d  U$ [        R                  " UR                  R                  S5      5      R                  5       n	U R                  [        USU	05      X#SS	S
9  [         T
U ]  " X/UQ7SS0UD6$ )Nr$   r    zhttps://vk.com/429.html?hash429asciikeyzResolving WAF challengezFailed to bypass WAF challenge)r$   noteerrnoteT)super_download_webpage_handleurl
startswith_get_cookiesgethashlibmd5valueencode	hexdigest_request_webpager   )selfurl_or_requestvideo_idr$   argskwargsresponsechallenge_urlcookier'   	__class__s             M/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/vk.pyr-   !VKBaseIE._download_webpage_handle%   s    73Nktk[`kdjk3;Tv##$>??&&}599)DFO++fll11':;EEG]UG,<=x*4T 	 	V 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)r*   dataonLoginFailedz3Unable to login, incorrect username and/or passwordTexpected)
r-   _hidden_inputsupdater5   _apply_first_set_cookie_header_download_webpager   researchr   )r8   usernamepassword
login_page
url_handle
login_forms         rA   _perform_loginVKBaseIE._perform_login3   s    !%!>!>d$<">
 ((4
__X.OOH-
 	 	++J
C++"D#J/ , 1

 99%z22 EPTV V 3rC   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)rI   r$   headerspayload38r   TrK   )_download_jsonr   raise_login_requiredr   r   )r8   pathr:   rI   r$   endpointcoder_   s           rA   _download_payloadVKBaseIE._download_payloadK   s    $TF$/T
++%7%=U#$4 , 
  3;%%'  S[ GAJq,<!=MMrC    )T)
__name__
__module____qualname____firstlineno___NETRC_MACHINEr-   rX   rh   __static_attributes____classcell__)r@   s   @rA   r    r    "   s'    NNR g gV0 rC   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)VKIE[   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r.   	info_dictparamsz'https://vk.com/video205387401_165548505205387401_165548505zNo namez
Tom Cruise	205387401	   i!Q20130720)rz   r{   r|   r~   r   r   r   r   r   r   r   )r.   r   zEmbedded videozJhttps://vk.com/video_ext.php?oid=-77521&id=162222515&hash=87b046504ccd8bfa)	rz   r{   r~   r|   r   r   r   r   r   )r*   r.   r   r   zBhttps://vk.com/video-93049196_456239755?list=ln-cBjJ7S4jYYx3ADnmDTz-93049196_456239755u   8 серия (озвучка)i   Dizi2021ia20211222z	-93049196)rz   r{   r|   r}   r   r   r~   r   r   r   r   r   zyoutube embedz'https://vk.com/video276849682_170681728rz   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   )r*   r.   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$)rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   z7This video has been deleted and is no longer available.)r*   r.   r   skipz7https://vk.com/clips-74006511?z=clip-74006511_456247211z-74006511_456247211i=czClip by @madempress20221005u%   Шальная Императрицаz	-74006511z$md5:f9315f7786fa0e84e75e4f824a48b056)rz   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)rz   r{   r|   r~   r   r   r   Removed)r.   r3   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)rz   r{   r|   r~   r   r   r   r   r   r   r   zNo formats found)r*   r.   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)rz   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r.   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   rb   mvDataplayerz{}_{}oidrz   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)defaultTrK   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(?:.*?))\\?"\r&   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)r.   cache)
extra_datalive_mp4postlive_mp4z^(?:url|cache)(\d+)heightrv   )	format_idr.   r{   source_preferencer   hlshls_live_playbackm3u8_nativeF)m3u8_idr$   r   )targetdash)dash_live_playbackdash_unimpd_idr$   r   flv)r   r.   r{   subslangenr|   z.srt.r.   )r{   r.   )rz   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     rA   <lambda>$VKIE._real_extract.<locals>.<lambda>.  s    
1V9c8RrC   textr   )r|   r   )r|   r}   r   r~   r   r   r   )ressource)r   r   is_live_format_sort_fields),_match_valid_urlgrouprh   r1   formatrP   _html_search_regexr   rQ   rR   items_parse_json_search_regexr	   _extract_url
url_resultie_keyr   _proto_relative_urlreplacenextr   _extract_embed_urlsr   r   r/   r   r   r   r   append#_extract_m3u8_formats_and_subtitlesextend_merge_subtitles"_extract_mpd_formats_and_subtitles
setdefaultsplitr   strr   r   filterr   any)%r8   r.   mobjr:   mv_datarI   r   r_   	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%                                        rA   _real_extractVKIE._real_extractp  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
 	
rC   rj   N)rk   rl   rm   rn   IE_NAMEIE_DESC_EMBED_REGEX
_VALID_URLr   r   _TESTSr"  rp   rj   rC   rA   rs   rs   [   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
rC   rs   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)VKUserVideosIEi:  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/@mobidevicesrz   z-17892518_alliK  )r.   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)	rh   _VIDEO_maker/  rz   r   rs   r   	to_screen)r8   page_idr3  video_list_jsonr4  r5  
video_listr   r   r:   	new_counts              rA   _entriesVKUserVideosIE._entriesc  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)r3  r   allr   	playlist_VideoInfoPanel__title)	_match_idrP   r/   r   _search_jsonr   r   r   r   	partitionr   r   playlist_resultr=  )r8   r.   u_idwebpager9  r3  r   playlist_titles           rA   r"  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lrC   rj   N)rk   rl   rm   rn   r$  r%  _BASE_URL_REr'  r(  collections
namedtupler6  r=  r"  rp   rj   rC   rA   r*  r*  :  s    G"GJL>67>PQJ
 3/
 " D&
 ! <+
   ; 1 < :7F> ##Gj$-?@F1@mrC   r*  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)rz   r|   r}    5ba93864ec5b85f7ce19a9af4af080f6135220665_111806521m4au.   Black Shadow - Слепое Верованиеir  zBlack Shadowu   Слепое Верование)rz   r{   r|   r   r~   artisttrack)r3   r    4cc7e804579122b17ea95af7834c9233135220665_111802303uG   Black Shadow - Война - Негасимое Бездны Пламя!i  u8   Война - Негасимое Бездны Пламя!r   T)r.   r   playlistr   z$https://vk.com/wall-32370614_7173954z-32370614_7173954z$md5:9f93c405bbc00061d34007d78c75e3bcz$md5:953b811f26fa9f21ee5856e2ea8e68fcr   )r.   r   playlist_countzhttps://vk.com/wall-23538238_35r   z!https://m.vk.com/wall-23538238_35zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0PQRSTUVWXYZO123456789+/=Audio)rz   r/  r.   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)r8   encdecencrconds           rA   _decodeVKWallPostIE._decode  s~    	A""((+Aq5D"Q
AFAts3rAvz!2233  
rC   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   rb   r&   )r  rv  rn  r   lenr   rangejoin)r8   mask_urlvk_idrb  r   baseurl_lenindexesrm  rr  rs  s              rA   _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rC   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="([^"]+)r.   r|   rT  r/  r   rz   z - )delimc                  \   > TS   R                  S5       V s/ s H  n SU 0PM	     sn $ s  sn f )NcoverUrl,r.   )r  )uaudios    rA   r   ,VKWallPostIE._real_extract.<locals>.<lambda>  s.    E*DUD[D[\_D`/aD`q
D`/a/as   )r   rS  nonemp3m4a_dash)r.   r{   vcodecacodec	container)rz   r|   
thumbnailsr   r~   rT  rU  r   c              3   d   >#    U  H%  nTR                  [        TU5      [        5      v   M'     g 7fN)r   r   rs   ).0entryr8   r.   s     rA   	<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)rD  rh   r   r   rQ   findallr   r   r1   r  r   r   r   r  setr   rG  )	r8   r.   post_idrI  r~   entriesr|   rT  r  s	   ``      @rA   r"  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rC   rj   N)rk   rl   rm   rn   r$  r'  r(  rl  rM  rN  _AUDIOrv  r  r"  rp   rj   rC   rA   rP  rP    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rC   rP  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)VKPlayBaseIEi  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)rP   r   rE  dictr   )r8   r.   r:   re   rI  
video_infos         rA   _extract_from_initial_state(VKPlayBaseIE._extract_from_initial_state%  sP    ((7!$"3"35wQY#[&
  !^__rC   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$ )NrI   r   
playerUrlsc                 6    [        US   5      =(       a    US   $ )Nr.   type)r   r   s     rA   r   /VKPlayBaseIE._extract_formats.<locals>.<lambda>1  s    k!E(6K6YPQRXPY6YrC   r.   r  )r   live_hlslive_playback_hlsz.m3u8F)r   r$   r   r   )	live_dashlive_playback_dashz#Not extracting unsupported format ""rv   )r.   r{   r   )
r   r   r  _extract_m3u8_formats_extract_mpd_formatswrite_debugr  r   _RESOLUTIONSr1   )r8   stream_infor:   r   streamr.   r   s          rA   _extract_formatsVKPlayBaseIE._extract_formats.  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	  \" rC   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$ )Nrz   r|   	startTime
previewUrlr4  viewsr   categoryc                     U (       a  U /$ S $ r  rj   )xs    rA   r   3VKPlayBaseIE._extract_common_meta.<locals>.<lambda>K  s    1#BTPTBTrC   )user)blogownernickr   isOnlineviewers)rz   r|   release_timestampr   r   r   r   r~   r   r   r   concurrent_view_countF)get_all)r   r   r	  r   r   bool)r8   r  s     rA   _extract_common_meta!VKPlayBaseIE._extract_common_metaC  s    K+'u%"-}!=&6"Gk];"Gk];%w8T7UV4fseD7}M#k]3"TF+&-y;-%H*
  	rC   rj   N)
rk   rl   rm   rn   rL  r  r  r  r  rp   rj   rC   rA   r  r    s2    KLL*rC   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)VKPlayIEiT  z.(?P<username>[^/#?]+)/record/(?P<id>[\da-f-]+)zHhttps://vkplay.live/zitsmann/record/f5e6e3b5-dc52-4d14-965d-0680dd2882daz$f5e6e3b5-dc52-4d14-965d-0680dd2882darv   uH   Atomic Heart (пробуем!) спасибо подписчику EKZO!ZitsmanN13159830iWd20230507zXre:https://[^/]+/public_video_stream/record/f5e6e3b5-dc52-4d14-965d-0680dd2882da/previewip)  zAtomic Heart)rz   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#   rI   record)r  currentRecordrI   )rz   r   )r   groupsr   rc   r  r  r  r  )r8   r.   rS   r:   record_infos        rA   r"  VKPlayIE._real_extracto  s    !2237>>@"4#6#6.xj8TU]T^_aiqv $7 $xXv&( ::3JmnK
''4
,,[C
 	
rC   rj   Nrk   rl   rm   rn   r  rL  r'  r   r(  r"  rp   rj   rC   rA   r  r  T  s|    !..//]^JY8_"%!+&t)*
 #F+!$ b c)F2
rC   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-ae34e53e0ea2rv   u!   re:эскапизм крута .*Bayda12279401iǐd20230619z5re:https://[^/]+/public_video_stream/12279401/previewz
EVE Onliner   )rz   r{   r|   r~   r   r  r  r   r   r  r   r   r   
livestreamr   T)r.   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  rI   r  r  )r:   r   )rD  rc   r  r  r   r  r   r  )r8   r.   rS   r  r   s        rA   r"  VKPlayLiveIE._real_extract  s    >>#&)).xj8LMx_d * f::3JpqK''>|K*tf9MNNx00
''4
w
 	
rC   rj   Nr  rj   rC   rA   r  r    s    !..//JKJ*89%!+&Q%('.$
 "D)%( . 2-F6
rC   r  ),rM  r2   rQ   commonr   dailymotionr   odnoklassnikir   sibnetr   vimeor   youtuber	   utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   utils.traversalr   r   r    rs   r*  rP  r  r  r  rj   rC   rA   <module>r     s      	 ! & * !      ( 46} 6r\
8 \
~WmX WmtBI8 BIJ8= 8v(
| (
V,
< ,
rC   