
    VGh                     j   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-y)    N   )InfoExtractor)DailymotionIE)OdnoklassnikiIE)
PladformIE)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                   6     e Zd ZdZdd fd
Zd ZddZ xZS )VKBaseIEvkTfatalc                   t        
|   ||g|d|i|}|r|d   j                  ndd }}|j                  d      r | j	                  |      j                  d      }|s|S t        j                  |j                  j                  d            j                         }	| j                  t        |d|	i      ||dd	
       t        
|   ||g|ddi|S )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             \/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/vk.pyr-   z!VKBaseIE._download_webpage_handle&   s    73NHktk[`kdjk3;Tv##$>?&&}599)DFO++fll11':;EEG]UG,<=xu*4T 	 	V w/f4fW[f_eff    c                 \   | j                  dd d      \  }}| j                  |      }|j                  |j                  d      |j                  d      d       | j	                  |d       | j                  dd dt        |            }t        j                  d	|      rt        d
d      y )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_loginzVKBaseIE._perform_login4   s    !%!>!>d$<">
J ((4
__X.OOH-
 	 	++J
C++"D#J/ , 1

 99%z2 EPTV V 3rB   c           	          d| d}d|d<   | j                  ||t        |      ||dd      d   \  }}|d	k(  r| j                          |S |d
k(  rt        t	        |d   dd       d      |S )Nzhttps://vk.com/z.phpr   alXMLHttpRequest)RefererzX-Requested-With)rH   r$   headerspayload38r   TrJ   )_download_jsonr   raise_login_requiredr   r   )r8   pathr:   rH   r$   endpointcoder]   s           rA   _download_payloadzVKBaseIE._download_payloadL   s    $TF$/T
++h%7%=U#$4 , 
 g 3;%%'  S[ GAJq,<!=MMrB   )T)__name__
__module____qualname___NETRC_MACHINEr-   rW   rf   __classcell__)r@   s   @rA   r!   r!   #   s    NNR gV0rB   r!   c                   h   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
y)VKIEr"   VKzX<iframe[^>]+?src=(["\'])(?P<url>https?://vk(?:(?:video)?\.ru|\.com)/video_ext\.php.+?)\1a  (?x)
                    https?://
                        (?:
                            (?:
                                (?:(?:m|new)\.)?vk(?:(?:video)?\.ru|\.com)/video_|
                                (?:www\.)?daxab\.com/
                            )
                            ext\.php\?(?P<embed_query>.*?\boid=(?P<oid>-?\d+).*?\bid=(?P<id>\d+).*)|
                            (?:
                                (?:(?:m|new)\.)?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)rs   rt   ru   rw   rx   ry   rz   r{   r|   r}   r~   )r.   r   zEmbedded videozJhttps://vk.com/video_ext.php?oid=-77521&id=162222515&hash=87b046504ccd8bfa)	rs   rt   rw   ru   ry   r{   rz   rx   r~   )r*   r.   r   r   zBhttps://vk.com/video-93049196_456239755?list=ln-cBjJ7S4jYYx3ADnmDTz-93049196_456239755u   8 серия (озвучка)i   Dizi2021ia20211222z	-93049196)rs   rt   ru   rv   ry   r|   rw   r}   rz   r{   rx   r~   zyoutube embedz'https://vk.com/video276849682_170681728rs   V3K4mi0SYkcrt   ru   z`DSWD Awards 'Children's Joy Foundation, Inc.' Certificate of Registration and License to Operaterv   z$md5:bf9c26cfa4acdfb146362682edd3827ary      r{   20130117rw   zChildren's Joy Foundation Inc.rx   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_limitrz   )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$)rs   rt   ru   rv   rw   r{   rx   rz   r   ry   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)rs   rt   r|   ry   r}   r~   rz   ru   r{   rw   rx   rv   z(https://vk.com/video-110305615_171782105 e13fcda136f99764872e739d13fac1d1z-110305615_171782105u+   S-Dance, репетиции к The way showu   THE WAY SHOW | 17 апреляz
-110305615iQdV20160207)rs   rt   ru   rw   rx   rz   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)rs   rt   ru   rw   ry   r{   rx   rz   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)rs   rt   ru   rv   rw   rx   r|   r}   ry   r~   chaptersrz   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'https://vk.com/video-76116461_171554880z*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_456242564c                    | j                  |      }|j                  d      }i }|rfd|d}|j                  d      }|r||d<   | j                  d||      }|d   }|d   }	|	j                  d	      xs i }|	j                  d
      xs i }
ndj	                  |j                  d      |j                  d            }| j                  d|j                  d      z   |      }| j                  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 
}|j                         D ]+  \  }}t        j                  ||      st        ||z  d       | j                  | j                  d!|d"      |      }
t        j                  |      }|r$| j                  |t        j                                S t#        j                  ||      }|$| j                  |t#        j                                S t%        j                  |      }|r$| j                  |t%        j                                S t        j                  d#|      }|A| j'                  |j                  d      j)                  d$d%            }| j                  |      S t+        t-        j.                  ||      d       }|r$| j                  |t-        j                                S t1        j                  |      }|r$| j                  |t1        j                                S t+        t3        j.                  ||      d       }|r| j                  |      S t        j                  d&|      }|r_t        j                  d'|j                  d            }|r8|j                  d      }|j5                  d(      rd)|z   }| j                  |      S |
d*   d+   }|j                  d,      d-k(  }t7        | j                  d.|d/d             xs t9        |j                  d0            }t;        | j                  d1|d2d             }g }i }|j                         D ]5  \  } }!t=        |!      }!|!r|!j5                  d3      s&| j5                  d4      s| d5v r6t9        | j                  d6| d7d             }"|j?                  | |!d8d|"d9       q| j5                  d:      rE| d;k7  r@| jA                  |!|d8d<| d=|>      \  }#}$|jC                  |#       | jE                  |$|?       | j5                  d@      rB| dAvr>| jG                  |!|| d=B      \  }#}$|jC                  |#       | jE                  |$|?       | dCk(  s!|j?                  | |!dDdE       8 |j                  dF      xs i D ]p  }%|jI                  |%j                  dGdH      g       j?                  |%j                  dIdJ      jK                  dK      d   t=        |%j                  dL            dM       r |||dNtM        |dItN        htP        hfdOtR        htT        fdPt8        hfdQt8        hfdRt8        hfdS      tM        |dTtN        htP        hfdUtR        htT        fdVt<        hfdWtN        htP        hfdXtV        htX        fdPt8        hfdYdZ d[tN        htP        hfd\d]fd^      |||d_d`S )aNvideoidshow)actvideolist_idlistal_videor   r`   mvDataplayerz{}_{}oidrs   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)defaultTrJ   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+)heightro   )	format_idr.   rt   source_preferencer   hlshls_live_playbackm3u8_nativeF)m3u8_idr$   r   )targetdash)dash_live_playbackdash_unimpd_idr$   r   flv)r   r.   rt   subslangenru   z.srt.r.   )rt   r.   )rs   formats	subtitlesdescry   likes	commcount)ru   rv   ry   r}   r|   md_titlerv   jpg	md_author)	author_idauthorId
time_codesc                 (    t        |d   t              S )Ntime)
isinstanceint_vs     rA   <lambda>z$VKIE._real_extract.<locals>.<lambda>4  s    
1V9c8R rB   textr   )ru   r   )ru   rv   r~   rw   rx   ry   r   )ressource)rz   r   is_live_format_sort_fields)-_match_valid_urlgrouprf   r1   formatrO   _html_search_regexr   rP   rQ   items_parse_json_search_regexr
   _extract_url
url_resultie_keyr	   r   _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_datarH   r   r]   	info_pageoptsr   error_messageERROR_COPYRIGHTERRORSerror_re	error_msgyoutube_url	vimeo_urlpladform_urlm_rutube
rutube_urldailymotion_urlodnoklassniki_url
sibnet_urlm_opts
m_opts_urlopts_urlr   rz   r   r   r   r   
format_urlr   fmtsr   subs&                                         rA   _real_extractzVKIE._real_extractr  sG   $$S)::i(!D
 jj+G&V,,Z4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$ H!# # kO    X + 7 - X X P <=FB (.||~ N#)99Xy1(X)=MMN %%d&8&8<?',-57F  ,,Y7??;	0@0@0BCC((i8	 ??9gnn.>??!..y9??<1B1B1DEE99VXac11q!))$35J??:..}@@i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$$%5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	B 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
 	
rB   N)rg   rh   ri   IE_NAMEIE_DESC_EMBED_REGEX
_VALID_URLr   r   _TESTSr   rB   rA   rm   rm   \   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!	

 =!	
y@FDK
rB   rm   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gZ ej                  dddg      Z
d Zd Zy)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/@mobidevicesrs   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_2Videoowner_idc           	   #     K   | j                  d|dd||d      d   |   }|d   }|d   }|d   }	 |D ]e  }| j                  j                  |d d       }d	|j                  |j                  fz  }	| j                  d
|	z   t        j                         |	       g ||k\  ry | j                  d|d|||d      d   |   }|d   }
|
s| j                  | d||z
   d       y ||
z  }|d   }w)Nr   load_videos_silentr   )r   offsetr   sectioncounttotalr   r   z%d_%dzhttps://vk.com/videoz: Skipping z unavailable videos)	rf   _VIDEO_maker(  rs   r   rm   r   	to_screen)r8   page_idr,  video_list_jsonr-  r.  
video_listr   r   r:   	new_counts              rA   _entrieszVKUserVideosIE._entriesf  sY    00W'	G
 
 
   (($V,
# PKK%%eBQi0"ajj!$$%77oo*X5t{{}hP PP
 ~"44Z+"	K 
 
 O (0I'+eem_DWXYYE(0J' s   C*C,c           	         | j                  |      }| j                  ||      }|j                  d      rPt        | j	                  d|d|      dt
        ht        ht        d      hf      }t        t        |      d      xs d}n|j                  d      \  }}}d	| }t        t        d
|            }| j                  | j                  ||      | d| |      S )N@z\bvar newCur\s*=zcursor datar   zpage id)r,  r   allr   	playlist_VideoInfoPanel__title)	_match_idrO   r/   r   _search_jsonr   r   r   r   	partitionr   r   playlist_resultr6  )r8   r.   u_idwebpager2  r,  r   playlist_titles           rA   r  zVKUserVideosIE._real_extract  s    ~~c"((d3??3"!!"5wtT}wy/A.BCEG #8C=.AJUG"&.."5GQ!'+G#$89PRY$Z[##DMM'7$CyPQRYQZE[]kllrB   N)rg   rh   ri   r  r  _BASE_URL_REr  r   collections
namedtupler/  r6  r  r!  rB   rA   r#  r#  @  s    G"GJL>45>PQJ
 3/
 " D&
 ! <+
   ; 1 <1F8 $[##Gj$-?@F1@mrB   r#  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y())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)rs   ru   rv    5ba93864ec5b85f7ce19a9af4af080f6135220665_111806521m4au.   Black Shadow - Слепое Верованиеir  zBlack Shadowu   Слепое Верование)rs   rt   ru   ry   rw   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)rs   r(  r.   ru   	performerry   album_idunkauthor_linklyricsflagscontextextrahashes	cover_urladsc                     d}dx}}|D ]P  }| j                   j                  |      }|dz  }|rd|z  |z   n|}|dz  }|s7|t        d|d|z  dz  z	  z        z  }R |S )	Nr&   r      @   r         )_BASE64_CHARSindexchr)r8   encdecencrconds           rA   _decodezVKWallPostIE._decode  s    	A 	4A""((+Aq5D"Q
AFAs3rAvz!2233	4 
rB   c                    d|v r|j                  d      d   j                  d      }| j                  |d         j                  t        d            \  }}t        | j                  |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j                  |      }|S )	Naudio_api_unavailablez?extra=r   #   r   r`   r&   )r   rm  re  r   lenr   rangejoin)r8   mask_urlvk_idrY  funcbaseurl_lenindexesrd  ri  rj  s              rA   _unmask_urlzVKWallPostIE._unmask_url  s&   "h.NN9-a066s;EeAh/55c"g>JD$DLLq23H(mGfw&GI%E7Q;B/ # AE*UQY6'A"
# 1g& $QK!a0&uo"#	$
 wwx(HrB   c                      j                        } j                  d|dd|z   d      d   }t        t        d|            }g }t	        j
                  d|      D ]   j                  t              |      d   s$t        j                  d	            }t        j                  d
            }|j                  d    dd    t        ||d      t        fd      t        j                  d            |||d   dddddgd        |j                   fdt        t	        j
                  dt        d|                  D                j!                  ||t        |d| d      t        t        d|                  S )Nwkviewr   wall)r   wr   PostHeaderTitle__authorNamezdata-audio="([^"]+)r.   ru   rK  r(  r   rs   z - )delimc                  V    d   j                  d      D  cg c]  } d| i c} S c c} w )NcoverUrl,r.   )r   )uaudios    rA   r   z,VKWallPostIE._real_extract.<locals>.<lambda>  s*    E*DUD[D[\_D`/aq
/a /as   &ry   rJ  nonemp3m4a_dash)r.   rt   vcodecacodec	container)rs   ru   
thumbnailsry   rw   rK  rL  r   c              3   ^   K   | ]$  }j                  t        |      t               & y wN)r   r   rm   ).0entryr8   r.   s     rA   	<genexpr>z-VKWallPostIE._real_extract.<locals>.<genexpr>  s'      ?etwsE':DA ?s   *-z0<a[^>]+href=(?:["\'])(/video(?:-?[\d_]+)[^"\']*)wl_post_bodyz
Wall post wall_post_text)r<  rf   r   r   rP   findallr   r   r1   r   r   r   r   r   setr   r?  )	r8   r.   post_idrA  rw   entriesru   rK  r  s	   ``      @rA   r  zVKWallPostIE._real_extract  s   ..%((7'!=
  
 23PRYZ[ZZ 6@ 	E$$\%%8'BE< 7!34E!%))H"56FNNz*+1U4[M:&vuEB&'ab'		*(=>$  < $#!+  	. 	 ?sSUS]S]?">7;T= P> ? 	? ##WmH
7)6LTYZ+,<gFGI 	IrB   N)rg   rh   ri   r  r  r   rc  rD  rE  _AUDIOrm  r{  r  r!  rB   rA   rG  rG    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rB   rG  c                   6    e Zd ZdZdddddddd	Zd
 Zd Zd Zy)VKPlayBaseIEz5https?://(?:vkplay\.live|live\.vk(?:play|video)\.ru)/256x144426x240640x360852x4801280x720	1920x1080	2560x1440)tinylowestlowmediumhighfull_hdquad_hdc                     | j                  ||      }t        | j                  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)rO   r   r=  dictr   )r8   r.   r:   rc   rA  
video_infos         rA   _extract_from_initial_statez(VKPlayBaseIE._extract_from_initial_state(  sR    ((h7!$"3"35wQY#[&
  !^__rB   c           	         g }t        |dddd f      D ]  }|d   }t        |d         }|dv sd|v r%|j                  | j                  |||d	
             C|dk(  r%|j                  | j	                  |||d	             m|dv r| j                  d| d       |j                  |d|dt        | j                  j                  |                    |S )NrH   r   
playerUrlsc                 ,    t        |d         xr |d   S )Nr.   type)r   r   s     rA   r   z/VKPlayBaseIE._extract_formats.<locals>.<lambda>4  s    k!E(6K6YPQRXPY rB   r.   r  )r   live_hlslive_playback_hlsz.m3u8F)r   r$   r   r   )	live_dashlive_playback_dashz#Not extracting unsupported format ""ro   )r.   rt   r   )
r   r   r   _extract_m3u8_formats_extract_mpd_formatswrite_debugr   r   _RESOLUTIONSr1   )r8   stream_infor:   r   streamr.   r   s          rA   _extract_formatszVKPlayBaseIE._extract_formats1  s   ";<)Y1[ \ 	F-C#F6N3IDDSVt99#xQZbg9hif$t88hy`e8fgAA  #FykQR!ST !*  't'8'8'<'<Y'GH	  	" rB   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 )Nrs   ru   	startTime
previewUrlr-  viewsr   categoryc                     | r| gS d S r  r!  )xs    rA   r   z3VKPlayBaseIE._extract_common_meta.<locals>.<lambda>N  s    1# PT rB   )user)blogownernickry   isOnlineviewers)rs   ru   release_timestampr~   r   r}   r   rw   rx   ry   r   concurrent_view_countF)get_all)r   r   r  r   r   bool)r8   r  s     rA   _extract_common_metaz!VKPlayBaseIE._extract_common_metaF  s    K+'u%"-}!=&6"Gk];"Gk];%w8T7UV4fseD7}M#k]3"TF+&-y;-%H*
  	rB   N)rg   rh   ri   rC  r  r  r  r  r!  rB   rA   r  r    s2    KLL*rB   r  c                   n    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y)VKPlayIEz.(?P<username>[^/#?]+)/record/(?P<id>[\da-f-]+)zHhttps://vkplay.live/zitsmann/record/f5e6e3b5-dc52-4d14-965d-0680dd2882daz$f5e6e3b5-dc52-4d14-965d-0680dd2882daro   uH   Atomic Heart (пробуем!) спасибо подписчику EKZO!ZitsmanN13159830iWd20230507zXre:https://[^/]+/public_video_stream/record/f5e6e3b5-dc52-4d14-965d-0680dd2882da/previewip)  zAtomic Heart)rs   rt   ru   rw   rx   r  release_dater~   ry   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                    | j                  |      j                         \  }}t        | j                  d| d| |d      ddt        hf      }|s| j                  ||d      }i | j                  |      || j                  ||      dS )	N https://api.vkplay.live/v1/blog/z/public_video_stream/record/Fr#   rH   record)r  currentRecordrH   )rs   r   )r   groupsr   ra   r  r  r  r  )r8   r.   rR   r:   record_infos        rA   r  zVKPlayIE._real_extractr  s    !2237>>@("4#6#6.xj8TU]T^_aiqv $7 $xXv&( ::3JmnK
''4
,,[(C
 	
rB   N	rg   rh   ri   r  rC  r  r   r   r  r!  rB   rA   r  r  W  s|    !..//]^JY8_"%!+&t)*
 #F+!$ b c)F2
rB   r  c                   r    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y)VKPlayLiveIEz(?P<id>[^/#?]+)/?(?:[#?]|$)zhttps://vkplay.live/baydaz$f02c321e-427b-408d-b12f-ae34e53e0ea2ro   u!   re:эскапизм крута .*Bayda12279401iǐd20230619z5re:https://[^/]+/public_video_stream/12279401/previewz
EVE Onliner   )rs   rt   ru   rw   rx   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                    | j                  |      }| j                  d| d|d      }|s| j                  ||d      }| j                  ||      }|st	        |dt
        hf      st        |      i | j                  |      d|iS )	Nr  z/public_video_streamFr#   )r  r  rH   r  r  )r:   r   )r<  ra   r  r  r   r  r   r  )r8   r.   rR   r  r   s        rA   r  zVKPlayLiveIE._real_extract  s    >>#&)).xj8LMx_d * f::3JpqK''X>|K*tf9MNx00
''4
w
 	
rB   Nr  r!  rB   rA   r  r    s    !..//JKJ*89%!+&Q%('.$
 "D)%( . 2-F6
rB   r  ).rD  r2   rP   commonr   dailymotionr   odnoklassnikir   pladformr   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!   rm   r#  rG  r  r  r  r!  rB   rA   <module>r     s      	 ! & *   !      ( 46} 6ra
8 a
HTmX TmnBI8 BIJ8= 8v(
| (
V,
< ,
rB   