
    bi                        d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlm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mZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d	dl&m'Z'm(Z(  G d de          Z) G d de)          Z* G d de)          Z+ G d de)          Z, G d de          Z- G d de-          Z. G d de-          Z/dS )    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                   6     e Zd ZdZdd fd
Zd ZddZ xZS )VKBaseIEvkTfatalc          	      ^    t                      j        ||g|R d|i|}|du r|S |\  }}|j        }	t          j                            |	          j        dk    r|S |                     t          |od| ddd                     t          |	t          hd	d
t          d          hf          }
|                     d|d          }t          d|           } |                    d          g           }|                     d|            t!          j        |
 d|                                                                           }|                     d|            |                     t+          |	d|i          |ddd            t                      j        ||g|R ddi|S )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                  M/DATA/AppData/hermes/venv/lib/python3.11/site-packages/yt_dlp/extractor/vk.pyr1   z!VKBaseIE._download_webpage_handle'   s   35773NHktkkk[`kdjkkuO <  //48IIIO}(X.   	 	 	
 &mJ	20@(A(A'B6D E E &&[13 3	 :y::;;+s##F++B//MtMMNNN;.99499@@BBCCMMOO=8==>>> 	]UH,=>>.0NVZ 	 	\ 	\ 	\ 0uww/f4fffW[f_efff    c                    |                      dd d          \  }}|                     |          }|                    |                    d          |                    d          d           |                     |d           |                     dd dt          |                    }t          j        d	|          rt          d
d          d S )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)
r1   _hidden_inputsupdater=   _apply_first_set_cookie_header_download_webpager   researchr   )r@   usernamepassword
login_page
url_handle
login_forms         rN   _perform_loginzVKBaseIE._perform_loginK   s   !%!>!>d$<"> ">
J ((44
__X..OOH--
 
 	 	 	 	++J
CCC++"D#J// , 1 1

 9%z22 	V EPTV V V V	V 	VrO   c           	         d| d}d|d<   |                      ||t          |          ||dd          d         \  }}|d	k    r|                                  n2|d
k    r,t          t	          |d         dd                   d          |S )Nzhttps://vk.com/z.phpr   alXMLHttpRequest)RefererzX-Requested-With)rV   r$   headerspayload38r   r,   TrX   )_download_jsonr   raise_login_requiredr   r   )r@   r6   rB   rV   r$   endpointcoderk   s           rN   _download_payloadzVKBaseIE._download_payloadc   s    /T///T
++h%7%=%=U#$4  ,  
 g 3;;%%''''S[[ GAJqt,<!=!=MMMMrO   )T)__name__
__module____qualname___NETRC_MACHINEr1   re   rr   __classcell__)rM   s   @rN   r!   r!   $   sx        NNR "g "g "g "g "g "g "gHV V V0       rO   r!   c                   j   e Zd ZdZdZdgZdZddddd	d
ddddeeddddiddddddddddeedddddddd
ddddddd 	ddid!d"d#dd$d	d%ed&ed'd(d)dd*dd+d,i d-d.d/dd0d1d2d3d4d5d6d7d8d9d:d;d<ed=d>d?d@dAedBdCdDdEdFd9dGdHdIdJdKdLdMgdNedOdPdQdRdSdTdUddVdWdXdYdZd[dOd\eed]ed^d_d`dadbdededdcdddedfdgdhdiddjdkdlddmdndodpdqdrdsdtdudvdwddxdydzd{d|d}dJeed~ddEiddddddddddeedddddddRdddddddeedddddddddEdddEdddEdddEdddEdddEdddEdddEdddEdddEdgZ	d Z
dS )VKIEr"   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r2   	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   )r2   r   zEmbedded videozJhttps://vk.com/video_ext.php?oid=-77521&id=162222515&hash=87b046504ccd8bfa)	r   r   r   r   r   r   r   r   r   )rU   r2   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   )rU   r2   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.)rU   r2   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)r2   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)rU   r2   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r2   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                 D   |                      |          }|                    d          }i }|rxd|d}|                    d          }|r||d<   |                     d||          }|d         }|d         }	|	                    d	          pi }|	                    d
          pi }
n9d                    |                    d          |                    d                    }|                     d|                    d          z   |          }|                     ddg|dd           }|rt          |d          t          j	        d|          rt          dd          d}||ddddddddd 
}|
                                D ].\  }}t          j	        ||          rt          ||z  d          /|                     |                     d!|d"          |          }
t          j        |          }|r'|                     |t          j                              S t#          j        ||          }|'|                     |t#          j                              S t          j	        d#|          }|Q|                     |                    d                              d$d%                    }|                     |          S t)          t+          j        ||          d           }|r'|                     |t+          j                              S t/          j        |          }|r'|                     |t/          j                              S t)          t1          j        ||          d           }|r|                     |          S t          j	        d&|          }|rnt          j	        d'|                    d                    }|rD|                    d          }|                    d(          rd)|z   }|                     |          S |
d*         d+         }|                    d,          d-k    }t5          |                     d.|d/d                     p!t7          |                    d0                    }t9          |                     d1|d2d                     }g }i }|
                                D ]q\  }} t;          |           } | r|                     d3          s-|                    d4          s|d5v rBt7          |                     d6|d7d                     }!|                    || d8d|!d9           |                    d:          rR|d;k    rL|                     | |d8d<|d=|>          \  }"}#|                     |"           | !                    |#|?           |                    d@          rN|dAvrJ| "                    | ||d=B          \  }"}#|                     |"           | !                    |#|?           R|dCk    r|                    || dDdE           s|                    dF          pi D ]}$|#                    |$                    dGdH          g                               |$                    dIdJ          $                    dK          d         t;          |$                    dL                    dM           |||dNtK          |dItL          htN          hfdOtP          htR          fdPt6          hfdQt6          hfdRt6          hfdS          tK          |dTtL          htN          hfdUtP          htR          fdVt:          hfdWtL          htN          hfdXtT          htV          fdPt6          hfdYdZ d[tL          htN          hfd\d]fd^          |||d_d`S )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)defaultTrX   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)r2   cache)
extra_datalive_mp4postlive_mp4z^(?:url|cache)(\d+)heightr{   )	format_idr2   r   source_preferencer   hlshls_live_playbackm3u8_nativeF)m3u8_idr$   r   )targetdash)dash_live_playbackdash_unimpd_idr$   r   flv)r   r2   r   subslangenr   z.srt.r2   )r   r2   )r   formats	subtitlesdescr   likes	commcount)r   r   r   r   r   md_titler   jpg	md_author)	author_idauthorId
time_codesc                 8    t          |d         t                    S )Ntime)
isinstanceint_vs     rN   <lambda>z$VKIE._real_extract.<locals>.<lambda>F  s    
1V9c8R8R rO   textr   )r   r   )r   r   r   r   r   r   r   )ressource)r   r   is_live_format_sort_fields),_match_valid_urlgrouprr   getformatr]   _html_search_regexr   r^   r_   items_parse_jsonr8   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)%r@   r2   mobjrB   mv_datarV   r   rk   	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%                                        rN   _real_extractzVKIE._real_extract  s   $$S))::i(( J	7! D
 jj++G '&V,,Z4HHG
I2;Dhhx((.BGXXh''-2FF~~djj&7&7D9I9IJJH../$**]2K2KKXW WI !33PGI?D 4 : :M  C$]TBBBByBINN #$ H!# # # # kO    X + 7 - X X P <= FB (.||~~ N N#)9Xy11 N(X)=MMMMN %%d&8&8<?', ',-57 7F  ,Y77 	D??;	0@0B0BCCC(i88	 ??9gn.>.>???9VXac c11q!!))$335 5J??:...}@iPPRVWW 	L???M4H4J4JKKK+8CC 	P??#4o6L6N6NOOO-;CKKTRR
 	/??:...;YGG 	1#?aQQJ 1%++A..&&t,, 3'(2Hx000h" ((6""a'%d&=&==y4 '> ') ') * * K-8&9I9I-J-J 	   2 2:|T !3 !3 !3 4 4
 	%)ZZ\\ 	 	!Iz$Z00J Z%:%:;Q%R%R $$%566  $NNN$T%7%7*Ix &8 &O &O P P!*% )*$        %%e,, >Q1Q1Q!EE%%U F B B
d t$$$%%d9%====%%f-- 
)Ce2e2e!DD% E I I
dt$$$%%d9%====f$$!*%        88F##)r 	 	C  !6!6;;BBwww//55c::2>"3775>>22D D     "
 
 7!C5<.9 &f='+7&6"-}!=% %  	
 4$sel^< -
|VD#k]3(3%,@ 9K=#N'+7)+R+R$sel^<"(U U " "  
. #$#45
 
 
 	
rO   N)rs   rt   ru   IE_NAMEIE_DESC_EMBED_REGEX
_VALID_URLr   r   _TESTSr(   rO   rN   ry   ry   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
 G
 G
 G
 G
rO   ry   c            	           e Zd ZdZdZdZe de dgZdddid	d
dddidd
dddidd
ddddddddddddgZ ej	        dddg          Z
d Zd ZdS )VKUserVideosIEz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  )r2   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           	   #   .  K   |                      d|dd||d          d         |         }|d         }|d         }|d         }	 |D ]h}| j                            |d d	                   }d
|j        |j        fz  }	|                     d|	z   t                                          |	          V  i||k    rd S |                      d|d|||d          d         |         }|d         }
|
s |                     | d||z
   d           d S ||
z  }|d         })Nr   load_videos_silentr   )r   offsetr   sectioncounttotalr   Tr
   z%d_%dzhttps://vk.com/videoz: Skipping z unavailable videos)	rr   _VIDEO_maker5  r   r  ry   r  r7   )r@   page_idr9  video_list_jsonr:  r;  
video_listr   r   rB   	new_counts              rN   _entrieszVKUserVideosIE._entries{  s     00W'	G
 G
  
 
   (($V,
	1# P PK%%eBQBi00"aj!$%77oo*X5t{{}}hP P P P P P~~"44Z+"	K K  
 
 O (0I 'XXeemXXXYYYYE(0J'	1rO   c           	          |                      |          }|                     ||          }|                    d          rdt          |                     d|d|          dt
          ht          ht          d          hf          }t          t          |          d          pd}n|	                    d          \  }}}d	| }t          t          d
|                    }|                     |                     ||          | d| |          S )N@z\bvar newCur\s*=zcursor datar   zpage id)r9  r   allr   	playlist_VideoInfoPanel__title)	_match_idr]   r  r   _search_jsonr   r   r   r   	partitionr   r   playlist_resultrB  )r@   r2   u_idrF   r>  r9  r   playlist_titles           rN   r(  zVKUserVideosIE._real_extract  s   ~~c""((d33??3 	,"!!"5wtTT}wy/A/A.BCE EG #8C==.AAJUGG"&.."5"5GQ+'++G#$89PRY$Z$Z[[##DMM'7$C$CE[E[RYE[E[]klllrO   N)rs   rt   ru   r)  r*  _BASE_URL_REr,  r-  collections
namedtupler<  rB  r(  r.  rO   rN   r0  r0  R  s-       G"GJL777QQQJ
 3/
 "  D&
 !  <+
    ;  1  <  : 7F> $[#Gj$-?@@F1 1 1@m m m m mrO   r0  c                       e Zd ZdZdZddddddd	d
dddddddddd
dddddddgddiddddddddddd d!dd gZd"Z ej        d#g d$          Z	d% Z
d& Zd' Zd(S ))VKWallPostIEz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)r2   r   playlistr   z$https://vk.com/wall-32370614_7173954z-32370614_7173954z$md5:9f93c405bbc00061d34007d78c75e3bcz$md5:953b811f26fa9f21ee5856e2ea8e68fcr   )r2   r   playlist_countzhttps://vk.com/wall-23538238_35r   z!https://m.vk.com/wall-23538238_35zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0PQRSTUVWXYZO123456789+/=Audio)r   r5  r2   r   	performerr   album_idunkauthor_linklyricsflagscontextextrahashes	cover_urladsc                     d}dx}}|D ]R}| j                             |          }|dz  }|rd|z  |z   n|}|dz  }|r|t          d|d|z  dz  z	  z            z  }S|S )	Nr   r      @   r         )_BASE64_CHARSindexchr)r@   encdecencrconds           rN   _decodezVKWallPostIE._decode  s    	A 	4 	4A"((++Aq5D")Q

AFA 4s3rAvz!22333
rO   c                 |   d|v r6|                     d          d                              d          }|                     |d                                        t          d                    \  }}t          |                     |d                             }t	          |          }d g|z  }t          |          |z  }t          |dz
  dd          D ]}	||	dz   z  ||	z   z  |z  }|||	<   t          d|          D ](}	||	         }
||dz
  |	z
           }||         ||	<   |
||<   )d                    |          }|S )	Naudio_api_unavailablez?extra=r   #   r   r,   r   )r  rx  rp  r   lenr   rangejoin)r@   mask_urlvk_idrd  r   baseurl_lenindexesro  rt  ru  s              rN   _unmask_urlzVKWallPostIE._unmask_url  sJ   "h..NN9--a066s;;Ell58,,223r77;;GAtDLLq2233H(mmGfw&GII%E7Q;B// # # AE*UQY6'A"

1g&& $ $QK!a0&uo"#wwx((HrO   c                                                     }                     d|dd|z   d          d         }t          t          d|                    }g }t	          j        d|          D ]                     t                    |          d         s.t                              d	                    }t                              d
                    }|	                    d          dd          t          ||d          t          fd          t                              d                    |||d         dddddgd           |                     fdt          t	          j        dt          d|                              D                                             ||t          |d| d          t          t          d|                              S )Nwkviewr   wall)r   wr   PostHeaderTitle__authorNamezdata-audio="([^"]+)r2   r   rV  r5  r   r   z - r)   c                  N    d  d                              d          D             S )Nc                     g | ]}d |iS )r2   r.  ).0us     rN   
<listcomp>z@VKWallPostIE._real_extract.<locals>.<lambda>.<locals>.<listcomp>  s    /a/a/aq
/a/a/arO   coverUrl,)r  )audios   rN   r   z,VKWallPostIE._real_extract.<locals>.<lambda>  s*    /a/aE*DUD[D[\_D`D`/a/a/a rO   r   rU  nonemp3m4a_dash)r2   r   vcodecacodec	container)r   r   
thumbnailsr   r   rV  rW  r   c              3   j   K   | ]-}                     t          |          t                    V  .d S N)r  r   ry   )r  entryr@   r2   s     rN   	<genexpr>z-VKWallPostIE._real_extract.<locals>.<genexpr>(  sK       ? ?etwsE':':DAA ? ? ? ? ? ?rO   z0<a[^>]+href=(?:["\'])(/video(?:-?[\d_]+)[^"\']*)wl_post_bodyz
Wall post wall_post_text)rH  rr   r   r   r^   findallr   r   r   r  r   r   r   r
  setr   rK  )	r@   r2   post_idrF   r   entriesr   rV  r  s	   ``      @rN   r(  zVKWallPostIE._real_extract  sU   ..%%((7'!=
 =
   
 23PRYZZ[[Z 6@@ 	 	E$$\%%8%8'BBE<  7!3!344E!%))H"5"566FNNz*::U4[::&vuEBBB&'a'a'a'abb'		*(=(=>>$  < $#!+       " 	 ? ? ? ? ?sSUS]?">7;;T= T= P> P> ? ? ? 	? 	? 	? ##WmH6L76L6LTYZZZ+,<gFFGGI I 	IrO   N)rs   rt   ru   r)  r,  r-  rn  rO  rP  _AUDIOrx  r  r(  r.  rO   rN   rR  rR    sf       GdJ ? <A
 
 6+I*(: 
 
 6+b*(S 
 
0 T
?" "H 6%;A
 

 	 	 1  3 _3Fh XM#[#G  .P  .P  .P  Q  QF
 
 
  &)I )I )I )I )IrO   rR  c                   8    e Zd ZdZdddddddd	Zd
 Zd Zd ZdS )VKPlayBaseIEz5https?://(?:vkplay\.live|live\.vk(?:play|video)\.ru)/256x144426x240640x360852x4801280x720	1920x1080	2560x1440)tinylowestlowmediumhighfull_hdquad_hdc                     |                      ||          }t          |                     d|d|          |t                    }|st	          d          |S )Nz&<script[^>]+\bid="initial-state"[^>]*>zinitial state)expected_typez;Unable to extract video info from html inline initial state)r]   r   rI  dictr   )r@   r2   rB   r6   rF   
video_infos         rN   _extract_from_initial_statez(VKPlayBaseIE._extract_from_initial_state=  sn    ((h77!$"3"35wQY#[ #[& & &
  	` !^___rO   c           	          g }t          |dddd f          D ]}|d         }t          |d                   }|dv sd|v r-|                    |                     |||d	
                     T|dk    r-|                    |                     |||d	                     |dv r|                     d| d           |                    |d|dt          | j        	                    |                               |S )NrV   r   
playerUrlsc                 <    t          |d                   o|d         S )Nr2   type)r   r   s     rN   r   z/VKPlayBaseIE._extract_formats.<locals>.<lambda>I  s    k!E(6K6K6YPQRXPY rO   r2   r  )r   live_hlslive_playback_hlsz.m3u8F)r   r$   r   r   )	live_dashlive_playback_dashz#Not extracting unsupported format ""r{   )r2   r   r   )
r   r   r
  _extract_m3u8_formats_extract_mpd_formatsr:   r  r   _RESOLUTIONSr   )r@   stream_inforB   r   streamr2   r   s          rN   _extract_formatszVKPlayBaseIE._extract_formatsF  sS   ";<)Y)Y1[ \ \ 	 	F-C#F6N33IDDDSVt99#xQZbg9hhiiiif$$t88hy`e8ffggggAAA  !Sy!S!S!STTTT !*    't'8'<'<Y'G'GHH	      rO   c                    t          |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d	 hfd
dt          hfd
dt          hfdt          hfdt
          hfddt          hfdd          S )Nr   r   	startTime
previewUrlr:  viewsr   categoryc                     | r| gnd S r  r.  )xs    rN   r   z3VKPlayBaseIE._extract_common_meta.<locals>.<lambda>c  s    BT1##PT rO   )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)r@   r  s     rN   _extract_common_metaz!VKPlayBaseIE._extract_common_meta[  s    K+'u%"-}!=&6"Gk];"Gk];%w8T8T7UV4fseD7}M#k]3"TF+&-y;-%H*
 *
    	rO   N)rs   rt   ru   rN  r  r  r  r  r.  rO   rN   r  r  1  sg        KL L    *    rO   r  c                   f    e Zd Zej         dZdddddddd	d
deedgdddidddddddgZd ZdS )VKPlayIEz.(?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                 R   |                      |                                          \  }}t          |                     d| d| |d          ddt          hf          }|s|                     ||d          }i |                     |          ||                     ||          dS )	N https://api.vkplay.live/v1/blog/z/public_video_stream/record/Fr#   rV   record)r  currentRecordrV   )r   r   )r   groupsr   rn   r  r  r  r  )r@   r2   r`   rB   record_infos        rN   r(  zVKPlayIE._real_extract  s    !22377>>@@("4#6#6_x__U]__aiqv $7 $x $xXv&( (  	o::3JmnnK
''44
,,[(CC
 
 
 	
rO   N	rs   rt   ru   r  rN  r,  r   r-  r(  r.  rO   rN   r  r  l  s        !.^^^JY8_"%!+&t)*
 
 #F+! $ b  c )F2
 
 
 
 
rO   r  c                   j    e Zd Zej         dZdddddddd	d
eeedgdddddidddddddgZd ZdS )VKPlayLiveIEz(?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)r2   r   r   r   zhttps://live.vkplay.ru/lebwar   z https://live.vkvideo.ru/panterkac                 L   |                      |          }|                     d| d|d          }|s|                     ||d          }|                     ||          }|s(t	          |dt
          hf          st          |          i |                     |          d|iS )	Nr  z/public_video_streamFr#   )r  r  rV   r  r  )rB   r   )rH  rn   r  r  r   r  r   r  )r@   r2   r`   r  r   s        rN   r(  zVKPlayLiveIE._real_extract  s    >>#&&))MxMMMx_d * f f 	r::3JpqqK''X>> 	1|K*tf9MNN 	1x0000
''44
w
 
 	
rO   Nr  r.  rO   rN   r  r    s        !.KKKJ*89%!+&Q%('.$
 
 "D)% ( .  2 -F6
 
 
 
 
rO   r  )0rO  r;   r^   urllib.parser3   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!   ry   r0  rR  r  r  r  r.  rO   rN   <module>r     s        				     ! ! ! ! ! ! & & & & & & * * * * * * ! ! ! ! ! !             $ $ $ $ $ $                                       ( 4 3 3 3 3 3 3 3L L L L L} L L L^\
 \
 \
 \
 \
8 \
 \
 \
~Wm Wm Wm Wm WmX Wm Wm WmtBI BI BI BI BI8 BI BI BIJ8 8 8 8 8= 8 8 8v(
 (
 (
 (
 (
| (
 (
 (
V,
 ,
 ,
 ,
 ,
< ,
 ,
 ,
 ,
 ,
rO   