
    =Ґi	                     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           O/var/www/descvideos/venv/lib/python3.12/site-packages/yt_dlp/downloader/soop.pyr   zSoopVodFD.real_download   s    4<<.(OPQ488T[[)"#;<.__&
"))..nk:
 		##Hi8NNJNNs   B5 5Cc                     |d   }|d   }|d   } fd}|j                  d      st        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+     o6PVP[P[@[`f`n`nos   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    hh((<<XFGoWoyz{{       _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   !*- +!*-	| //!$99;L?IO!/!3!3OQ!G !I\_r5I%I U''SL;M,MQS,S 
 [HH$$%= '8[&B CCG466BN?3 //!$  * [NNQt||n4UVWUX#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   