Ë
    š„j^!  ã                   ó^   — d dl Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
mZ  G d„ d	e«      Zy)
é    Né   )ÚInfoExtractor)Ú	KalturaIEé   )ÚHEADRequestÚRequest)Úremove_startÚsmuggle_urlÚurlencode_postdatac                   óè   — e Zd ZdZdZdZdddddd	d
œdœdddddd
œddi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%d&œd'œd(d)d*dd+d
œd'œd,d-dd.d/d0d1d2œd3d4idœd5d6dd7d8d1d9d:œddidœd;ddœg
Zd<„ Zd=„ Zy>)?Ú
GDCVaultIEFzGhttps?://(?:www\.)?gdcvault\.com/play/(?P<id>\d+)(?:/(?P<name>[\w-]+))?ÚgdcvaultzDhttp://www.gdcvault.com/play/1019721/Doki-Doki-Universe-Sweet-SimpleÚ 7ce8388f544c88b7ac11c7ab1b593704Ú201311826596_AWNYzDoki-Doki-Universe-Sweet-SimpleÚmp4z;Doki-Doki Universe: Sweet, Simple and Genuine (GDC Next 10))ÚidÚ
display_idÚextÚtitle)ÚurlÚmd5Ú	info_dictz>http://www.gdcvault.com/play/1015683/Embracing-the-Dark-Art-ofÚ201203272_1330951438328RSXRzEmbracing-the-Dark-Art-ofÚflvz5Embracing the Dark Art of Mathematical Modeling in AIÚskip_downloadT)r   r   Úparamsz@http://www.gdcvault.com/play/1015301/Thexder-Meets-Windows-95-orÚ a5eb77996ef82118afbbe8e48731b98eÚ1015301zThexder-Meets-Windows-95-orzNThexder Meets Windows 95, or Writing Great Games in the Windows 95 EnvironmentzRequires login)r   r   r   Úskipz!http://gdcvault.com/play/1020791/)r   Úonly_matchingzChttp://gdcvault.com/play/1023460/Tenacious-Design-and-The-InterfaceÚ a8efb6c31ed06ca8739294960b2dbabdÚ840376_BQRCz"Tenacious-Design-and-The-Interfacez/Tenacious Design and The Interface of 'Destiny')r   r   r   r   z@http://www.gdcvault.com/play/1014631/Classic-Game-Postmortem-PACÚ12396_1299111843500GMPXzCHow to Create a Good Game - From My Experience of Designing Pac-Man)r   r   r   )r   r   z=http://www.gdcvault.com/play/1435/An-American-engine-in-TokyoÚ9350_1238021887562UHXBzAn-American-engine-in-TokyozdAn American Engine in Tokyo:/nThe collaboration of Epic Games and Square Enix/nFor THE LAST REMINANTzChttps://www.gdcvault.com/play/1026180/Mastering-the-Apex-of-ScalingÚ
0_h1fg8j3pzCMastering the Apex of Scaling Game Servers (Presented by Multiplay)iJ¦\Ú20190404zjoe@blazestreaming.com)r   r   r   Ú	timestampÚupload_dateÚuploader_idÚformatzmp4-408z%https://www.gdcvault.com/play/1025699Ú
0_zagynv0azTech ToolboxÚ20190408iUÓ«\)r   r   r   r(   r)   r'   z?http://www.gdcvault.com/play/1014846/Conference-Keynote-Shigeruc                 ó¤  — | j                  «       \  }}|�|€| j                  d|z   dz   «       y t        j                  d|«      }|j	                  d«      dz   }|j	                  d«      dz   }||dœ}t        |t        |«      «      }	d|	j                  d	<   | j                  |	|d
«       | j                  ||d«      }
| j                  ||d«       |
S )NzIt looks like zH requires a login. Try specifying a username and password and try again.z(?P<root_url>https?://.*?/).*Úroot_urlzapi/login.phpÚlogout)ÚemailÚpasswordz!application/x-www-form-urlencodedzContent-Typez
Logging inz Getting authenticated video pagezLogging out)	Ú_get_login_infoÚreport_warningÚreÚmatchÚgroupr   r   ÚheadersÚ_download_webpage)ÚselfÚwebpage_urlr   Úusernamer1   ÚmobjÚ	login_urlÚ
logout_urlÚ
login_formÚrequestÚ
start_pages              úP/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/gdcvault.pyÚ_loginzGDCVaultIE._loginz   sî   € Ø!×1Ñ1Ó3Ñˆ�(ØÐ˜xÐ/Ø×ÑÐ 0°;Ñ >ð  BLñ  !Lô  MØä�x‰xÐ8¸+ÓFˆØ—J‘J˜zÓ*¨_Ñ<ˆ	Ø—Z‘Z 
Ó+¨hÑ6ˆ
ð Ø ñ
ˆ
ô
 ˜)Ô%7¸
Ó%CÓDˆØ*Mˆ�‰˜Ñ'Ø×Ñ˜w¨
°LÔAØ×+Ñ+¨K¸ÐEgÓhˆ
Ø×Ñ˜z¨:°}ÔEàÐó    c           
      ó<  — | j                  |«      j                  «       \  }}|xs |}d|z   }| j                  ||«      }| j                  d|dd ¬«      }|rD| j	                  d|d«      }d|z   }	| j                  t        |	«      |«      j                  }	|||	|dœS t        j                  |«      }
|
rt        |
d	|i«      }
d
}nÓd}| j	                  ||dd ¬«      }|€;| j                  ||«      }|€| j                  d«       n|}| j	                  ||d«      }| j	                  d|dd ¬«      }|s_| j                  |||«      d   }|j                  t        | j                  d|dd ¬«      xs | j!                  |d ¬«      d«      ||dœ«       |S |› d|› �}
d}d|||
|dœS )Nzhttp://www.gdcvault.com/play/z>s1\.addVariable\("file",\s*encodeURIComponent\("(/[^"]+)"\)\);r   )Údefaultz9<td><strong>Session Name:?</strong></td>\s*<td>(.*?)</td>r   zhttp://www.gdcvault.com)r   r   r   r   Ú
source_urlÚKalturazG<iframe src="(?P<xml_root>.+?)/(?:gdc-)?player.*?\.html.*?".*?</iframe>zxml rootzCould not login.z=<iframe src=".*?\?xml(?:=|URL=xml/)(.+?\.xml).*?".*?</iframe>zxml filenamer   z'>Session Name:\s*<.*?>\s*<td>(.+?)</td>zGDC Vault - )r   r   r   z/xml/ÚDigitallySpeakingÚurl_transparent)Ú_typer   r   r   Úie_key)Ú_match_valid_urlÚgroupsr8   Ú_search_regexÚ_html_search_regexÚ_request_webpager   r   r   Ú_extract_urlr
   rC   r3   Ú_parse_html5_media_entriesÚupdater	   Ú_og_search_title)r9   r   Úvideo_idÚnamer   r:   rA   Ú
direct_urlr   Ú	video_urlÚ	embed_urlrL   ÚPLAYER_REGEXÚxml_rootÚ	login_resÚxml_nameÚinfos                    rB   Ú_real_extractzGDCVaultIE._real_extract‘   s3  € Ø×.Ñ.¨sÓ3×:Ñ:Ó<‰ˆ�$ØÒ%˜Xˆ
à5¸Ñ@ˆØ×+Ñ+¨K¸ÓDˆ
à×'Ñ'ØMØ˜ tð (ó -ˆ
ñ Ø×+Ñ+ØLØ˜Gó%ˆEð 2°JÑ>ˆIà×-Ñ-Ü˜IÓ&¨ó2ß25±#ð ð Ø(Ø Øñ	ð ô ×*Ñ*¨:Ó6ˆ	ÙÜ# I°¸cÐ/BÓCˆIØ‰FàeˆLà×.Ñ.Ø˜j¨*¸dð /ó DˆHàÐà ŸK™K¨°ZÓ@�	ØÐ$Ø×'Ñ'Ð(:Õ;à!*�Jà#×6Ñ6Ø$ j°*ó >�Hð ×.Ñ.ØPØ˜N°Dð /ó :ˆHñ Ø×6Ñ6°s¸JÈÓQÐRSÑT�Ø—‘Ü)¨$×*<Ñ*<ØBÀJØ¨ð +=ó +/ò +2à26×2GÑ2GØ"¨Dð 3Hó 32Ø3AóCð #Ø",ñô ð �Ø#˜* E¨(¨Ð4ˆIØ(ˆFð 'ØØ$ØØñ
ð 	
rD   N)	Ú__name__Ú
__module__Ú__qualname__Ú_WORKINGÚ
_VALID_URLÚ_NETRC_MACHINEÚ_TESTSrC   r`   © rD   rB   r   r   	   s[  „ Ø€HØ[€JØ€Nð ZØ5à)Ø?ØØVñ	ñ		
ð Tà3Ø9ØØPñ	ð   ðñ	
ð VØ5àØ;ØØiñ	ð %ñ
	
ð 7Ø!ñ	
ð YØ5à#ØØBØLñ	ñ	
	
ð Và/ØØ^ññ	
ð Sà.Ø;ØØñ	ñ		
ð Yà"ØØ^Ø'Ø)Ø7ñð ˜)ðñ	
ð" ;à"ØØ'Ø)Ø7Ø'ñð   ðñ	
ð" UØ!ñ	
ðMk€FòZó.E
rD   r   )r4   Úcommonr   Úkalturar   Ú
networkingr   r   Úutilsr	   r
   r   r   rh   rD   rB   ú<module>rm      s%   ðÛ 	å !Ý ß -ß AÑ AôM
�õ M
rD   