
    V|hj'                         S SK r S SKrSSKJ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   )	HTTPError)	ExtractorErrorfilter_dictfloat_or_nonejoin_nonemptymimetype2extparse_iso8601unsmuggle_urlupdate_url_queryurl_or_none)traverse_objc                   ,    \ rS rSrSrSrS/rSS jrSrg)	StreaksBaseIE   z4https://{}.api.streaks.jp/v1/projects/{}/medias/{}{}FJPNc                     U R                  U R                  R                  SXS5      USSSS.U R                  5       EU=(       d    0 ES9nUS   nSSSSS.R'                  UR'                  S5      5      n/ 0 pS	n[        USS 45       GH/  nUR'                  S5      (       a  SnM  US    nUS:H  n[)        UR'                  S5      5      nUS!:w  a  U R+                  S"U 35        M^  U(       a  U(       a  [        U R                  U R                  R                  S#XS$5      US%SSS&.[,        R.                  " SUS   05      R1                  5       S'9S(S)[2        R4                  R6                  145      n[9        UU5      nU R;                  UUS*S+S	UUS,9u  nnUR=                  U5        U R?                  UUS-9  GM2     U(       d  U(       a  U RA                  U5        U RC                  U5        [        US.S/ 45       HO  n[        US0[        RD                  145      =(       d    S1nURG                  U/ 5      RI                  S2US    05        MQ     UUUUUUS3.[        US4[        14S5[        1[J        4S6[L        14S7[N        14S8S9[        14S:S S2[P        104S;[N        14S<.5      E$ ! [         Ga+  n[        UR                  [        5      (       Ga  UR                  R                  S;   a  U R                  UR                  R                  R                  5       R                  5       US	S
9n[        US[        145      n	[        US[        145      n
[        US[        145      nU
S:X  a1  US:X  a  U R!                  U R"                  S9  OUS:X  a  [	        S5      eU
S:X  a  [	        [%        XSS9SS9eU
(       d  U	(       a  [	        [%        XU	SS95      ee S nAff = f)=Nplayback z%Downloading STREAKS playback API JSONzapplication/jsonzhttps://players.streaks.jp)AcceptOriginheaders)i  i  F)fatalmessagecodeidREQUEST_FAILED|   )	countries~   z:Access is denied (possibly due to invalid/missing API key)MEDIA_NOT_FOUNDz: )delimT)expectedwas_livenot_liveis_live)clipfilelinearlivetypesourcesc                     US   $ )Nsrc _vs     R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/streaks.py<lambda>9StreaksBaseIE._extract_from_streaks_api.<locals>.<lambda>?   s    ah    key_systemsr1   m3u8zUnsupported stream type: ssaiz/ssai/sessionzDownloading session parameters)zContent-Typer   )r   datar   querymp4hls)m3u8_idr   r-   r>   )targettracksc                 <    US   S;   =(       a    [        US   5      $ )Nkind)captions	subtitlesr1   )r   r3   s     r6   r7   r8   ^   s"    1V90I#I#ckZ[\aZbNc#cr9   srclangjaurl)r   
display_idformatslive_statusrG   uploader_idnamedescriptionduration
updated_attags.)poster	thumbnail
created_at)titlerP   rQ   modified_timestamprS   
thumbnails	timestamp))_download_json_API_URL_TEMPLATEformatgeo_verification_headersr   
isinstancecauser   status_parse_jsonresponsereaddecoder   strintraise_geo_restricted_GEO_COUNTRIESr
   getr   report_warningjsondumpsencodeurllibparseparse_qsr   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitles
report_drm_remove_duplicate_formatslower
setdefaultappendfilterr	   r   r   )self
project_idmedia_idr   r>   r<   rc   eerrorr   r   error_id
streaks_idrM   rL   rG   drm_formatssourcesrc_urlr)   extsession_paramsfmtssubslangs                            r6   _extract_from_streaks_api'StreaksBaseIE._extract_from_streaks_api   s   	**&&--j*PRSA0:L 335L }"	L + H2 d^
	

 #hll6"
# 	  "8i9N-OPFzz-(("UmG!Y.Gvzz&12Cf}##&?u$EF4!-d.A.A**11&*Rab>-?K]^T6$<$89@@B	 /B /
 w!6!6 78": +7NCAA5%u7Z_ B aJD$NN4 !!$y!91 Q4 ;OOH%&&w/ c,
 D  y399+&>?G4D  r*115$u+2FG	 "&"%
 8 3% -uf='-9'3m_&Ese,6}?UV*]O<& 
 	
A  	!''9--!''..J2N(()9)9)>)>)@)G)G)I8[`(a&uy3%.@A#EFSE?;'se}=++311D<O<O1P!S,-ijj,,(tD)Q\`aa7(twVZ)[\\	s   AJ( (O3D&OOr2   )NNF)	__name__
__module____qualname____firstlineno__r\   _GEO_BYPASSri   r   __static_attributes__r2   r9   r6   r   r      s    NKVNZ
r9   r   c                      \ rS rSrSS/rS\S    S3/r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S%.S.S&S'S	S(S)S*S+S,S-S.S/S0S.S.S1S2S	\S3S4S5S6S7S8S9S:.
S.S;S<S=./rS>S?S	S@SASBSSCSDSESFSSG.S.SHSISJSKSLSSMSN.SO./rSP r	SQr
gR)S	StreaksIEv   zohttps?://players\.streaks\.jp/(?P<project_id>[\w-]+)/[\da-f]+/index\.html\?(?:[^#]+&)?m=(?P<id>(?:ref:)?[\w-]+)zehttps?://playback\.api\.streaks\.jp/v1/projects/(?P<project_id>[\w-]+)/medias/(?P<id>(?:ref:)?[\w-]+)z(<iframe\s+[^>]*\bsrc\s*=\s*["\'](?P<url>r   )zqhttps://players.streaks.jp/tipness/08155cd19dc14c12bebefb69b92eafcc/index.html?m=dbdf2df35b4d483ebaeeaeb38c594647 dbdf2df35b4d483ebaeeaeb38c594647r?   z3shunenCM_edit.mp4gNbX9G@r(   20230726ididtipness)r   r   rW   rK   rQ   rM   modified_daterX   rZ   upload_daterN   )rJ   	info_dictzhhttps://players.streaks.jp/ktv-web/0298e8964c164ab384c07ef6e08c444b/index.html?m=ref:mycoffeetime_250317 dccdc079e3fd41f88b0c8435e2d453abu   わたしの珈琲時間_250317zref:mycoffeetime_250317g(\^@20250310i~gzre:https?://.+\.jpgi}gzktv-web)r   r   rW   rK   rQ   rM   r   rX   rU   rZ   r   rN   z[https://playback.api.streaks.jp/v1/projects/ktv-web/medias/b5411938e1e5435dac71edf829dd4813 b5411938e1e5435dac71edf829dd4813KANTELE_SYUSEi_063020250122i7gi!mg20241226)r   r   rW   rK   rM   r   rX   rU   rZ   r   rN   zVhttps://playback.api.streaks.jp/v1/projects/tver-olympic/medias/ref:sp_240806_1748_dvr c10f7345adb648cf804d7578ab93b2e3u!   サッカー 男子 準決勝_dvrzref:sp_240806_1748_dvrg     P@r'   20240805iOfif20240804ztver-olympiczChttps://playback.api.streaks.jp/v1/projects/tbs/medias/ref:simul-02 c4e83a7b48f4409a96adacec674b4e22zref:simul-02r)   20241031i"gi[e20240117tbs)
r   r   rW   rK   rM   r   rX   rZ   r   rN   zphttps://players.streaks.jp/sp-jbc/a12d7ee0f40c49d6a0a2bff520639677/index.html?m=5f89c62f37ee4a68be8e6e3b1396c7d8T)rJ   only_matchingz#https://event.play.jp/playnext2023/ 2d975178293140dc8074a7fc536a7604u'   PLAY NEXTキームービー（本番）playg1@iqc20221114iCPg20250213)r   r   rW   rN   rQ   rU   rZ   r   rX   r   rM   z{https://wowshop.jp/Page/special/cooking_goods/?bid=wowshop&srsltid=AfmBOor_phUNoPEE_UCPiGGSCMrJE5T2US397smvsbrSdLqUxwON0el4r   zM?bid=wowshop&srsltid=AfmBOor_phUNoPEE_UCPiGGSCMrJE5T2US397smvsbrSdLqUxwON0el4u[   ワンランク上の料理道具でとびきりの“おいしい”を食卓へ｜wowshopz$md5:914b5cb8624fc69274c7fb7b2342958fz<https://wowshop.jp/Page/special/cooking_goods/images/ogp.jpg)r   rW   rP   	age_limitrU   )rJ   playlist_mincountr   c           
          [        U0 5      u  pU R                  U5      R                  SS5      u  p4U R                  X4[	        SUR                  S5      05      S9$ )Nr|   r   zX-Streaks-Api-Keyapi_keyr   )r   _match_valid_urlgroupr   r   rj   )r{   rJ   smuggled_datar|   r}   s        r6   _real_extractStreaksIE._real_extract   sh    *33#44S9??dS
--+#]%6%6y%A7 + .  	r9   r2   N)r   r   r   r   
_VALID_URL_EMBED_REGEXrf   _TESTS_WEBPAGE_TESTSr   r   r2   r9   r6   r   r   v   s   zpJ @
1aPQL C4)<%'",#%$
  z463%'",/#%$
" m4*<%'",/#%$
" h482%'",#%)
$ U4($'",#% 
" B[QFf 54>!/#%",'%
  MarAW

N6r9   r   )rl   urllib.parsero   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   r   r   r   r   utils.traversalr   r   r   r2   r9   r6   <module>r      sB      ! -
 
 
 +_
M _
Dz zr9   