
    yf                     F    d dl Z ddlmZ ddlmZmZmZmZ  G d de      Zy)    N   )InfoExtractor   )ExtractorErrortry_callunified_timestampurlencode_postdatac            	           e Zd ZdZdZdZddgZddddd	d
eddddg ddddddddddddg ddddddddddddg ddgZdZ	d Z
d Zy) 	EplusIbIEeplusu   e+ (イープラス)zGhttps?://live\.eplus\.jp/ex/player\?ib=(?P<id>(?:\w|%2B|%2F){86}%3D%3D)z+https?://live\.eplus\.jp/(?P<id>sample|\d+)zhttps://live.eplus.jp/ex/player?ib=YEFxb3Vyc2Dombnjg7blkrLlrablnJLjgrnjgq%2Fjg7zjg6vjgqLjgqTjg4njg6vlkIzlpb3kvJpgTGllbGxhIQ%3D%3Dz354502-0001-002uh   LoveLive!Series Presents COUNTDOWN LoveLive! 2021→2022～LIVE with a smile!～【Streaming+(配信)】was_live20211231ia)idtitlelive_statusrelease_daterelease_timestampdescriptionT)skip_downloadignore_no_formats_error)ACould not find the playlist URL. This event may not be accessibleNo video formats found!!Requested format is not available)url	info_dictparamsexpected_warningszhttps://live.eplus.jp/samplezstream1ng20210719-test-005zOnline streaming test for DRM20210719i``)r   r   r   r   r   )r   r   r   zThis video is DRM protectedzhttps://live.eplus.jp/2053935z331320-0001-001uR   丘みどり2020配信LIVE Vol.2 ～秋麗～ 【Streaming+(配信チケット)】20200920i (g_z}Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0c                    | j                  d      j                  d      st        d      |j                  j                  d      }|st        d      | j	                  dd|       | j                  dd dd	d
|j                  |ddt        j                  ||d      j                               }|j                  d      st        dd      | j                  |j                  d ddt        |||dd      d|j                  i       y )Nzhttps://live.eplus.jp/
ci_sessionzUnable to get ci_session cookiezX-CLTFT-TokenzUnable to get X-CLTFT-Tokenzlive.eplus.jpz/https://live.eplus.jp/member/api/v1/FTAuth/idpwzSending pre-login infozUnable to send pre-login infozapplication/json; charset=UTF-8z*/*)zContent-TypeRefererzX-Cltft-TokenAccept)loginIdloginPassword)noteerrnoteheadersdata	isSuccessz$Login failed: Invalid id or passwordTexpectedz
Logging inzUnable to log innextPage)r$   r%   zToken.Defaultopr"   )r&   r'   r)   r(   )_get_cookiesgetr   r(   _set_cookie_download_jsonr   jsondumpsencode_request_webpager	   )selfusernamepasswordurlhcltft_token
login_jsons         8/usr/lib/python3/dist-packages/yt_dlp/extractor/eplus.py_loginzEplusIbIE._loginN   s     !9:>>|L !BCCll&&7 !>??/;G((=t)3R A88!,	]
 JJ#!)   vx ) 

 ~~k* !GRVWWHHd7I##!)!, 	% 
 #DHH- 	 	/    c                 "   | j                  |      }| j                  ||d| j                  i      \  }}|j                  j	                  d      rX| j                         \  }}|s| j                          | j                  |||       | j                  ||d| j                  i      }| j                  d|d|      j                  d      dk(  r| j                  |       j                  d      }j                  d	      }t        fd
      }	j                  d      }
| j                  d| d|        |dk(  rd}nI|dk(  rd}nA|dk(  r|dk7  rt        dd      d}n'|dk(  rd}n|dk(  rd}n| j                  d| d       d}g }| j                  d|d|dg       }|s1|dk(  r| j!                  d |
 d!d       n| j!                  d"d       n|dk(  r| j!                  d#|
 d!d       ns|dk(  r| j!                  d$d       nZ|D ]#  }|j#                  | j%                  ||             % d%}|dk(  r| j                  |       n|dk(  r| j                  | d&       d'   j                  d(      ||j                  d)      |	d*S )+Nz
User-Agent)r(   z!https://live.eplus.jp/member/authz<script>\s*var app\s*=z	data jsondrm_modeONdelivery_statusarchive_modec                  &    t         d         dz
  S )Nevent_datetimei~  )r   )	data_jsons   r=   <lambda>z)EplusIbIE._real_extract.<locals>.<lambda>   s    ->yIY?Z-[^c-c r?   event_datetime_textzdelivery_status = z, archive_mode = 	PREPARINGis_upcomingSTARTEDis_liveSTOPPEDz;This event has ended and there is no archive for this eventTr+   	post_liveWAIT_CONFIRM_ARCHIVEDCONFIRMED_ARCHIVEr   zUnknown delivery_status z, treat it as a livezvar\s+listChannels\s*=zhls URLsz\[.+\])contains_patterndefaultz?Could not find the playlist URL. This live event will begin at z JSTr   zThis live event will begin at z?This event has ended, and the archive will be available shortlyzMDue to technical limitations, the download will be interrupted after one hourz*. You can restart to continue the downloadapp_idapp_namecontent)r   r   formatsr   r   r   )	_match_id_download_webpage_handle_USER_AGENTr   
startswith_get_login_inforaise_login_requiredr>   _download_webpage_search_jsonr0   
report_drmr   write_debugr   report_warningraise_no_formatsextend_extract_m3u8_formats)r7   r   video_idwebpager:   r8   r9   rC   rD   r   release_timestamp_strr   rW   m3u8_playlist_urlsm3u8_playlist_urlwarningrG   s                   @r=   _real_extractzEplusIbIE._real_extractn   s   >>#&55L$2B2B#C 6 E88BC!%!5!5!7Hh))+KK(D1,,Xd6F6F'G - IG %%&?+W_`	==$,OOH%#--(9: }}^4$%cd ).C D-o->>OP\~^_k)'K	)#K	)t#$Q\`b b%K 77%K 33$K":?:KK_ `a#K!..%w
HW`jl / n!m+%%UVkUllpq  }A & B %%Wbf & hM)!!$BCXBYY]"^im!nK'!!"cnr!s%7 X!t99:KXVWX fGi'##G,
*##wi/Y$Z[ H%]]:.&$==3!2
 	
r?   N)__name__
__module____qualname___NETRC_MACHINEIE_NAMEIE_DESC
_VALID_URLstr_TESTSrZ   r>   rl    r?   r=   r   r      s    NG$G\@BJ S#%&!+
 "'+

( ..4%&!+
 "'+

( /#i%&!+
 "'+

M8Ft RK/@I
r?   r   )	r3   commonr   utilsr   r   r   r	   r   rv   r?   r=   <module>ry      s#     ! k
 k
r?   