
    V|hIM                     |    S SK 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  SSKJr   " S S\5      r " S	 S
\5      rg)    N   )InfoExtractor   )	extract_attributesfloat_or_noneint_or_nonejoin_nonemptymimetype2extparse_resolutionstr_or_noneunescapeHTMLurl_or_none)traverse_objc                   :    \ rS rSrSS0rS rS rS rS rS r	S	r
g
)VidyardBaseIE   Refererhttps://play.vidyard.com/c                 f  ^ ^^^ / 0 smmUU UU4S jn[        U[        5      =(       a    UR                  SS 5      n[        US S[        1[
        45      =n(       a  U" U5        T(       d#  [        USS[        145       H  nU" U5        M     [        U[        R                  1S45       Hn  u  px[        US 5       HX  n	U	R                  S5      n
TR                  U	S   [        U	R                  S5      S S	9[        S
Xz5      S.[        U
5      E5        MZ     Mp     T R                  T5        TT4$ )Nc           	         > TR                  U TSSTR                  SS9u  pTR                  U5        TR                  UTS9  g )Nmp4hlsF)m3u8_idheadersfataltarget)#_extract_m3u8_formats_and_subtitles_HEADERSextend_merge_subtitles)m3u8_urlfmtssubsformatsself	subtitlesvideo_ids      R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/vidyard.pyadd_hls_fmts_and_subsGVidyardBaseIE._get_formats_and_subtitles.<locals>.add_hls_fmts_and_subs   sM    AA(E5$--W\ B ^JDNN4 !!$y!9    r   c                     US   S:H  $ )Nprofileauto _vs     r)   <lambda>:VidyardBaseIE._get_formats_and_subtitles.<locals>.<lambda>    s    )(>r,   url.c                     [        US   5      $ )Nr6   r   r1   s     r)   r4   r5   '   s    QuXAVr,   r.   mimeType)defaulthttp)r6   ext	format_id)
isinstancedictpopr   r   anyitemsgetappendr
   r	   r   _remove_duplicate_formats)r&   sourcesr(   r*   hls_listmaster_m3u8_urlvariant_m3u8_urlsource_typesource_listsourcer.   r%   r'   s   ` `        @@r)   _get_formats_and_subtitles(VidyardBaseIE._get_formats_and_subtitles   s2   	: 	: gt,IUD1I*>}VYZ\ \? \!/2$0C;V$W %&67 %X )5W

|S>Q(R$K&{4VW **Y/!%='

:(>M!.v{!L  'w/	   X )S 	&&w/	!!r,   c                     0 n[        US 5       HQ  nUR                  UR                  S5      =(       d    S/ 5      R                  US   UR                  S5      S.5        MS     U$ )Nc                     [        US   5      $ )NvttUrlr8   r1   s     r)   r4   5VidyardBaseIE._get_direct_subtitles.<locals>.<lambda>5   s    {1X;?Wr,   languageundrQ   name)r6   rU   )r   
setdefaultrC   rD   )r&   caption_jsonr$   captions       r)   _get_direct_subtitles#VidyardBaseIE._get_direct_subtitles3   sb    #L2WXGOOGKK
3<ubAHHx(F+J  Y r,   c                     U R                  SU 3USSS9n[        US[        14S[        14SS[        10[
        4S	S
 S[        14S[        SS914S.4S.5      $ )Nzhttps://play.vidyard.com/video/zDownloading additional metadataF)noter   rU   secondsthumbnailUrlr6   videoSectionsc                 "    [        US   5      S L$ )Nmilliseconds)r   r1   s     r)   r4   8VidyardBaseIE._get_additional_metadata.<locals>.<lambda>E   s    }Q~EV7W_c7cr,   titlera     scalerc   
start_time)rc   duration
thumbnailschapters)_download_jsonr   strr   r   allr   )r&   r(   additional_metadatas      r)   _get_additional_metadata&VidyardBaseIE._get_additional_metadata=   s    "11-hZ8(2% 2 A /se_"[M2)EK=+A3G(*c!C5)-D0I/JKf 	2
  	r,   c                 4    U R                  SU S3U5      S   $ )Nz https://play.vidyard.com/player/z.jsonpayload)rl   )r&   r(   s     r)   _fetch_video_jsonVidyardBaseIE._fetch_video_jsonK   s.    "".xj>JJSU 	Ur,   c                    U R                  US   U5      u  p4U R                  U R                  UR                  S5      5      US9  0 U R	                  US   5      E[        US[        14S[        1[        14S[        14S[        1[        1[        4S[        S	S
914S[        144[        4SSS[        104SSS[        14S.5      EUUU R                  S.E$ )NrF   captionsr   
facadeUuidvideoIdrU   descriptionra   rd   re   r]   thumbnailUrls)smallnormalr6   tags.)id
display_idrc   rz   ri   rj   r~   )r%   r'   http_headers)rM   r!   rY   rC   rp   r   rm   intr   r   filterr   r   rA   r   r   )r&   	json_datar(   r%   r'   s        r)   _process_video_json!VidyardBaseIE._process_video_jsonO   s	   !<<Yy=QS[\d88z9RS\ef
++Il,CD
9#cU+(3%+? 3% -u|nfM#m$&?%@A.0146  /0Cek]E[\fse4
' 

 " MM
 	
r,   r0   N)__name__
__module____qualname____firstlineno__r   rM   rY   rp   rt   r   __static_attributes__r0   r,   r)   r   r      s'    67H"<U
r,   r   c                     ^  \ rS rSr/ SQrS/rSSSSSS	S
S/ SQ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.S#S$S./S%.S.S&SSSSS	S
S/ SQS.S.S'S(S)SS*S+S,S-S..S.S/S0S1S(S)SS*S,S-S.S2S3SS4S5S6S.S7S8SS9S:S;S.S<S=SS>S?S@S.SASBSSCSDSES.SFSGSSHSISJS./SK.SLSM.SNSOSPSQSRSSSSTSUSVS.SWSXSSYSZS[S.S\S]SS^S_S`S.SaSbSScSdSeS.SfSgSShSiSjS.SkSlSSmSnSoS.SpSqSSrSsStS.SuSvSSwSxSyS./SK.SzS{.S|S}S~SSSSS.S.SSSSSSSS/S.S.SSS.SSS.SSS./rSSSSSSSS.S.SSSSSSSSS.S.SSSSSSSSS.S.SS\\S\\\\S.SSSSSSSS.0SSSSSSSS.0/SS.SSSSSSSSS.S./r	\
U 4S j5       rS rSrU =r$ )	VidyardIEf   )z=https?://[\w-]+(?:\.hubs)?\.vidyard\.com/watch/(?P<id>[\w-]+)z;https?://(?:embed|share)\.vidyard\.com/share/(?P<id>[\w-]+)z6https?://play\.vidyard\.com/(?:player/)?(?P<id>[\w-]+)zF<iframe[^>]* src=["\'](?P<url>(?:https?:)?//play\.vidyard\.com/[\w-]+)zAhttps://vyexample03.hubs.vidyard.com/watch/oTDMPlUv--51Th455G5u7QzoTDMPlUv--51Th455G5u7Q50347r   zHomepage VideozLook I changed the description.zIhttps://cdn.vidyard.com/thumbnails/50347/OUPa5LTKV46849sLYngMqQ_small.jpgc   )thesearern   r~   )r   r   r<   rc   rz   	thumbnailri   r~   )r6   	info_dictz7https://share.vidyard.com/watch/PaQzDAT1h8JqB8ivEu2j6Y?PaQzDAT1h8JqB8ivEu2j6Y9281024zInline Embedz-https://cdn.vidyard.com/thumbnails/spacer.gifg+ΗD@)r   r   r<   rc   r   ri   z6https://share.vidyard.com/watch/wL237MtNgZUHo6e8WPiJbFwL237MtNgZUHo6e8WPiJbF25926870zAdding & Editing Video ChapterszVhttps://cdn.vidyard.com/thumbnails/25926870/bvSEZS3dGY7DByQ_bzB57avIZ_hsvhr4_small.jpggQ`@zAdding new chaptersr   rg   zPreviewing your videoJ   zEditing your chapters[   z"Share a link to a specific chapteri   )r   r   r<   rc   r   ri   rk   z6https://embed.vidyard.com/share/oTDMPlUv--51Th455G5u7Qz6https://embed.vidyard.com/share/SyStyHtYujcBHe5PkZc5DLSyStyHtYujcBHe5PkZc5DL41974005zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 1 of 6)z1re:In this video, you will learn the first step.+zLhttps://cdn.vidyard.com/thumbnails/41974005/IJw7oCaJcF1h7WWu3OVZ8A_small.pngg-*p@)r   r   r<   rc   rz   r   ri   z=https://thelink.hubs.vidyard.com/watch/pwu7pCYWSwAnPxs8nDoFrEpwu7pCYWSwAnPxs8nDoFrEzAPLAYLIST - Palm Beach Shutters- Bi-Fold Track System Installation1Fw4B84jZTXLXWqkE71RiM5861113zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 2 of 6)zKhttps://cdn.vidyard.com/thumbnails/5861113/29CJ54s5g1_aP38zkKLHew_small.jpgg~jtd@DqP3wBvLXSpxrcqpT5kEeo41976334zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 3 of 6)zKhttps://cdn.vidyard.com/thumbnails/5861090/RwG2VaTylUa6KhSTED1r1Q_small.pngg-硫W@opfybfxpzQArxqtQYB6oBU41976364zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 4 of 6)zKhttps://cdn.vidyard.com/thumbnails/5860926/JIOaJR08dM4QgXi_iQ2zGA_small.pnggmg@rWrXvkbTNNaNqD6189HJya41976382zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 5 of 6)zKhttps://cdn.vidyard.com/thumbnails/5860687/CwHxBv4UudAhOh43FVB4tw_small.pngg)\Da@eYPTB521MZ9TPEArSethQ541976409zFInstall Palm Beach Shutters with a Bi-Fold Track System (Video 6 of 6)zKhttps://cdn.vidyard.com/thumbnails/5861425/0y68qlMU4O5VKU7bJ8i_AA_small.pnggI+b@)r   rc   entries   )r6   r   playlist_countz;https://salesforce.vidyard.com/watch/d4vqPjs7Q5EzVEis5QT3jdzIURL now 404s. Alternative non hubs.vidyard.com playlist not yet availabled4vqPjs7Q5EzVEis5QT3jdzEHow To: Service Cloud: Import External Content in Lightning KnowledgemcjDpSZir2iSttbvFkx6Rv29479036z&Welcome to this Expert Coaching SerieszZhttps://cdn.vidyard.com/thumbnails/ouyQi9WuwyiOupChUWNmjQ/7170d3485ba602e012df05_small.jpgg
ףp=C@84bPYwpg243G6xYEfJdYw921820704zChapter 1 - Title + AgendazZhttps://cdn.vidyard.com/thumbnails/HFPN0ZgQq4Ow8BghGcQSow/bfaa30123c8f6601e7d7f2_small.jpgg/$X@nP17fMuvA66buVHUrzqjTi21820707zChapter 2 - Import OptionszZhttps://cdn.vidyard.com/thumbnails/rGRIF5nFjPI9OOA2qJ_Dbg/86a8d02bfec9a566845dd4_small.jpgg1Zh@m54EcwXdpA5gDBH5rgCYoV21820710z*Chapter 3 - Importing Article TranslationszZhttps://cdn.vidyard.com/thumbnails/IVX4XR8zpSsiNIHx45kz-A/1ccbf8a29a33856d06b3ed_small.jpgg%Cg@j4nzS42oq4hE9oRV73w3eQ21820716zChapter 4 - Best PracticeszZhttps://cdn.vidyard.com/thumbnails/BtrRrQpRDLbA4AT95YQyog/1f1e6b8e7fdc3fa95ec8d3_small.jpgg(\r@y28PYfW5pftvers9PXzisC21820727zChapter 5 - Migration StepszZhttps://cdn.vidyard.com/thumbnails/K2CdQOXDfLcrVTF60r0bdw/a09239ada28b6ffce12b1f_small.jpggQe@YWU1eQxYvhj29SjYoPw5jH21820733zChapter 6 - DemozZhttps://cdn.vidyard.com/thumbnails/rsmhP-cO8dAa8ilvFGCX0g/7911ef415167cd14032068_small.jpggS㥻@nmEvVqpwdJUgb74zKsLGxn29479037zSchedule Your Follow-UpzZhttps://cdn.vidyard.com/thumbnails/Rtwc7X4PEkF4Ae5kHi-Jvw/174ebed3f34227b1ffa1d0_small.jpgg@@   )r6   skipr   r   z4https://play.vidyard.com/iDqTwWGrd36vaLuaCY3nTs.htmliDqTwWGrd36vaLuaCY3nTs9281009zLightbox EmbedgGzC@zOhttps://play.vidyard.com/player/7GAApnNNbcZZ46k6JqJQSh.json?disable_analytics=07GAApnNNbcZZ46k6JqJQSh820026zNThe Art of Storytelling: How to Deliver Your Brand Story with Content & SocialzZhttps://cdn.vidyard.com/thumbnails/MhbE-5sEFQu4x3fI6FkNlA/41eb5717c557cd19456910_small.jpggҠ@
Summit2017)r   r   r<   rc   r   ri   r~   z5http://share.vidyard.com/share/diYeo6YR2yiGgL8odvS8RiT)r6   only_matchingz/https://play.vidyard.com/FFlz3ZpxhIfKQ1fd9DAryAz?https://play.vidyard.com/qhMAu5A76GZVrFzOPgSf9A/type/standalonezLhttps://resources.altium.com/p/2-the-extreme-importance-of-pc-board-stack-upGDx1oXrFWj4XHbipfoXaMn3225198z+The Extreme Importance of PC Board Stack UpzZhttps://cdn.vidyard.com/thumbnails/73_Q3_hBexWX7Og1sae6cg/9998fa4faec921439e2c04_small.jpggDl{@z5http://videos.vivint.com/watch/DXx2sW4WaLA6hTdGFz7ja8zXURL certificate expired 2025-09-10. Alternative script embed test case not yet availableDXx2sW4WaLA6hTdGFz7ja82746529z%How To Powercycle the Smart Hub Panelgrh>@zZhttps://cdn.vidyard.com/thumbnails/_-6cw8xQUJ3qiCs_JENc_A/b21d7a5e47967f49399d30_small.jpg)r   r   r<   rc   ri   r   )r6   r   r   z@https://www.babypips.com/learn/forex/introduction-to-metatrader4MIBHhiLVTxga7wqLsuoDjQ20291z!Lesson 1 - Opening an MT4 AccountzKNever heard of MetaTrader4? Here's the 411 on the popular trading platform!gQe@zIhttps://cdn.vidyard.com/thumbnails/20291/IM-G2WXQR9VBLl2Cmzvftg_small.jpg)r   r   r<   rc   rz   ri   r   zvURL changed embed method to 'class="vidyard-player-embed"'. An alternative iframe embed test case is not yet availablezhttps://www.avaya.com/en/)r   rc   	age_limitupload_daterz   r   	timestampr   d61w8EQoZv1LDuPxDkQP2Q42456529zGettyImages-1027g      @zVhttps://cdn.vidyard.com/thumbnails/42061563/p6bY08d2N4e4IDz-7J4_wkgsPq3-qgcx_small.jpgVAsYDi7eiqZRbHodUA2meC42456569zGettyImages-1325598833gET@zVhttps://cdn.vidyard.com/thumbnails/42052358/y3qrbDpn_2quWr_5XBi7yzS3UvEI__ZM_small.jpgr   )r   r6   r   playlistr   pMk8eNCYzukzJaEPoo1Hgn47074153zJAvaya Infinity Helps Redefine the Contact Center as Your Connection Centerz7re:Our mission is to help you turn single engagements.+g33333cT@zVhttps://cdn.vidyard.com/thumbnails/47074153/MZOLKhXdbiUWwp2ROnT5HaXL0oau6JtR_small.jpgc              #   X  >#    [         TU ]  X5       H"  nUR                  S5      (       a  SU 3nUv   M$     [        R                  " SU5       H0  n[        US   5      R                  S5      =n(       d  M)  SU 3v   M2     [        R                  " SU5       H
  nSU 3v   M     g 7f)Nz//zhttps:zY(<(?:img|div)[^>]* class=(["\'])(?:[^>"\']* )?vidyard-player-embed(?: [^>"\']*)?\2[^>]+>)r   z	data-uuidr   z5<script[^>]* id=["\']vidyard_embed_code_([\w-]+)["\'])super_extract_embed_urls
startswithrefindallr   rC   )clsr6   webpage	embed_urlembed_elementr(   embed_id	__class__s          r)   r   VidyardIE._extract_embed_urls  s      4SBI##D))$YK0	O C  ZZlnuwM-mA.>?CCKPPxP1(<<w
 

#[]deH-hZ88 fs   A2B*91B*c                   ^ ^ T R                  U5      mT R                  T5      n[        US   5      S:X  a  T R                  US   S   T5      $ T R	                  U U4S jUS    5       [        US   5      UR                  S5      5      $ )Nrk   r   r   c              3   H   >#    U  H  nTR                  UT5      v   M     g 7f)N)r   ).0chapterr&   r(   s     r)   	<genexpr>*VidyardIE._real_extract.<locals>.<genexpr>  s#     _H^WT%%gx88H^s   "
playerUuidrU   )	_match_idrt   lenr   playlist_resultrm   rC   )r&   r6   
video_jsonr(   s   `  @r)   _real_extractVidyardIE._real_extract  s    >>#&++H5
z*%&!+++Jz,B1,ExPP##_
S]H^_
<():>>&+AC 	Cr,   r0   )r   r   r   r   
_VALID_URL_EMBED_REGEX_TESTSrm   float_WEBPAGE_TESTSclassmethodr   r   r   __classcell__)r   s   @r)   r   r   f   sW   J
 ^^LR*!%<d3	
 I*##H

 H*$6q. 1  1  >!
0 H*!%<d3	
 H*$]Og
 O*X.(ak# /'aj# /(aj" /(aj# /(aj# /(aj#G*.
^ e3j M[*\.(Ay" /(5y" /(5y# /(Ey# /(5y# /(6y# /(+y# /(2y"c8<
z CBH F*#%H
 a*"eu !N
 G A QoZFz ^*#Bu 
 Gj*#<u
	 R*!8id
 K* 	
 .(+u	
 .(1!u	
& C"J +*$aUq
	KRNh 9 9 	C 	Cr,   r   )r   commonr   utilsr   r   r   r	   r
   r   r   r   r   utils.traversalr   r   r   r0   r,   r)   <module>r      s>    	 !
 
 
 +Q
M Q
hPC PCr,   