
    ĞiDK                        d dl Z d dlZd dlZd dlZd dlZ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mZ ddlmZmZ  G d d	e          Z G d
 de          Z G d de          Z G d de          ZdS )    N   )InfoExtractor   )	HTTPError)
ExtractorErrorOnDemandPagedListdetermine_extfilter_dictint_or_nonejoin_nonemptyjwt_decode_hs256parse_iso8601str_or_noneurl_or_none)requiretraverse_objc                   r    e Zd ZdZdZdZdZdZdddd	Zd
ddd	Z	d Z
d ZddZddZed             Zd ZdS )HotStarBaseIEuserUPzhttps://www.hotstar.comzhttps://api.hotstar.comz+https://www.hotstar.com/api/internal/bff/v2s   KSuz7Hotstar;in.startv.hotstar/25.06.30.0.11580 (Android/12)zqplatform:android;app_id:in.startv.hotstar;app_version:25.06.30.0;os:Android;os_version:12;schema_version:0.0.1523android)z
user-agentzx-hs-clientzx-hs-platformz?Disney+;in.startv.hotstar.dplus.tv/23.08.14.4.2915 (Android/13)z{platform:androidtv;app_id:in.startv.hotstar.dplus.tv;app_version:23.08.14.4;os:Android;os_version:13;schema_version:0.0.970	androidtvc                     t          |          pt          t          j                              }t          || j        dt
          hdt          j        hddddt          ht          t          hf          pd}||k    S )Nvaluesubsubscriptionsin.expiryr   )r   inttimer   _TOKEN_NAMEr   jsonloadsr   allmax)selfcookiesserver_timer   s       ]C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/hotstar.py_has_active_subscriptionz&HotStarBaseIE._has_active_subscription,   s}    !+..B#dikk2B2Bgg(8'954:,T3=/3(O P P UST 	 ##    c                 F     | j         | j         d| g|R i |ddddiS )Nz/o/v1/headersINPCTV)zx-country-codezx-platform-code)_download_json_API_URL)r%   pathargskwargss       r(   _call_api_v1zHotStarBaseIE._call_api_v13   sj    "t"}**D**I-1I I I5;I I'+GGI I I 	Ir*   Nc                    t          |          pt          t          j                              }|dz   }d| d| d}|dt          j        | j        |                                t          j                  	                                z   z  }| 
                    | j         d| ||t          i |                     ||          r| j        n| j        |t!          || j        df          t!          |d          pt%          t'          j                              d	d
                    }t!          |dt*          hf          st-          d          |d         S )Nip  zst=z~exp=z~acl=/*z~hmac=/r   )deviceIdr   zapplication/json)hotstarauthzx-hs-usertokenzx-hs-device-idzcontent-type)queryr,   successzAPI call was unsuccessful)r   r   r   hmacnew_AKAMAI_ENCRYPTION_KEYencodehashlibsha256	hexdigestr/   _API_URL_V2r
   r)   _SUB_HEADERS_FREE_HEADERSr   r    struuiduuid4dictr   )	r%   r1   video_idr9   r&   stexpauthresponses	            r(   _call_api_implzHotStarBaseIE._call_api_impl8   sk   __0DIKK 0 04i*R**c***48D$?PWP^__iikkkk&&(($(((% !(,(E(Egr(R(Rj4$$X\Xj!#".w9I78S"T"T".w8M"N"N"cRUVZV`VbVbRcRc 2! ! !   '   Hy4&&9:: 	> !<===	""r*   c                     |                      | ||d| t          j        ddgg dddgg ddd	gd
dgg dg dddgddgddgdd          t          j        ddgg ddd          d||          S )Nzcontent_type=dashhls)fmp4fmp4brtsnon_ssaissai)stereodolby51atmosplainwidevineh264h265)r\   r]   vp9)phonetvfullhd4ksdrhdr)package	containeradsaudio_channel
encryptionvideo_codecvideo_codec_non_secureladder
resolutiontrue_resolutiondynamic_range),:)
separatorsSW_SECURE_DECODESW_SECURE_CRYPTO)	HDCP_V2_2	HDCP_V2_1HDCP_V2HDCP_V1)widevine_security_levelhdcp_version)
content_idfiltersclient_capabilitiesdrm_parameters)r9   r&   rJ   )rN   r!   dumps)r%   r1   rI   content_typer&   rJ   s         r(   _call_api_v2zHotStarBaseIE._call_api_v2K   s    ""d9h"5|55#':"E?555"F+!?!?!?&
3 &/*A*A*A111#Tl$($<"'/ / %$& $& $& #j,>@R+S P P P* * %& & &!?
 ?
( r) # # # 	#r*   c                 H   t          | dt          hfdt          hfdt          hfdt          hfdt          ht          fdt          hfdt          hfdt          ht
          hfd	t          hfd
t          hfdt          hfdt          ht
          hfdt          hfdt          hfd          S )N	contentIdtitledescriptionduration)broadcastDate	startDateyearchannelName	channelIdshowName
seasonNameseasonNoseasonId	episodeNo)idr   r   r   	timestamprelease_yearchannel
channel_idseriesseasonseason_number	season_idepisodeepisode_number)r   rE   r   anyr   r   )
video_datas    r(   _parse_metadata_v1z HotStarBaseIE._parse_metadata_v1b   s    J&u%)C51#k]38;-M#k]3%u-&}=!C5)#cU+(;-8$sek];#'*[M:)
 )
   	r*   c           	   #   P  K   |                      ||d| d|dz    di ||| j        z  | j        d          d         d         }t          |d	d
d f          D ]K} | j        t                              |d         |          t          fi |                     |          V  Ld S )NzDownloading z page r   z JSON)taotas)noter9   bodyresults)assetsNitemsc                     |d         S )Nr    _vs     r(   <lambda>z+HotStarBaseIE._fetch_page.<locals>.<lambda>}   s    TUVaTb r*   r   )root)r4   
_PAGE_SIZEr   
url_result	HotStarIE
_video_urlr   )	r%   r1   item_idnamer9   r   pager   videos	            r(   _fetch_pagezHotStarBaseIE._fetch_pageu   s     ##' Jt J J4!8 J J J SSdo-S S S $  
 
 !" "',<gGbGb+cdd 	r 	rE!$/$$U;%7d$CCYr rRVRiRijoRpRpr r r r r r	r 	rr*   )NN)__name__
__module____qualname__r    	_BASE_URLr0   rB   r=   rD   rC   r)   r4   rN   r   staticmethodr   r   r   r*   r(   r   r      s        K)I(H?K` P K" M X U$ L$ $ $I I I
# # # #&# # # #.   \$
r 
r 
r 
r 
rr*   r   c                      e Zd ZdZdZdZddd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iddd dd!dd"d#dd$dd%d&d!d'd(dd)ddidd*d+dd,dd-d.d/d0dd1d2d,dd3d4d)ddidd5d6dd7d8d7d9d:d;d<ddidd=d>dd?d@dAdBdCd?dDdE	ddiddFdGdHdIdGdHdJdGdHg	ZdKZdLdMdNdNdNdOdOdPZdQdRdSdTdUZ	dVdWdXdYZ
dZd[dWd\Zedbd^d]d_d`            Zda Zd]S )cr   hotstar
JioHotstarz(?x)
        https?://(?:www\.)?hotstar\.com(?:/in)?/(?!in/)
        (?:
            (?P<type>movies|sports|clips|episode|(?P<tv>tv|shows))/
            (?(tv)(?:[^/?#]+/){2}|[^?#]*)
        )?
        [^/?#]+/
        (?P<id>\d{10})
    z=https://www.hotstar.com/can-you-not-spread-rumours/1000076273
1000076273mp4zCan You Not Spread Rumours?z$md5:c957d8868e9bc793ccb813691cc4c434iBCV20151111i}  r   extr   r   r   upload_dater   r   skip_downloadm3u8)url	info_dictparamsz\https://www.hotstar.com/tv/ek-bhram-sarvagun-sampanna/s-2116/janhvi-targets-suman/1000234847
1000234847zJanhvi Targets Sumanz$md5:78a85509348910bd1ca31be898c5796bi\20190501i  StarPlus821zEk Bhram - Sarvagun Sampannaz	Chapter 1r   
1260004607   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   zZhttps://www.hotstar.com/in/shows/anupama/1260022017/anupama-anuj-share-a-moment/1000282843
1000282843zAnupama, Anuj Share a Momentz$md5:8d74ed2248423b8b06d5c8add4d7a0c0idAnupama
126002201820230307iU  i  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z[https://www.hotstar.com/in/shows/kana-kaanum-kaalangal/1260097087/back-to-school/1260097320
1260097320zBack To Schoolz$md5:b0d6a4c8a650681491e7405496fc7e13iabzHotstar SpecialszKana Kaanum Kaalangal
126009708920220421i  
1260003991zEhttps://www.hotstar.com/in/clips/e3-sairat-kahani-pyaar-ki/1000262286
1000262286zE3 - SaiRat, Kahani Pyaar Kiz$md5:e3b4b3203bc0c5396fe7d0e4948a638520210606i(`i  )r   r   r   r   r   r   r   r   z3https://www.hotstar.com/in/movies/premam/1000091195
1000091195Premami  z$md5:096cd8aaae8dab56524823dc19dfa9f7i&W20160502i"#  )	r   r   r   r   r   r   r   r   r   z7https://www.hotstar.com/movies/radha-gopalam/1000057157Tr   only_matchingzhhttps://www.hotstar.com/in/sports/cricket/follow-the-blues-2021/recap-eng-fight-back-on-day-2/1260066104zZhttps://www.hotstar.com/in/sports/football/most-costly-pl-transfers-ft-grealish/1260065956Fmoviematchr   content)moviessportsr   r`   showsclipsNMOVIEEPISODESPORTCLIPS)r   r   r   r   rn   rk   rp   )resvcodecdrlanguageaudio_codec)r   acodecr   N	ignore_me)slugr   c                X    d ||fv sJ |st          | j        |d          }| d| d| S )Nr6   delim)r   r   )clsrI   
video_typer   r   s        r(   r   zHotStarIE._video_url  sS    
D))))) 	G 
#FFFD*******r*   c                                           |                              dd          \  }} j        |         }                     |          }|r|                     j                  s                                  t                               | d|dd|d          dd	d
t          hf          pi }|                    d          r 
                    |           d}g i d}	}}d j         di}
t          |dt          hf          p j        |         }                      j         d|d                              d          }                     d||||          }t          |ddddd dddt          ht"          t%          d          hf          }t          |ddt&          d f          D ]}t)          |                    d                    pdt#           fd  j                                        D                       r[t          d!                     d"          D                       }|                    d#          d$vrd%}	t1          j        d&d'|d(                   }t5          |          }g i }}	 d)v s|d*k    r                     ||d+|
,          \  }}ntd-v s|d.k    r                     |||
/          \  }}nN|d0k    rnG|t;          |                    d1                    t;          |                    d2                    d3g}nX# t<          $ rK}t?          |j         tB                    r|j         j"        d4v rd%}n #                    |           Y d }~d }~ww xY w|D ]} j$                                        D ]2\  }}|                    |          s|                    |          ||<   3|                    d5          d6k    r-|                    d7          s|                    d7          |d7<   |                    d8          d6k    r|                    d9          snd:d;d<                    |                    d=                    |d9<   d>|d?         v sd@|                    dA          pdv rdB|                    dC          pdDz   |dC<   tK          |                    dE          |                    d8          d6k    r|                    d=          nd |                    dA          dFG          |dA<   |&                    |            '                    ||          }|s`|r (                    dHgd%I           nE|	r 
                    |           n- )                    ||          s *                    dJd%K            +                    |           |D ]+}|,                    dLi           -                    |
           ,i  .                    |          |||dMS )NNr   typez/detailF   )r   r   )fatalr9   r   r   itemdrmProtectedRefererz/incontentTypezFetching server timezx-origin-datezpages/watchr   spacesplayerwidget_wrappersc                     |d         dk    S )NtemplatePlayerWidgetr   r   s     r(   r   z)HotStarIE._real_extract.<locals>.<lambda>=  s    *YgHg r*   widgetdataplayer_configzplayer config)media_assetmedia_asset_v2)primaryfallbackc                 ,    t          |d                   S )Ncontent_url)r   r   s     r(   r   z)HotStarIE._real_extract.<locals>.<lambda>C  s    k!M*:;; r*   playback_tags c              3   `   K   | ](\  }}                     |          D ]}| d | v V  )dS )rr   N)_configuration_arg).0keyprefixignorer%   tagss       r(   	<genexpr>z*HotStarIE._real_extract.<locals>.<genexpr>F  sq       ? ?"sF!%!8!8!=!=? ? ''v''4/ ? ? ? ? ? ? ?r*   c              3   \   K   | ]'}g |                     d d          dR dd         V  (dS )rr   r   Nr   )split)r  ts     r(   r  z*HotStarIE._real_extract.<locals>.<genexpr>K  sE      RRQ4aggc1oo4t44RaR8RRRRRRr*   ;rj   )rZ   NTz(?<=//staragvod)(\d)zweb\1r  zpackage:hlsr   r   )r   r,   zpackage:dashmpd)r,   f4mwidthheight)r   r  r   )i  i  r   nonerp   r   audio_channelsr      )rW   rX   ri   Audio_Description	format_idzAudio Descriptionformat_noteisource_preferencerm   z, r   r-   )	countriesmetadata_availablez1Your account does not have access to this content)expectedhttp_headers)r   formats	subtitles)/_match_valid_urlgroup_TYPE_get_cookiesgetr    raise_login_requiredr   r4   rH   
report_drmr   rE   _CONTENT_TYPE_request_webpage
get_headerr   r   r   r#   r   _IGNORE_MAPr   r  rer   r	   #_extract_m3u8_formats_and_subtitles"_extract_mpd_formats_and_subtitlesr   r   
isinstancecauser   statuswrite_debug_TAG_FIELDSr   extend_merge_subtitlesraise_geo_restrictedr)   raise_no_formats_remove_duplicate_formats
setdefaultupdater   )r%   r   rI   r   r&   r   geo_restrictedr-  subshas_drmr,   r   rJ   watchr  playback_settag_dict
format_urlr   current_formatscurrent_subsefkr   r  s   `                        @r(   _real_extractzHotStarIE._real_extract#  s   #44S99??fMM*Z
+
##C(( 	(gkk$*:;; 	(%%'''!444he%T T   FTF3	5 5 ; 9;	 	 >>.)) 	&OOH%%%!#Rw4445#J0FGGi4K]^hKi ""~"""H.DF FFPjQ`FaFa 	!!-<RTUU$UHh(9;g;gfovsW_=U=U<V-X Y Y )-#;;9
   A	= A	=L
 |//@@AAGRD ? ? ? ? ?&*&6&<&<&>&>? ? ? ? ?  RR$**S//RRRRRH||L))@@ 7<P]C^__J
++C,.\O D((C6MM484\4\"H% 5] 5J 5J1O\\#t++se||484[4["Hg 5\ 5? 5?1O\\E\\  *!,\-=-=g-F-F!G!G"-l.>.>x.H.H"I"I( ( 'O
 "   agy11 (agn
6R6R%)NN$$Q''' %     ,2244 / /DAq5588 /'||A!55??f,,QUU?5K5K,)1o)F)FAo&55??f,,QUU;K5L5L,"##$+ + c(,,7788 &'
 ,q~==.1553G3G3M2NN14>Q8R8R8XVX1Y-.#0LL**56UU8__5N5NHLL111TXEE-((	$  $  $ -   NN?+++((|<<DD 	j j))TFt)TTTT j))))227B?? j%%&Ydh%iii&&w/// 	= 	=ALL,,33G<<<<
%%j11
	
 
 
 	
s   BL$$
M9.A M44M9)N)r   r   r   IE_NAMEIE_DESC
_VALID_URL_TESTS_GEO_BYPASSr1  r6  r9  rA  classmethodr   rU  r   r*   r(   r   r      s       GGJ O2A#%4	
 	
 #F+  n+A#%!4!%-
 
" #F+' * l3!A#!%%5!
 
" #F+' * m%!A#)-%%'&
 
" #F+' * W3A5%#	
 	
 #F+  E A#%

 

 #F+  I  z  l UmF\ K  E 	 M  K  K +;T + + + + [+p
 p
 p
 p
 p
r*   r   c                   ^    e Zd ZdZdZdZd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S )HotStarPrefixIEzX The "hotstar:" prefix is no longer in use, but this is kept for backward compatibility Fz'hotstar:(?:(?P<type>\w+):)?(?P<id>\d+)$zhotstar:1000076273Tr   zhotstar:movies:1260009879
1260009879r   zNuvvu Naaku Nachavz$md5:d43701b1314e6f8233ce33523c043b7di*n]20190903i#*  r   )r   r   zhotstar:episode:1000234847zhotstar:sports:1260065956zhotstar:sports:1260066104c                     |                      |                              dd          \  }}|                     t                              ||          t          |          S )Nr   r   )r/  r0  r   r   r   )r%   r   rI   r   s       r(   rU  zHotStarPrefixIE._real_extract  sQ    #44S99??fMM*y33HjII9V^___r*   N)r   r   r   __doc__rW  rX  rY  rU  r   r*   r(   r]  r]    s        bbG;J#  +)A#%+	
 	
  , 
 +  + -F8` ` ` ` `r*   r]  c                   \    e Zd ZdZdZdddiddddd	id
ddddidddddiddgZdZd ZdS )HotStarSeriesIEzhotstar:seriesz[(?P<url>https?://(?:www\.)?hotstar\.com(?:/in)?/(?:tv|shows)/[^/]+/(?P<id>\d+))/?(?:[#?]|$)z4https://www.hotstar.com/in/tv/radhakrishn/1260000646r   
1260000646i  )r   r   playlist_mincountz-https://www.hotstar.com/tv/dancee-/1260050431
1260050431*   z-https://www.hotstar.com/in/tv/mahabharat/435/435i  z4https://www.hotstar.com/in/shows/anupama/1260022017/
1260022017iA  d   c                 R   |                      |                              dd          \  }}|                     d|d|i          d         d         d         d         }t          t	          j        | j        d	|d
d|d|          | j                  }|                     ||          S )Nr   r   zshow/detailr   )r9   r   r   r   ztray/g/1/itemsr   r   )etideid)	r/  r0  r4   r   	functoolspartialr   r   playlist_result)r%   r   	series_idrm  entriess        r(   rU  zHotStarSeriesIE._real_extract  s    ..s3399%FFY9[),D   F FFLNNWYY_aaeg $I$5.	q--s%4 %459_F F ##GY777r*   N)r   r   r   rV  rX  rY  r   rU  r   r*   r(   rc  rc    s        GoJE,
 !  ?,
    ?%
 !  F,
 " %F2 J	8 	8 	8 	8 	8r*   rc  )rn  r?   r;   r!   r:  r   rF   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   r   r   r   r   r   utils.traversalr   r   r   r   r]  rc  r   r*   r(   <module>rw     s          				   ! ! ! ! ! ! - - - - - -                        4 3 3 3 3 3 3 3er er er er erM er er erPQ
 Q
 Q
 Q
 Q
 Q
 Q
 Q
h"` "` "` "` "`m "` "` "`J'8 '8 '8 '8 '8m '8 '8 '8 '8 '8r*   