Ë
    š„j€	  ã                   óZ   — d dl Z d dlZddlmZ ddlmZ ddlmZ ddlm	Z	  G d„ d	e«      Z
y)
é    Né   )ÚFileDownloader)ÚHlsFDé   )Ú_cloudfront_auth_request)Únetwork_exceptionsc                   ó   — e Zd ZdZd„ Zd„ Zy)Ú	SoopVodFDz¯
    Downloads Soop subscription VODs with required cookie refresh requests
    Note, this is not a part of public API, and will be removed without notice.
    DO NOT USE
    c                 ó”  — | j                  d| j                  › d�«       t        | j                  | j                  «      }|d   }|d   }t        j                  «       }t        j                  | j                  |||f¬«      }|j                  «        	 |j                  ||«      |j                  «        S # |j                  «        w xY w)Nú[z'] Downloading Soop subscription VOD HLSÚ_cookie_refresh_paramsÚwebpage_url)ÚtargetÚargs)Ú	to_screenÚFD_NAMEr   ÚydlÚparamsÚ	threadingÚEventÚThreadÚ_cookie_refresh_threadÚstartÚreal_downloadÚset)ÚselfÚfilenameÚ	info_dictÚfdÚrefresh_paramsÚreferer_urlÚ
stop_eventÚrefresh_threads           úM/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/downloader/soop.pyr   zSoopVodFD.real_download   s¬   € Ø�‰˜˜4Ÿ<™<˜.Ð(OÐPÔQÜ�4—8‘8˜TŸ[™[Ó)ˆØ"Ð#;Ñ<ˆØ Ñ.ˆä—_‘_Ó&ˆ
Ü"×)Ñ)Ø×.Ñ.Ø˜n¨kÐ:ô
ˆð 	×ÑÔð	Ø×#Ñ# H¨iÓ8à�N‰NÕøˆJ�N‰NÕús   ÂB5 Â5Cc                 óð  ‡ — |d   }|d   }|d   }ˆ fd„}|j                  d«      s™t        j                  «       } ||«      }	|j                  dd«      }
|	xr ||	dz
  k\  xs |	 xr ||
z
  d	k\  }|r;	 ‰ j                  j	                  t        ||||«      «      j                  «        ||d<   |j                  d«      sŒ˜y y # t        $ r+}‰ j                  d
‰ j                  › d|› �«       Y d }~ŒCd }~ww xY w)NÚm3u8_urlÚstrm_idÚvideo_idc                 óv   •— ‰j                   j                  j                  | «      }t        d„ |D «       d¬«      S )Nc              3   ól   K  — | ],  }d |j                   v sŒ|j                  sŒ|j                  –— Œ. y­w)Ú
CloudFrontN)ÚnameÚexpires)Ú.0Úcookies     r$   ú	<genexpr>z^SoopVodFD._cookie_refresh_thread.<locals>._get_cloudfront_cookie_expiration.<locals>.<genexpr>*   s+   è ø€ Òo¨6ÀÐPV×P[ÑP[Ò@[Ð`f×`nÓ`n˜Ÿ�Ñoùs   ‚4–4£4r   )Údefault)r   Ú	cookiejarÚget_cookies_for_urlÚmin)r&   Úcookiesr   s     €r$   Ú!_get_cloudfront_cookie_expirationzKSoopVodFD._cookie_refresh_thread.<locals>._get_cloudfront_cookie_expiration(   s1   ø€ Ø—h‘h×(Ñ(×<Ñ<¸XÓFˆGÜÑo°WÔoÐyzÔ{Ð{ó    é   Ú_last_refreshr   é   éK   r   z!] Cookie refresh attempt failed: )
ÚwaitÚtimeÚgetr   Úurlopenr   Úreadr   r   r   )r   r"   r    r!   r&   r'   r(   r6   Úcurrent_timeÚexpiration_timeÚlast_refresh_checkÚshould_refreshÚes   `            r$   r   z SoopVodFD._cookie_refresh_thread#   s  ø€ Ø! *Ñ-ˆØ  Ñ+ˆØ! *Ñ-ˆô	|ð —/‘/ !Ô$ÜŸ9™9›;ˆLÙ?ÀÓIˆOØ!/×!3Ñ!3°OÀQÓ!GÐð !ÒI \°_ÀrÑ5IÑ%Iò UØ'Ð'ÒS¨LÐ;MÑ,MÐQSÑ,Sð ñ
 ð[Ø—H‘H×$Ñ$Ô%=Ø  '¨8°[ó&Bó CßCGÁ4Ä6Ø6B�N ?Ñ3ð —/‘/ !×$øô  *ò [Ø—N‘N Q t§|¡| nÐ4UÐVWÐUXÐ#Y×ZÑZûð[ús   Á3:C Ã	C5Ã
!C0Ã0C5N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r7   r$   r
   r
   
   s   „ ñòó$[r7   r
   )r   r=   Úcommonr   Ú r   Úextractor.afreecatvr   Únetworking.exceptionsr   r
   rJ   r7   r$   ú<module>rO      s%   ðÛ Û å "Ý Ý :Ý 6ô3[�õ 3[r7   