Ë
    š„jÔ)  ã                   ó¤   — 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 ddlmZ  G d„ d	e	«      Z G d
„ de	«      Zy)é    Né   )ÚInfoExtractoré   )Ú	HTTPError)ÚExtractorErrorÚint_or_noneÚjwt_decode_hs256Útry_call)Útraverse_objc                   ó’   — e Zd ZdZ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œgZdgZi ZdZdZd„ Z	d„ Z
d„ Zd„ Zd„ Zy) Ú	SonyLIVIEa  (?x)
                     (?:
                        sonyliv:|
                        https?://(?:www\.)?sonyliv\.com/(?:s(?:how|port)s/[^/]+|movies|clip|trailer|music-videos)/[^/?#&]+-
                    )
                    (?P<id>\d+)
                  zehttps://www.sonyliv.com/shows/bachelors-delight-1700000113/achaari-cheese-toast-1000022678?watch=truezAchaari Cheese ToastÚ
1000022678Úmp4Ú20200411z$md5:3957fa31d9309bf336ceb3f37ad5b7cbi›’^é¹   r   zBachelors Delightià  )ÚtitleÚidÚextÚupload_dateÚdescriptionÚ	timestampÚdurationÚseason_numberÚseriesÚepisode_numberÚrelease_yearÚskip_downloadT)ÚurlÚ	info_dictÚparamsz<https://www.sonyliv.com/movies/tahalka-1000050121?watch=true)r   Úonly_matchingz1https://www.sonyliv.com/clip/jigarbaaz-1000098925zHhttps://www.sonyliv.com/trailer/sandwiched-forever-1000100286?watch=truez‘https://www.sonyliv.com/sports/india-tour-of-australia-2020-21-1700000286/cricket-hls-day-3-1st-test-aus-vs-ind-19-dec-2020-1000100959?watch=truezHhttps://www.sonyliv.com/music-videos/yeh-un-dinon-ki-baat-hai-1000018779ÚINz|Use "--username <mobile_number>" to login using OTP or "--username token --password <auth_token>" to login using auth token.Úsonylivc                 óÊ  — t        t        j                  «       dz  «      }t        d«      }t        |«      D ]m  \  }}t        |dt	        j                  «       z  z   dz  «      dz  }t        j                  |dz  «      }|dk(  rt        |«      ||<   Œ[|dk(  sŒad|z  dz  d›||<   Œo d	j                  |«      d
z   t        t        t        j                  «       dz  «      «      z   S )Néè  Ú xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxxé   r   ÚxÚyé   é   Ú ú-)	ÚintÚtimeÚlistÚ	enumerateÚrandomÚmathÚfloorÚstrÚjoin)ÚselfÚeÚtÚiÚcÚns         úO/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/sonyliv.pyÚ_get_device_idzSonyLIVIE._get_device_idC   sÎ   € Ü”—	‘	“˜dÑ"Ó#ˆÜÐ3Ó4ˆÜ˜a“Lò 	(‰DˆAˆqÜ�Q˜œfŸm™m›oÑ-Ñ-°Ñ3Ó4°qÑ8ˆAÜ—
‘
˜1˜r™6Ó"ˆAØ�CŠxÜ˜1“v��!’Ø�c“Ø˜a™% !™) A˜��!’ð	(ð �w‰w�q‹z˜CÑ¤#¤c¬$¯)©)«+¸Ñ*<Ó&=Ó">Ñ>Ð>ó    c                 óJ  ‡— | j                  «       | j                  d<   d| j                  d<   |j                  «       dk(  r.t        ˆfd„«      r ‰| j                  d<   | j	                  «        y t        |«      dk7  s|j                  «       st        d| j                  › �«      ‚| j	                  «        | j                  d	d d
| j                  t        j                  |ddt        j                  j                  t        j                  j                   «      j#                  d«      ddddœ«      j%                  «       ¬«      }|d   dk(  rt        |d   d¬«      ‚| j                  dd d| j                  t        j                  d|d| j'                  d«      ddt        j                  j                  t        j                  j                   «      j#                  d«      ddœ«      j%                  «       ¬«      }|d   dk(  rt        |d   d¬«      ‚|d   d   | j                  d<   y )NÚ	device_idzapplication/jsonzcontent-typeÚtokenc                  ó   •— t        ‰ «      S )N)r	   )Úpasswords   €r=   ú<lambda>z*SonyLIVIE._perform_login.<locals>.<lambda>S   s   ø€ Ô<LÈXÓ<V€ r?   Úauthorizationé
   zInvalid username/password; z>https://apiv2.sonyliv.com/AGL/1.6/A/ENG/WEB/IN/HR/CREATEOTP-V2zSending OTPÚMSMINDr"   z%Y-%m-%dT%H:%M:%S.%fZé   ÚREGISTERORSIGNINT)ÚmobileNumberÚchannelPartnerIDÚcountryr   ÚotpSizeÚ	loginTypeÚisMobileMandatory)ÚnoteÚheadersÚdataÚ
resultCodeÚKOÚmessage)Úexpectedz?https://apiv2.sonyliv.com/AGL/2.0/A/ENG/WEB/IN/HR/CONFIRMOTP-V2zVerifying OTPÚOTP)rL   rK   rM   ÚotpÚdmaIdÚageConfirmationr   rP   Ú	resultObjÚaccessToken)r>   Ú_HEADERSÚlowerr
   Úreport_loginÚlenÚisdigitr   Ú_LOGIN_HINTÚ_download_jsonÚjsonÚdumpsÚdtÚdatetimeÚnowÚtimezoneÚutcÚstrftimeÚencodeÚ_get_tfa_info)r7   ÚusernamerD   Úotp_request_jsonÚotp_verify_jsons     `  r=   Ú_perform_loginzSonyLIVIE._perform_loginO   sì  ø€ Ø%)×%8Ñ%8Ó%:ˆ�‰�kÑ"Ø(:ˆ�‰�nÑ%à�>‰>Ó˜wÒ&¬8Ó4VÔ+WØ-5ˆD�M‰M˜/Ñ*Ø×ÑÔØÜ�‹]˜bÒ ¨×(8Ñ(8Ô(:Ü Ð#>¸t×?OÑ?OÐ>PÐ!QÓRÐRà×ÑÔØ×.Ñ.ØLØ�}¨d¯m©mÄ$Ç*Á*Ø (Ø$,ØÜŸ[™[Ÿ_™_¬R¯[©[¯_©_Ó=×FÑFÐG^Ó_ØØ/Ø%)ñNó C÷ ‰v‹xð /ó 
Ðð ˜LÑ)¨TÒ1Ü Ð!1°)Ñ!<ÀtÔLÐLà×-Ñ-ØMØ�°·±ÄDÇJÁJØ$,Ø (ØØ×)Ñ)¨%Ó0ØØ#'ÜŸ[™[Ÿ_™_¬R¯[©[¯_©_Ó=×FÑFÐG^Ó_Ø%)ñ	Pó 	E÷ ‰v‹xð .ó ˆð ˜<Ñ(¨DÒ0Ü Ð!1°)Ñ!<ÀtÔLÐLØ)8¸Ñ)EÀmÑ)Tˆ�‰�oÒ&r?   c                 óð  — 	 | j                  d|› d|› �|| j                  ¬«      d   S # t        $ �rB}t        |j                  t
        «      r~|j                  j                  dk(  re| j                  |j                  j                  j                  «       j                  «       |«      d   dk(  r| j                  | j                  d ¬«       t        |j                  t
        «      rŠ|j                  j                  d	k(  rq| j                  |j                  j                  j                  «       j                  «       |«      d   }|d
k(  r| j                  | j                  ¬«       t        |«      ‚‚ d }~ww xY w)Nzhttps://apiv2.sonyliv.com/AGL/z/A/ENG/WEB/©rR   r\   i–  rV   z&Please subscribe to watch this content)Úmethodi“  zGeoblocked Country)Ú	countries)rd   r^   r   Ú
isinstanceÚcauser   ÚstatusÚ_parse_jsonÚresponseÚreadÚdecodeÚraise_login_requiredrc   Úraise_geo_restrictedÚ_GEO_COUNTRIES)r7   ÚversionÚpathÚvideo_idr8   rV   s         r=   Ú	_call_apizSonyLIVIE._call_apiy   sR  € ð	Ø×&Ñ&Ø0°°	¸ÀTÀFÐKØ $§-¡-ð 'ó 1à1<ñ>ð >øô ó 
	Ü˜!Ÿ'™'¤9Ô-°!·'±'·.±.ÀCÒ2GÈD×L\ÑL\Ø—G‘G×$Ñ$×)Ñ)Ó+×2Ñ2Ó4°hóM@Ø@IñMKØNvòMwà×)Ñ)¨$×*:Ñ*:À4Ð)ÔHÜ˜!Ÿ'™'¤9Ô-°!·'±'·.±.ÀCÒ2GØ×*Ñ*Ø—G‘G×$Ñ$×)Ñ)Ó+×2Ñ2Ó4°hó@Ø@IñK�àÐ2Ò2Ø×-Ñ-¸×8KÑ8KÐ-ÔLÜ$ WÓ-Ð-Øûð
	ús   ‚&) ©
E5³D=E0Å0E5c                 óD   — | j                  ddd «      | j                  d<   y )Nz1.4zALL/GETTOKENÚsecurity_token)r„   r^   )r7   s    r=   Ú_initialize_pre_loginzSonyLIVIE._initialize_pre_loginŠ   s   € Ø*.¯.©.¸ÀÐPTÓ*Uˆ�‰Ð&Ò'r?   c                 óÔ  — | j                  |«      }| j                  dd|z   |«      }| j                  d«      s"|j                  d«      r| j	                  |«       |d   }ddt        j                  «       j                  t        j                  «       dz  fz  i}| j                  ||d	|d
¬«      }|j                  | j                  |j                  dd«      j                  dd«      |dd|d
¬«      «       |D ]#  }|j                  di «      j                  |«       Œ% | j                  dd|z   |«      d   d   d   }|d   }	i }
|j                  dg «      D ]I  }|j                  d«      }|sŒ|
j                  |j                  dd«      g «      j                  d|i«       ŒK ||	||j                  d«      |j                  d «      xs |j                  d!«      t!        |j                  d"«      d«      t!        |j                  d#«      «      t!        |j                  d$«      «      |j                  d%«      t!        |j                  d&«      «      t!        |j                  d'«      «      |
d(œS ))Nz1.5zIN/CONTENT/VIDEOURL/VOD/Úallow_unplayable_formatsÚisEncryptedÚvideoURLzx-playback-session-idz%s-%dr%   ÚdashF)Úmpd_idrR   Úfatalz.mpdz.m3u8z/DASH/z/HLS/r   Úhls)Úm3u8_idrR   rŽ   Úhttp_headersz1.6z
IN/DETAIL/Ú
containersr   ÚmetadataÚepisodeTitleÚsubtitleÚsubtitleUrlÚsubtitleLanguageNameÚENGr   Ú	posterURLÚlongDescriptionÚshortDescriptionÚcreationDater   Úseasonr   ÚepisodeNumberÚyear)r   r   ÚformatsÚ	thumbnailr   r   r   r   r   r   r   Ú	subtitles)Ú	_match_idr„   Ú	get_paramÚgetÚ
report_drmÚuuidÚuuid4Úhexr/   Ú_extract_mpd_formatsÚextendÚ_extract_m3u8_formatsÚreplaceÚ
setdefaultÚupdateÚappendr   )r7   r   rƒ   ÚcontentÚdash_urlrR   r    Úfr“   r   r¢   ÚsubÚsub_urls                r=   Ú_real_extractzSonyLIVIE._real_extract�   sf  € Ø—>‘> #Ó&ˆØ—.‘.ØÐ-°Ñ8¸(óDˆà�~‰~Ð8Ô9¸g¿k¹kÈ-Ô>XØ�O‰O˜HÔ%Ø˜:Ñ&ˆà# W´·
±
³×0@Ñ0@Ä$Ç)Á)Ã+ÐPTÑBTÐ/UÑ%Uð
ˆð ×+Ñ+Ø�h v°wÀeð ,ó Mˆà�‰�t×1Ñ1Ø×Ñ˜V WÓ-×5Ñ5°hÀÓHØ�e U°GÀ5ð 2ó Jô 	Kð ò 	=ˆAØ�L‰L˜¨Ó,×3Ñ3°GÕ<ð	=ð —>‘>Ø�< (Ñ*¨Hó6Ø6BñDØDEñGØGQñSˆà˜Ñ(ˆØˆ	Ø—;‘;˜z¨2Ó.ò 	ˆCØ—g‘g˜mÓ,ˆGÙØØ× Ñ  §¡Ð)?ÀÓ!GÈÓL×SÑSØ�wðUõ ð		ð ØØØ Ÿ™ [Ó1Ø#Ÿ<™<Ð(9Ó:Ò^¸h¿l¹lÐK]Ó>^Ü$ X§\¡\°.Ó%AÀ4ÓHÜ# H§L¡L°Ó$<Ó=Ü(¨¯©°hÓ)?Ó@Ø—l‘l 7Ó+Ü)¨(¯,©,°Ó*GÓHÜ'¨¯©°VÓ(<Ó=Ø"ñ
ð 	
r?   N)Ú__name__Ú
__module__Ú__qualname__Ú
_VALID_URLÚ_TESTSr€   r^   rc   Ú_NETRC_MACHINEr>   rr   r„   r‡   r¶   © r?   r=   r   r      sË   „ ð€Jð wà+ØØØ%ØAØ#ØØØ)ØØ ñ
ð ˜Tð
ñð& NØñð CØñð ZØñð cØñð ZØñð=!€FðD �V€NØ€Hð Q€KØ€Nò
?ò(UòTò"Vó*
r?   r   c                   óD   — e Zd ZdZddddidœdddd	idœgZd
ZdZd„ Zd„ Zy)ÚSonyLIVSeriesIEzIhttps?://(?:www\.)?sonyliv\.com/shows/[^/?#&]+-(?P<id>\d{10})/?(?:$|[?#])z0https://www.sonyliv.com/shows/adaalat-1700000091iÄ  r   Ú
1700000091)r   Úplaylist_mincountr   z1https://www.sonyliv.com/shows/beyhadh-1700000007/if  Ú
1700000007zhttps://apiv2.sonyliv.com/AGL)ÚascÚdescc              #   óª  K  — dddœ}| j                  | j                  › d�|d|¬«      d   |d<   t        | j                  | j                  › d	|› �|d
|ddddœ¬«      ddddd„ f«      }|dk(  rt        |«      }|D ]Ô  }t	        |d   «      }t        |ddt        hf«      xs d}d}t        j                  d«      D ]’  }	t        | j                  | j                  › d|› �|d|› d|	› d�|t	        |«      t	        |dz   «      d|dœ¬«      ddddd „ f«      }
|
s Œ�|
D ],  }t	        |d   «      }| j                  d!|› �t        |«      –— Œ. |d"z  }Œ” ŒÖ y ­w)#Nz!application/json, text/plain, */*zhttps://www.sonyliv.com)ÚAcceptÚRefererz/1.4/A/ENG/WEB/ALL/GETTOKENzDownloading security tokenrt   r\   r†   z/1.9/R/ENG/WEB/IN/DL/DETAIL/zDownloading series JSONÚfalseÚ0Ú49)Ú	kids_safeÚfromÚto)rR   Úqueryr’   r   c                 ó   — t        |d   «      S ©Nr   ©r   ©Ú_Úvs     r=   rE   z*SonyLIVSeriesIE._entries.<locals>.<lambda>Ú   s   € Ì+ÐVWÐX\ÑV]ÓJ^€ r?   rÄ   r   r“   r   r�   r   z(/1.4/R/ENG/WEB/IN/CONTENT/DETAIL/BUNDLE/zDownloading z page z JSONéc   rž   )rÌ   rÍ   ÚorderByÚ	sortOrderc                 ó   — t        |d   «      S rÐ   rÑ   rÒ   s     r=   rE   z*SonyLIVSeriesIE._entries.<locals>.<lambda>ê   s   € ÔR]Ð^_Ð`dÑ^eÓRf€ r?   zsonyliv:éd   )	rd   Ú	_API_BASEr   Úreversedr5   Ú	itertoolsÚcountÚ
url_resultr   )r7   Úshow_idÚ
sort_orderrR   Úseasonsr�   Ú	season_idrQ   ÚcursorÚpage_numÚepisodesÚepisoderƒ   s                r=   Ú_entrieszSonyLIVSeriesIE._entriesÌ   sÕ  è ø€ à9Ø0ñ
ˆð %)×$7Ñ$7Ø�~‰~ÐÐ9Ð:¸GØ(°'ð %8ó %;à;Fñ%HˆÐ Ñ!ô ˜t×2Ñ2Ø�~‰~ÐÐ:¸7¸)ÐDÀgØ%¨wØ$ØØñ?ð  3ó  ð ˜l¨A¨|Ñ=^Ð_óaˆð ˜ÒÜ˜wÓ'ˆGØò 	ˆFÜ˜F 4™LÓ)ˆIÜ ¨°W¼s¸eÐ(DÓEÒQÈˆDØˆFÜ%ŸO™O¨AÓ.ò �Ü'¨×(;Ñ(;Ø—~‘~Ð&Ð&NÈyÈkÐZØ ¨d¨V°6¸(¸À5ÐIÐSZÜ # F£Ü! &¨2¡+Ó.Ø#2Ø%/ñ	cð )<ó )ð % l°A°|ÑEfÐgói�ñ  ÙØ'ò V�GÜ" 7¨4¡=Ó1�HØŸ/™/¨H°X°JÐ*?ÄÈHÓUÓUðVð ˜#‘‘ññ		ùs   ‚EEc                 ó   — | j                  |«      }| j                  d| j                  d   g«      d   }|| j                  vr*t        d|› ddj	                  | j                  «      › �«      ‚| j                  | j                  ||«      |¬«      S )Nrà   r   zInvalid sort order "z". Allowed values are: z, )Úplaylist_id)r£   Ú_configuration_argÚ_SORT_ORDERSÚ
ValueErrorr6   Úplaylist_resultrç   )r7   r   rß   rà   s       r=   r¶   zSonyLIVSeriesIE._real_extractò   s™   € Ø—.‘. Ó%ˆà×,Ñ,¨\¸D×<MÑ<MÈaÑ<PÐ;QÓRÐSTÑUˆ
Ø˜T×.Ñ.Ñ.ÜØ& z lÐ2IÈ$Ï)É)ÐTX×TeÑTeÓJfÐIgÐhójð jð ×#Ñ# D§M¡M°'¸:Ó$FÐT[Ð#Ó\Ð\r?   N)	r·   r¸   r¹   rº   r»   rÚ   rë   rç   r¶   r½   r?   r=   r¿   r¿   º   sS   „ Ø]€JàAØ à�,ð
ñð CØ à�,ð
ñð€Fð 0€IØ"€Lò$óL]r?   r¿   )rh   rg   rÜ   re   r3   r2   r/   r§   Úcommonr   Únetworking.exceptionsr   Úutilsr   r   r	   r
   Úutils.traversalr   r   r¿   r½   r?   r=   ú<module>rò      sN   ðÛ Û Û Û Û Û Û å !Ý -÷ó õ +ôc
�ô c
ôL@]�mõ @]r?   