
    VGh^!                     ^    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              b/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/gdcvault.py_loginzGDCVaultIE._loginz   s    !113(x/ 0; >  BL  !L  Mxx8+FJJz*_<	ZZ
+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
}nd}| 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 2J>I--I&225#  ( 	  **:6	#Ic/BCIFeL..j*d / DH KKZ@	$''(:;!*J#66$j* >H ..PND / :H 66sJQRST)$*<*<BJ += +/ +2262G2G"D 3H 323AC #",  #*E(4I(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FZ.E
rD   r   )r4   commonr   kalturar   
networkingr   r   utilsr	   r
   r   r   rh   rD   rB   <module>rm      s%    	 !  - A AM
 M
rD   