
    VGh                     x    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 ddlmZ  G d de      Z G d	 d
e      Zy)    N   )InfoExtractor   )ExtractorErrorint_or_noneparse_age_limitparse_iso8601parse_qssmuggle_urlstr_or_noneupdate_url_query)traverse_objc                   B   e Zd Zd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$id%d&d'dd(d)d*d+d,d-d.d/d0d1d#d$id2d3d4i dd5dddd6d
d7dd8dd9dd:dd;dd<dd=dddddddd>d!d?dd@d#d$id%dAd$dBdCd$dBdDd$dBdEd$dBgZdF ZyG)HCWTVIEcwtvzhttps?://(?:www\.)?cw(?:tv(?:pr)?|seed)\.com/(?:shows/)?(?:[^/]+/)+[^?]*\?.*\b(?:play|watch|guid)=(?P<id>[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})z`https://www.cwtv.com/shows/continuum/a-stitch-in-time/?play=9149a1e1-4cb2-46d7-81b2-47d35bbd332bidz$9149a1e1-4cb2-46d7-81b2-47d35bbd332bextmp4titlezA Stitch in TimedescriptionzPre:(?s)City Protective Services officer Kiera Cameron is transported from 2077.+	thumbnailre:https?://.+\.jpe?gdurationiH
  	timestampi kguploaderCWTVchapterszcount:5series	Continuumseason_numberr   episode_number	age_limit   upload_date20250115seasonSeason 1episode	Episode 1skip_downloadTurl	info_dictparamsz[http://cwtv.com/shows/arrow/legends-of-yesterday/?play=6b15e985-9345-4f60-baf8-56e96be57c63z$6b15e985-9345-4f60-baf8-56e96be57c63zLegends of YesterdayzPre:(?s)Oliver and Barry Allen take Kendra Saunders and Carter Hall to a remote.+ii
  Arrow   4   20151203i4_V)r   r   r   r   r   r   r    r&   r!   r$   r   z(redirect to http://cwtv.com/shows/arrow/)r,   r-   r.   skipzkhttp://www.cwseed.com/shows/whose-line-is-it-anyway/jeff-davis-4/?play=24282b12-ead2-42f2-95ad-26770c2c6088z$24282b12-ead2-42f2-95ad-26770c2c6088zJeff Davis 4z%Jeff Davis is back to make you laugh.i  zWhose Line Is It Anyway?      20151006i$TVzcount:4z
Episode 20z	Season 11zRhttp://cwtv.com/thecw/chroniclesofcisco/?play=8adebe35-f447-465f-ab52-e863506ff6d6)r,   only_matchingzIhttp://cwtvpr.com/the-cw/video?watch=9eee3f60-ef4e-440b-b3b2-49428ac9c54ez\http://cwtv.com/shows/arrow/legends-of-yesterday/?watch=6b15e985-9345-4f60-baf8-56e96be57c63zJhttp://www.cwtv.com/movies/play/?guid=0a8e8b5b-1356-41d5-9a6a-4eda1a6feb6cc                    | j                  |      }| j                  d| |      }t        |d      dk7  r#t        t        |dt        ht
        f      d      |d   }|d   }t        |j                  d	      xs d
| ddi      }t        |j                  d            }t        |j                  d            }|r|r|t        |      d  }d||t        |ddi      |j                  d      t        |j                  d            |j                  d      t        |      t        |      t        |j                  d            t        |j                  d            d|j                  d      dS )NzPhttps://images.cwtv.com/feed/app-2/video-meta/apiversion_22/device_android/guid_resultok)	error_msgmsgT)expectedvideor   mpx_urlz:https://link.theplatform.com/s/cwtv/media/guid/2703454149/formatszM3U+noner&   r(   url_transparentforce_smil_urldescription_longduration_secsseries_name
start_timeratingThePlatformlarge_thumbnail)_typer   r   r,   r   r   r   r    r!   r   r"   ie_keyr   )	_match_id_download_jsonr   r   stranyr   getr   lenr   r   r	   r   )	selfr,   video_iddata
video_datar   r@   r&   r(   s	            ^/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/cwtv.py_real_extractzCWTVIE._real_extractf   sm   >>#&""^_g^hiksuh'4/ d5IC5RU4V!Wbfgg']
7#"NN9%p+efneo)p
#% Z^^H56jnnY78vc&kl+G 'w)94(@A%>>*<=#JNN?$CD nn]3(0)'2&z~~l'CD()AB##(9:
 	
    N)__name__
__module____qualname__IE_NAME
_VALID_URL_TESTSrX    rY   rW   r   r      sM   G {Jq
8
5
 '
 n	

 1
 
 
 
 	
 k
 Q
 a
 
 :
 j
  {!
( T
)2 m8+n%#
 T
 ;'* }
8
5
 ^
 B	

 
 0
 R
 b
 :
 
 
 
 1
 	
 |
  k!
( T
)2 d [ n \[PFd
rY   r   c                       e Zd Zd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#id$gZd%Zd& Zy')(CWTVMovieIEz
cwtv:moviezRhttps?://(?:www\.)?cwtv\.com/shows/(?P<id>[\w-]+)/?\?(?:[^#]+&)?viewContext=MovieszAhttps://www.cwtv.com/shows/the-crush/?viewContext=Movies+Swimlaner   z$0a8e8b5b-1356-41d5-9a6a-4eda1a6feb6cr   r   r   z	The Crushr$   20241112r   z$md5:1549acd90dff4a8273acd7284458363er   zcount:9r   i 3gr"      r   i  r   r&   r'   r   r   r    r   r(   r)   r!   r   r   r*   Tr+   z([\da-f]{8}-(?:[\da-f]{4}-){3}[\da-f]{12}c                 ~     j                  |      } j                  ||      } j                  d|d       xs  j                  d|d       }t        t	        |      dd fdhdf      xs1  j                  d j                   dd	 j                   dg|d
      } j                  d| d| d| t        |      S )Nz
al:ios:url)defaultzal:android:urlrT   r   c                 D    t        j                  j                  |       S )N)re	fullmatch_UUID_RE)xrS   s    rW   <lambda>z+CWTVMovieIE._real_extract.<locals>.<lambda>   s    r||TXTaTacdGe rY   z'CWTV\.Site\.curPlayingGUID\s*=\s*["\']()zGCWTV\.Site\.viewInAppURL\s*=\s*["\']/shows/[\w-]+/watch-in-app/\?play=(zvideo IDzhttps://www.cwtv.com/shows//z/?play=)	rM   _download_webpage_html_search_metar   r
   _search_regexrj   
url_resultr   )rS   r,   
display_idwebpageapp_urlrT   s   `     rW   rX   zCWTVMovieIE._real_extract   s    ^^C(
((j9""<$"G O%%&6%N 	 '*Z=e<fhi,jk $!!:4==/KZ[_[h[hZiijk# 
$ 	 )*Qzl'(TV\^fh 	hrY   N)rZ   r[   r\   r]   r^   r_   rj   rX   r`   rY   rW   rb   rb      s    GfJR
8
5
 [
 :	

 A
 	
 
 
 
 k
 j
 
 Q
 {
 a
  1!
( T
) F2 ;HhrY   rb   )rh   commonr   utilsr   r   r   r	   r
   r   r   r   utils.traversalr   r   rb   r`   rY   rW   <module>ry      s<    	 !	 	 	 +t
] t
n,h- ,hrY   