
    VGhM&                         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mZmZ ddlmZ  G d d	e      Z G d
 de      Zy)    N   )InfoExtractor   )	HTTPError)	ExtractorErrorfilter_dictfloat_or_nonejoin_nonemptymimetype2extparse_iso8601unsmuggle_urlupdate_url_queryurl_or_none)traverse_objc                   "    e Zd ZdZdZdgZddZy)StreaksBaseIEz4https://{}.api.streaks.jp/v1/projects/{}/medias/{}{}FJPNc                    	 | j                  | j                  j                  d||d      |dddd| j                         |xs i       }|d   }dddddj%                  |j%                  d            }g i }}d	}t        |dd f      D ]%  }|j%                  d      rd}|d   }|dk(  }t'        |j%                  d            }|dk7  r| j)                  d|        V|r|rt        | j                  | j                  j                  d ||d!      |d"ddd#t+        j,                  d|d   i      j/                         $      d%d&t0        j2                  j4                  hf      }t7        ||      }| j9                  ||d'd(d	||)      \  }}|j;                  |       | j=                  ||*       ( |s|r| j?                  |       | jA                  |       t        |d+d, f      D ]I  }t        |d-t        jB                  hf      xs d.}|jE                  |g       jG                  d/|d   i       K ||||||d0t        |d1t        hfd2t        htH        fd3tJ        hfd4tL        hfd5d6t        hfd7dd/tN        hifd8tL        hfd9      S # t        $ r}t        |j                  t              r|j                  j                  dv r| j                  |j                  j                  j                         j                         |d	
      }t        |dt        hf      }	t        |dt        hf      }
|
dk(  r| j                  |	| j                           |
dk(  rt	        |	d      |
s|	rt	        t#        |
|	d             d }~ww xY w):Nplayback z%Downloading STREAKS playback API JSONzapplication/jsonzhttps://players.streaks.jp)AcceptOriginheaders>       F)fatalmessagecodeREQUEST_FAILED)	countriesMEDIA_NOT_FOUNDT)expectedz: )delimidwas_livenot_liveis_live)clipfilelinearlivetypesourcesc                     |d   S )Nsrc _vs     a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/streaks.py<lambda>z9StreaksBaseIE._extract_from_streaks_api.<locals>.<lambda>;   s
    ah     key_systemsr0   m3u8zUnsupported stream type: ssaiz/ssai/sessionzDownloading session parameters)zContent-Typer   )r   datar   querymp4hls)m3u8_idr   r,   r<   )targettracksc                 0    |d   dv xr t        |d         S )Nkind)captions	subtitlesr0   )r   r2   s     r5   r6   z9StreaksBaseIE._extract_from_streaks_api.<locals>.<lambda>Z   s!    1V90I#I#ckZ[\aZbNc r7   srclangjaurl)r%   
display_idformatslive_statusrE   uploader_idnamedescriptionduration
updated_attags.)poster	thumbnail
created_at)titlerN   rO   modified_timestamprQ   
thumbnails	timestamp)(_download_json_API_URL_TEMPLATEformatgeo_verification_headersr   
isinstancecauser   status_parse_jsonresponsereaddecoder   str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:   ra   eerrorr   r   
streaks_idrK   rJ   rE   drm_formatssourcesrc_urlr(   extsession_paramsfmtssubslangs                           r5   _extract_from_streaks_apiz'StreaksBaseIE._extract_from_streaks_api   s   	**&&--j*hPRSA0:L 335L }"	L + H* d^
	

 #hll6"
# 	  "8i9N-OP 	:Fzz-("UmG!Y.Gvzz&12Cf}##&?u$EF4!-d.A.A**11&*jRab>-?K]^T6$<$89@@B	 /B /
 w!6!6 78": +7NCAA5%u7Z_ B aJD$NN4 !!$y!91	:4 ;OOH%&&w/ c,
  	HD  y399+&>?G4D  r*115$u+2FG		H "&"%
 8 3% -uf='-9'3m_&Ese,6}?UV*]O<& 
 	
y  	!''9-!''..J2N(()9)9)>)>)@)G)G)I8[`(a&uy3%.@A#EFSE?;++--gATAT-U
 	 ..(4@@W(tWD)QRR	s   A
J 	NC-NN)NNF)__name__
__module____qualname__rZ   _GEO_BYPASSrf   r   r1   r7   r5   r   r      s    NKVNV
r7   r   c                      e Zd ZddgZded    dgZ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"d#dd$dd%d&dd'd(d)d*d+d,d-d.d/ddd0d1ded2d3d4d5d6d7d8d9
dd:d;d<gZd=d>dd?d@dAddBdCdDdEddFddGdHdIdJdKddLdMdNgZdO ZyP)Q	StreaksIEzohttps?://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   rU   rI   rO   rK   modified_daterV   rX   upload_daterL   )rH   	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   rU   rI   rO   rK   r   rV   rS   rX   r   rL   z[https://playback.api.streaks.jp/v1/projects/ktv-web/medias/b5411938e1e5435dac71edf829dd4813 b5411938e1e5435dac71edf829dd4813KANTELE_SYUSEi_063020250122i7gi!mg20241226)r%   r   rU   rI   rK   r   rV   rS   rX   r   rL   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   rU   rI   rK   r   rV   rX   r   rL   zphttps://players.streaks.jp/sp-jbc/a12d7ee0f40c49d6a0a2bff520639677/index.html?m=5f89c62f37ee4a68be8e6e3b1396c7d8T)rH   only_matchingz#https://event.play.jp/playnext2023/ 2d975178293140dc8074a7fc536a7604u'   PLAY NEXTキームービー（本番）playg1@iqc20221114iCPg20250213)r%   r   rU   rL   rO   rS   rX   r   rV   r   rK   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%   rU   rN   	age_limitrS   )rH   playlist_mincountr   c           
          t        |i       \  }}| j                  |      j                  dd      \  }}| j                  ||t	        d|j                  d      i            S )Nry   r%   zX-Streaks-Api-Keyapi_keyr   )r   _match_valid_urlgroupr   r   rg   )rx   rH   smuggled_datary   rz   s        r5   _real_extractzStreaksIE._real_extract   sn    *33]#44S9??dS
H--+#]%6%6y%A7 + .  	r7   N)	r   r   r   
_VALID_URL_EMBED_REGEXrd   _TESTS_WEBPAGE_TESTSr   r1   r7   r5   r   r   r   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r7   r   )ri   urllib.parserl   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   r   r   r   r   utils.traversalr   r   r   r1   r7   r5   <module>r      sB      ! -
 
 
 +[
M [
|z zr7   