Ë
    š„jå,  ã                   ó’   — d dl Z d dl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  G d„ de«      Z G d	„ d
e«      Z G d„ de«      Zy)é    Né   )ÚInfoExtractoré   )ÚRequest)ÚExtractorErrorÚUserNotLiveÚ
js_to_jsonÚtraverse_objÚupdate_url_queryÚurlencode_postdataÚurljoinc            	       óx   — e Zd ZdZdZdZ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œgZd„ Zd „ Zy!)"ÚFC2IEzB(?:https?://video\.fc2\.com/(?:[^/]+/)*content/|fc2:)(?P<id>[^/]+)Úfc2z0http://video.fc2.com/en/content/20121103kUan1KHsÚ a6ebe8ebe0396518689d963774a54eb7Ú20121103kUan1KHszBoxing again with PuffÚmp4zre:https?://.+\.jpe?g)ÚidÚtitleÚextÚ	thumbnailÚskip_downloadÚm3u8)ÚurlÚmd5Ú	info_dictÚparamsz.https://video.fc2.com/content/20121209FP73fxDxÚ 066bdb9b3a56a97f49cbf0d0b8a75a1fÚ20121209FP73fxDxz1Farewelling The Wiggles Live in Sydney Dec 8 2012zbSaying goodbye to the Wiggles at their Celebration Concert in Sydney, and what a concert that was!)r   r   r   r   Údescription©r   r   r   z1http://video.fc2.com/en/content/20150125cEva0hDn/Ú20150125cEva0hDn)r   r   zytdl@yt-dl.orgz(snip))ÚusernameÚpasswordzrequires actual password)r   r   r   Úskipz2http://video.fc2.com/en/a/content/20130926eZpARwsFT)r   Úonly_matchingc                 ó  — | j                  «       \  }}|�|€y||dddœ}t        |«      }t        d|«      }| j                  |d dd¬«      }d	|vr| j	                  d
«       yt        d«      }| j                  |d dd¬«       y)NFÚvideoz Login )Úemailr$   ÚdoneÚSubmitzAhttps://secure.id.fc2.com/index.php?mode=login&switch_language=enz
Logging inzUnable to log in)ÚnoteÚerrnotezmode=redirect&login=donez*unable to log in: bad username or passwordz+http://id.fc2.com/?mode=redirect&login=donezLogin redirectzLogin redirect failedT)Ú_get_login_infor   r   Ú_download_webpageÚreport_warning)Úselfr#   r$   Úlogin_form_strsÚ
login_dataÚrequestÚlogin_resultsÚlogin_redirs           úK/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/fc2.pyÚ_loginzFC2IE._login<   s¼   € Ø!×1Ñ1Ó3Ñˆ�(ØÐ˜xÐ/Øð Ø ØØñ	
ˆô (¨Ó8ˆ
ÜØOÐQ[ó]ˆð ×.Ñ.¨w¸À<ÐYkÐ.ÓlˆØ%¨]Ñ:Ø×ÑÐ LÔMØô ÐKÓLˆØ×ÑØ˜Ð$4Ð>Uð 	ô 	Wð ó    c                 ó  — | j                  |«      }| j                  «        d }|j                  d«      s<| j                  ||«      }| j                  j                  «        | j                  «        d\  }}}|�9| j                  d|dd¬«      }| j                  |«      }| j                  |d ¬«      }| j                  d|› d	�|d
¬«      }t        |d«      }|st        d«      ‚t        d|«      }|||d|j                  d«      dk(  rdnd||dœS )Núfc2:)NNN)z*<h2\s+class="videoCnt_title">([^<]+?)</h2>z;\s+href="[^"]+"\s*title="([^"]+?)"\s*rel="nofollow">\s*<imgz9\s+href="[^"]+"\s*title="([^"]+?)"\s*rel="nofollow">\s*\1r   F©Úfatal)Údefaultz+https://video.fc2.com/api/v3/videoplaylist/z
?sh=1&fs=0zDownloading info page©r,   )ÚplaylistÚnqzUnable to extract video URLzhttps://video.fc2.com/r   Útyper   Úm3u8_nativeÚhttps)r   r   r   r   Úprotocolr    r   )Ú	_match_idr8   Ú
startswithr/   Ú	cookiejarÚclear_session_cookiesÚ_html_search_regexÚ_og_search_thumbnailÚ_og_search_descriptionÚ_download_jsonr
   r   r   Úget)	r1   r   Úvideo_idÚwebpager   r   r    ÚvidplaylistÚvid_urls	            r7   Ú_real_extractzFC2IE._real_extractY   s8  € Ø—>‘> #Ó&ˆØ�‰ŒØˆØ�~‰~˜fÔ%Ø×,Ñ,¨S°(Ó;ˆGØ�N‰N×0Ñ0Ô2Ø�K‰KŒMà(8Ñ%ˆˆy˜+ØÐØ×+Ñ+ðOð Ø˜uð ,ó &ˆEð ×1Ñ1°'Ó:ˆIØ×5Ñ5°gÀtÐ5ÓLˆKà×)Ñ)Ø9¸(¸À:ÐNÐPXØ(ð *ó *ˆô ˜{Ð,>Ó?ˆÙÜ Ð!>Ó?Ð?ÜÐ2°GÓ<ˆð ØØØØ)4¯©¸Ó)@ÀAÒ)E™È7Ø&Ø"ñ
ð 	
r9   N)	Ú__name__Ú
__module__Ú__qualname__Ú
_VALID_URLÚIE_NAMEÚ_NETRC_MACHINEÚ_TESTSr8   rS   © r9   r7   r   r      s¤   „ ØV€JØ€GØ€NàAØ1à$Ø-ØØ1ñ	
ð ˜Vð
ñð @Ø1à$ØHØØ1Øñ
ñ	ð Cà$Øñ
ð
 )Ø ñ
ð +ñð DØñðE%€FòNó:%
r9   r   c                   ó0   — e Zd ZdZdZddddddd	œd
œZd„ Zy)Ú
FC2EmbedIEz1https?://video\.fc2\.com/flv2\.swf\?(?P<query>.+)z	fc2:embedu'  http://video.fc2.com/flv2.swf?t=201404182936758512407645&i=20130316kwishtfitaknmcgd76kjd864hso93htfjcnaogz629mcgfs6rbfk0hsycma7shkf85937cbchfygd74&i=201403223kCqB3Ez&d=2625&sj=11&lang=ja&rel=1&from=11&cmt=1&tk=TlRBM09EQTNNekU9&tl=ãƒ—ãƒªã‚ºãƒ³ï½¥ãƒ–ãƒ¬ã‚¤ã‚¯%20S1-01%20ãƒžã‚¤ã‚±ãƒ«%20ã€�å�¹æ›¿ã€‘Ú b8aae5334cb691bdb1193a88a6ab5d5aÚ201403223kCqB3EzÚflvu;   ãƒ—ãƒªã‚ºãƒ³ï½¥ãƒ–ãƒ¬ã‚¤ã‚¯ S1-01 ãƒžã‚¤ã‚±ãƒ« ã€�å�¹æ›¿ã€‘zre:^https?://.*\.jpg$)r   r   r   r   r!   c           
      ó”  — | j                  |«      }t        j                  j                  |j	                  d«      «      }|d   d   }|j                  dd|› �g«      d   }|j                  dd g«      d   }d }|r2dj                  |d	j                  |d d
 |d
d |d   |d   |f«      «      }dt        j                  «       d|› �||dœS )NÚqueryÚiéÿÿÿÿÚtlz
FC2 video r   Úsjz.http://video{}-thumbnail.fc2.com/up/pic/{}.jpgú/é   é   éþÿÿÿÚurl_transparentr;   )Ú_typeÚie_keyr   r   r   )
Ú_match_valid_urlÚurllibÚparseÚparse_qsÚgrouprN   ÚformatÚjoinr   rm   )r1   r   Úmobjrb   rO   r   rf   r   s           r7   rS   zFC2EmbedIE._real_extract�   sâ   € Ø×$Ñ$ SÓ)ˆÜ—‘×%Ñ% d§j¡j°Ó&9Ó:ˆà˜‘:˜b‘>ˆØ—	‘	˜$ :¨h¨ZÐ!8Ð 9Ó:¸1Ñ=ˆà�Y‰Y�t˜d˜VÓ$ QÑ'ˆØˆ	ÙàH×OÑOØ�C—H‘H˜h r¨˜l¨H°Q°q¨M¸8ÀB¹<ÈÐRTÉÐW_Ð`ÓaócˆIð 'Ü—l‘l“nØ˜(˜Ð$ØØ"ñ
ð 	
r9   N)rT   rU   rV   rW   rX   Ú_TESTrS   r[   r9   r7   r]   r]   �   s2   „ ØE€JØ€Gð yØ1à$ØØRØ1ñ	
ñ	€Eó
r9   r]   c                   ó4   — e Zd ZdZdZdddddddœd	d
œgZd„ Zy)Ú	FC2LiveIEz#https?://live\.fc2\.com/(?P<id>\d+)zfc2:livezhttps://live.fc2.com/57892267/Ú57892267u   ã�©ã�“ã�¾ã�§ãƒ»ãƒ»ãƒ»u   ã�‚ã�¤ã�‚ã�’zre:https?://.+fc2.+)r   r   ÚuploaderÚuploader_idr   Ú
livestream)r   r   r%   c                 óÂ  — | j                  |«      }| j                  d|› d�|«      }| j                  ddd«       | j                  d|t	        ddd|dœ«      d¬	«      }| j                  d
|dt	        |dd|d   d   d   dddddœ«      ddi¬«      }t        |dt        hf«      rd|vrt        |¬«      ‚| j                  dd|d   «       t        |d   d|d   i«      }d }| j                  t        |ddi¬ «      |d!¬"«      }| j                  d#«       	 |j                  «       }	|	sŒ| j                  |	|d%¬&«      }
|
rt        |
t        «      sŒ;|
j!                  d'«      d(k(  rnŒP|j#                  d)«       	 |j                  «       }	|	sŒ| j                  |	|d%¬&«      }
|
rt        |
t        «      sŒ;|
j!                  d'«      d*k(  r(|
j!                  d+«      d,k(  r| j                  d-«       |
}n5| j                  d.j%                  |	d d/ t'        |	«      d/kD  rd0nd«      «       Œ«|st)        d1«      ‚g }|d2   j+                  «       D ]r  \  }}t        |t,        «      sŒ|D ]W  }|j!                  d«      d3k(  sŒd4|j!                  d«      v sŒ,|j/                  | j1                  |d   |d5|d$d|d6œ¬7«      «       ŒY Œt |D ]  }|j3                  d8|d9œ«       Œ | j5                  d:|d;d%¬&«      }|s-| j7                  |d<d%¬&«      }|rt9        j:                  d=d|«      }d }|r(| j=                  d>|d?d d@¬A«      }|rt?        |«      r|\  }}| j=                  dB|dCd%¬&«      xs d }|r2t9        j:                  dDdE|«      }| j                  tA        |«      |«      }||xs t        |dF«      | j5                  dG|dHd%¬&«      xs t        |dI«      ||xs t        |d'«      |t        |dJ«      d$dKœS )LNzhttps://live.fc2.com/rg   zlive.fc2.comzjs-player_sizeÚ1z&https://live.fc2.com/api/memberApi.php)ÚchannelÚprofileÚuserÚstreamidzRequesting member info)Údatar,   z-https://live.fc2.com/api/getControlServer.phpzDownloading ControlServer dataÚplayÚ rƒ   Úchannel_dataÚversionz
2.1.0
 [1]ÚpcÚbrowser_hls)Ú
channel_idÚmodeÚorzÚchannel_versionÚclient_versionÚclient_typeÚ
client_appÚipv6zX-Requested-WithÚXMLHttpRequest)r,   rƒ   ÚheadersÚstatusÚcontrol_token)rO   Úl_ortknÚorz_rawr   ÚOriginzhttps://live.fc2.com)r“   z(Fetching HLS playlist info via WebSocketr?   zSending HLS server requestTFr<   ÚnameÚconnect_completez4{"name":"get_hls_information","arguments":{},"id":1}Ú
_response_r   r   ÚGoodbyezServer said: {}{}éd   z...z/Unable to fetch HLS playlist info via WebSocketÚ	argumentsr   Úmaster_playlistr   )r˜   ÚReferer)r   Úm3u8_idÚliver“   Úfc2_live)rE   Úws)zog:titleztwitter:titlez
live titlez
html titlez
\s+-\s+.+$z^(.+?)\s*\[(.+?)\]$ztitle and uploader)r   r   )r>   rr   z2(?s)liveInfoView\s*:\s*({.+?}),\s*premiumStateViewz	user infoz\$\(.+?\)[^,]+,z"",r   )zog:descriptionztwitter:descriptionzlive descriptionÚinfoÚthumb)r   r   r    Úformatsrz   r{   r   Úis_live)!rF   r/   Ú_set_cookierM   r   r
   Úintr   r   Ú_request_webpager   Úwrite_debugÚrecvÚ_parse_jsonÚ
isinstanceÚdictrN   Úsendrs   Úlenr   ÚitemsÚlistÚextendÚ_extract_m3u8_formatsÚupdateÚ_html_search_metaÚ_html_extract_titleÚreÚsubÚ_search_regexÚallr	   )r1   r   rO   rP   Ú
member_apiÚcontrol_serverÚws_urlÚplaylist_datar¤   r­   rƒ   r§   r™   Ú	playlistsÚplÚfmtr   rz   ÚmatchÚlive_info_views                       r7   rS   zFC2LiveIE._real_extract·   s¦  € Ø—>‘> #Ó&ˆØ×(Ñ(Ð+@ÀÀ
È!Ð)LÈhÓWˆà×Ñ˜Ð)9¸3Ô?à×(Ñ(Ø4°hÔEWØØØØ$ñ	Yó Fð
 .ð )ó /ˆ
ð ×,Ñ,Ø;¸XÐLlÜ#Ø&ØØØ#-¨fÑ#5°nÑ#EÀiÑ#PØ"/Ø#Ø+Øñ	%ó 	ð ,Ð-=Ð>ð -ó @ˆô ˜¨´C°5Ð(9Ô:¸ÐVdÑ?dÜ xÔ0Ð0Ø×Ñ˜¨°NÀ9Ñ4MÔNä! .°Ñ"7¸/È>ÐZiÑKjÐ9kÓlˆØˆà×"Ñ"¤7¨6ØÐ,ð<
ô $àÐEð #ó Gˆð 	×ÑÐ5Ô6àØ—7‘7“9ˆDÙØØ×#Ñ# D¨(¸%Ð#Ó@ˆDÙœz¨$´Ô5Øà�x‰x˜ÓÐ#5Ò5Øð ð 	�‰ÐGÔHàØ—7‘7“9ˆDÙØØ×#Ñ# D¨(¸%Ð#Ó@ˆDÙœz¨$´Ô5ØØ�x‰x˜Ó <Ò/°D·H±H¸T³NÀaÒ4GØ× Ñ  Ô+Ø $�ØØ×ÑÐ0×7Ñ7¸¸T¸c¸
ÌSÐQUËYÐY\Ê_ÁEÐbdÓeÔfð ñ Ü Ð!RÓSÐSàˆØ,¨[Ñ9×?Ñ?ÓAò 
	‰OˆD�)Ü˜i¬Ô.ØØò �Ø—6‘6˜(Ó# qÓ(Ð->À"Ç&Á&ÈÃ-Ò-OØ—N‘N 4×#=Ñ#=Ø˜5™	 8°ÀÈ4à&<Ø'*ñ!ð $>ó $õ ñð
	ð ò 	ˆCØ�J‰JØ&Øñõ ð	ð ×&Ñ&Ð'DÀgÈ|ÐchÐ&ÓiˆÙØ×,Ñ,¨W°lÈ%Ð,ÓPˆEÙäŸ™˜}¨b°%Ó8�ØˆÙØ×&Ñ&Ð'=¸uÐFZÐdhÐpvÐ&ÓwˆEÙœ˜UœØ"'‘��xà×+Ñ+Ð,aÐcjÐlwð  @EÐ+ó  Fò  Nð  JNˆÙäŸV™VÐ$6¸¸~ÓNˆNØ!×-Ñ-¬j¸Ó.HÈ(ÓSˆNð ØÒCœl¨>¸7ÓCØ×1Ñ1Ø9ØÐ+°5ð 2ó :ò bä=IÈ.ÐZ`Ó=aØØ ÒH¤L°ÀÓ$HØ#Ü% n°gÓ>Øñ
ð 	
r9   N)rT   rU   rV   rW   rX   rZ   rS   r[   r9   r7   rx   rx   §   s<   „ Ø7€JØ€Gð 0àØ,Ø&Ø%Ø/ñ
ð ñ
ð 
€Fót
r9   rx   )rº   Úurllib.parsero   Úcommonr   Ú
networkingr   Úutilsr   r   r	   r
   r   r   r   r   r]   rx   r[   r9   r7   ú<module>rË      sJ   ðÛ 	Û å !Ý  ÷÷ ñ ôm
ˆMô m
ô`#
�ô #
ôLD
�õ D
r9   