
    ĞiN-                     v    d dl 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mZ ddlmZmZ  G d de          ZdS )	    N   )StreaksBaseIE   )
ExtractorErrorGeoRestrictedErrorint_or_nonejoin_nonemptymake_archive_idsmuggle_urlstr_or_nonestrip_or_nonetime_secondsupdate_url_query)requiretraverse_objc            	          e Zd ZdZdgZdZ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*gd+d,d-d.di dd
dddddddddd/dddd0ddd1g dddddddd2d!d3d4d(d5d)d+d,d6d7d8d9d:giiid;d<d=d>d?d=d>d@dAdBdCdDdEdFd+ddCdGdHdId=d>gZdJZdKdLdMdNZi Z	i Z
dO ZdTdQZdR ZdS ZdPS )UTVerIEzbhttps?://(?:www\.)?tver\.jp/(?:(?P<type>lp|corner|series|episodes?|feature)/)+(?P<id>[a-zA-Z0-9]+)JPFz#https://tver.jp/episodes/epc1hdugbkid
epc1hdugbkextmp4
display_idz(ref:baeebeac-a2a6-4dbf-9eb3-c40d59b40068titleuR   神回だけ見せます！ #2 壮烈！車大騎馬戦（木曜スペシャル）	alt_titleu\   神回だけ見せます！ #2 壮烈！車大騎馬戦（木曜スペシャル） 日テレdescriptionz$md5:2726f742d5e3886edeaf72fb6d740fefuploader_idztver-ntvchannelu	   日テレdurationgjt@	thumbnailzShttps://statics.tver.jp/images/content/thumbnail/episode/xlarge/epc1hdugbk.jpg?v=16seriesu   神回だけ見せます！episodeu6   #2 壮烈！車大騎馬戦（木曜スペシャル）episode_numberr   	timestampigupload_date20250110modified_timestampixgmodified_date20250114not_livei-ob20220502z6brightcovenew ref:baeebeac-a2a6-4dbf-9eb3-c40d59b40068
sru35hwdd2
ss2lcn4af6)live_statusrelease_timestamprelease_date_old_archive_ids	series_id	season_id)url	info_dict4394098882001gClg@tagsis0nb20220501r/   r0   )r2   r3   extractor_argstverbackend
brightcove)r4   r5   paramszhttps://tver.jp/corner/f0103888T)r4   only_matchingzhttps://tver.jp/lp/f0033031z!https://tver.jp/series/srtxft431v
srtxft431vu   名探偵コナン)r   r      )r4   r5   playlist_mincountz!https://tver.jp/series/sru35hwdd2   )r4   r5   playlist_countz!https://tver.jp/series/srkq2shp9dzFhttp://players.brightcove.net/%s/default_default/index.html?videoId=%swebhttps://tver.jphttps://tver.jp/)zx-tver-platform-typeOriginRefererc                     |                      dd dd          }t          |ddddf          | _        |                      d	d d
d          | _        d S )NzAhttps://platform-api.tver.jp/v2/api/platform_users/browser/createzCreating sessions   device_type=pc)dataresultplatform_uidplatform_token)rL   rM   z2https://player.tver.jp/player/streaks_info_v2.jsonzDownloading STREAKS API infoz#Unable to download STREAKS API info)_download_jsonr   _PLATFORM_QUERY_STREAKS_API_INFO)selfsession_infos     ZC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/tver.py_real_initializezTVerIE._real_initializem   s    **O$+< + > >  ,L8*.F
 F
 ;     "&!4!4@$*,Q"S "S    Nc           	      ^    |                      d| |||| j        i | j        |pi           S )Nz)https://platform-api.tver.jp/service/api/)fatalheadersquery)rN   _HEADERSrO   )rQ   pathvideo_idnoterW   rY   s         rS   _call_platform_apizTVerIE._call_platform_apiy   sQ    "">>>$ 7&7;B7 #   	rU   c           
   #     K   |                      d| |d| j                  }t          |ddd ddt          hf          D ]C}|                     d	| |d
| d          }t          |ddd ddt          hf          E d {V  Dd S )Nz5https://service-api.tver.jp/api/v1/callSeriesSeasons/zDownloading seasons info)rX   rK   contentsc                     |d         dk    S )Ntypeseason _vs     rS   <lambda>z6TVerIE._yield_episode_ids_for_series.<locals>.<lambda>   s    !F)xBW rU   contentr   zv1/callSeasonEpisodes/zDownloading season z episodes infoc                     |d         dk    S )Nrb   r"   rd   re   s     rS   rh   z6TVerIE._yield_episode_ids_for_series.<locals>.<lambda>   s    1V9	3I rU   )rN   rZ   r   strr^   )rQ   r2   seasons_infor3   episodes_infos        rS   _yield_episode_ids_for_seriesz$TVerIE._yield_episode_ids_for_series   s     **OIOO14= + J J &x5W5WYbdhknjopr r 	d 	dI 33444iApW`ApApApr rM#M*&I&I9VZ]`\a4c d d d d d d d d d d		d 	drU   c                 	   |                      |                              dd          \  }|                     ddg          d         }|dvrt          d| d	          |d
k    rf|                     d d          }|                     |                               t          |ddddt          hf          t          d           S |dk    rB| 
                    |d          }|                     |                     d|d                    |                     d ddddi          }t          |d          pi }t          |dt          hfd           |                     d! d"d#d$id%d&i'          }t          |                    d                    }	t          |                    d(                    }
t#          |
|	d)*          p!t          |                    d                    }t          |                    d+                    }t          |                    d,                    }fd-d.D             }||
|	t#          |||d)*          ||d/t          |d0t          hfd1d2t$          hfd3t$          hfd4t          hfd5t          hfd6          }t          |d7d8t          ht&          f          }|r|                                sd9| }t          |dd:t          hf          }|r|                    d9          sd9| }|d;k    s|s|d;k    r|                     d<=           |st          d>d	          t          |d7d?t          ht/          d@d	          hf          }i |dAt1          | j        ||fz  dB| j        i          dCdDS |d         dE         }t6          j                            t=          dFG          t6          j        j                   j!        dHz  pdH}	 | "                    ||dId&| j#        |         dJ         dK|          dL          }n;# tH          $ r.}| %                    |j&        | j        dM           i }Y d }~nd }~ww xY wi |||rtO          dC|          gnd dNS )ONr   rb   r;   streaksr   )r<   rp   zInvalid backend value: T)expectedr!   zv2/callSeries/zDownloading series inforK   ri   r   c                     d|  S )Nzhttps://tver.jp/episodes/rd   )xs    rS   rh   z&TVerIE._real_extract.<locals>.<lambda>   s    ,K,K,K rU   )iegetterepisodeszResolving to new URL)r]   )z-canonical"\s*href="(https?://tver\.jp/[^"]+)"z$&link=(https?://tver\.jp/[^?&]+)[?&]z	url regexzv1/callEpisode/zDownloading episode infoFrequire_dataz<mylist,later[epefy106ur],good[epefy106ur],resume[epefy106ur])rW   rY   )rK   r"   ri   version5)defaultz(https://statics.tver.jp/content/episode/z.jsonzDownloading video inforg   rH   rF   )rY   rX   seriesTitle )delimproductionProviderNamebroadcastDateLabelc           
      T    g | ]$\  }}}|t          d | d ddi          ||d%S )z9https://statics.tver.jp/images/content/thumbnail/episode//z.jpgrg   )r   r4   widthheight)r   ).0qualityr   r   rx   r\   s       rS   
<listcomp>z(TVerIE._real_extract.<locals>.<listcomp>   so     
 
 
 ' 'hPWhhZbhhh'N$ $   
 
 
rU   ))smalli  i  )mediumi  ih  )largei  i  )xlargei   i  )r   r!   r"   r   r   
thumbnailsr   
viewStatusstartAtnoseriesIDseasonID)r   r/   r#   r2   r3   video)
videoRefIDvideoIDzref:r   r<   z:No STREAKS ID found; falling back to Brightcove extraction)r\   z)Unable to extract brightcove reference ID	accountIDzbrightcove account IDurl_transparentgeo_countriesBrightcoveNew)_typer4   ie_key	projectID	   )hours   rE   api_keykey0)rG   rH   zX-Streaks-Api-Key)	countriesmetadata_available)r   r1   )(_match_valid_urlgroup_configuration_argr   r^   playlist_from_matchesrn   r   rk   r   _download_webpage	_match_id_search_regexr   rN   r   getr	   r   any	isdecimal
startswithreport_warningr   r   BRIGHTCOVE_URL_TEMPLATE_GEO_COUNTRIESdtdatetimefromtimestampr   timezoneutcmonth_extract_from_streaks_apirP   r   raise_geo_restrictedorig_msgr
   )rQ   r4   
video_typer;   series_infowebpageepisode_infoepisode_content
video_infor"   r!   r   provideronair_labelr   metadatabrightcove_id
streaks_id
account_id
project_idkey_idxstreaks_infoerx   r\   s                          @@rS   _real_extractzTVerIE._real_extract   s   #44S99??fMM*)))i[AA!D333 !D7!D!DtTTTT!!11+++X7PR RK--228<<h[8Y	7UXTY*Z[["K"K . M M M
 ##,,S(AW,XXG~~d&8&8k'& '& ' 'H ..(h(((4NV[ ^d /   ':< < B?A 	 [M0JTWXXX((FxFFFRj.96H*I ) K K
   3 3G < <==_00??@@&'555 4:>>'2233 	 223KLLMM!/"5"56J"K"KLL
 
 
 
 
+
 
 

$ &uh3OOO$
 
 : -u5&2I}%M#'+"7(3%0(3%0( (  
" %Z';TWZV[]`1abb 	3!8!8!:!: 	32=22M!*y,.NOO
 	-j33F;; 	-,
,,J l""*",&&##P[c $ e e e  a$%P[_````%jseg6MX\.].].]-^3` a aJ*"0J3NN$d&9:< < *     	*;7
+++Lq,A,A,A2;?SSY\]]bab		99*j+-%)%;J%G	%RScZaScSc%dS S  LL
 " 	 	 	%%ajD<Odh%iiiLLLLLL	



 Ub l-!P!P Q Qhl	
 
 
 	
s   95P/ /
Q'9$Q""Q')NTN)__name__
__module____qualname__
_VALID_URLr   _GEO_BYPASS_TESTSr   rZ   rO   rP   rT   r^   rn   r   rd   rU   rS   r   r      s=       vJVNK 5
,
5
 D
 i	

 w
 A
 :
 {
 
 n
 3
 O
 a
 
 :
  !*!
" Z#
$ &!+&!Y Z%%/
 
 
 < 5
<
5
 i
 w	

 A
 ?
 {
 
 n
 B
 3
 O
 a
 
 :
   !
" J#
$ &%'
 
 
* $fy<..I%JK1 4 1  -  3)
 
    32
 
   3 SLFZ g %#% H
 O
S 
S 
S   	d 	d 	dw
 w
 w
 w
 w
rU   r   )r   r   rp   r   utilsr   r   r   r	   r
   r   r   r   r   r   utils.traversalr   r   r   rd   rU   rS   <module>r      s        " " " " " "                        4 3 3 3 3 3 3 3p
 p
 p
 p
 p
] p
 p
 p
 p
 p
rU   