
    V|h'                     h    S SK r S SKrS SKrSSKJr  SSKJrJrJ	r	   " S S\5      r
 " S S	\5      rg)
    N   )InfoExtractor   )int_or_noneparse_durationunified_strdatec                       \ rS rSrSrSrSSSS.SS	S
SSSSS.S.SSS
SSSSS.S.SSS
SSSSS.S.SSS
SSSSS.S./S .S!S"S#S.S$S%/S&.S'S(S)S.S*S+.S,S-S..S/S-S../rS0rS1 rS2r	g3)4AppleTrailersIE   appletrailerszahttps?://(?:www\.|movie)?trailers\.apple\.com/(?:trailers|ca)/(?P<company>[^/]+)/(?P<movie>[^/]+)z1http://trailers.apple.com/trailers/wb/manofsteel/5111zMan of Steel)idtitle d97a8e575432dbcb81b7c3acb741f8a8zmanofsteel-trailer4movo   z	Trailer 420130523wb)r   extdurationr   upload_dateuploader_id)md5	info_dict b8017b7131b721fb4e8d6f49e1df908czmanofsteel-trailer3   z	Trailer 320130417 d0f1e1150989b9924679b441f3404d48zmanofsteel-trailer   Trailer20121212 5fe08795b943eb2e757fa95cb6def1cbzmanofsteel-teaser]   Teaser20120721)urlr   playlistz7http://trailers.apple.com/trailers/magnolia/blackthorn/4489
Blackthornr   z Unable to download JSON metadata)r&   r   playlist_mincountexpected_warningsz4http://trailers.apple.com/trailers/fox/kungfupanda3/15881zKung Fu Panda 3   r&   r   r*   z.http://trailers.apple.com/ca/metropole/autrui/T)r&   only_matchingzLhttp://movietrailers.apple.com/trailers/focus_features/kuboandthetwostrings/ziTunes.playURL\((.*?)\);c                 t	  ^  T R                  U5      nUR                  S5      nUR                  S5      nT R                  X5      nT R                  SUS5      nT R	                  SU S3USS9nU(       Ga  / nUR                  S	/ 5       GH  n	U	S
   n
/ nU	R                  S0 5      R                  5        H  u  pUR                  S0 5      R                  5        H  u  pUR                  S5      nU(       d  M  UR                  U SU 3[        R                  " SSU5      [        UR                  S5      5      [        UR                  S5      5      US S S.5        M     M     UR                  US-   [        R                  " SSU
5      R                  5       -   UU
U	R                  S5      =(       d    U	R                  S5      [        U	R                  S5      =(       d    U	R                  S5      5      [        U	R                  S5      5      US.5        GM     UR                  S0 5      nT R                  XUR                  S5      5      $ [        R                   R#                  US5      nU 4S  jnT R%                  UUUS!9n/ nUR'                  S"5       GH  nUR)                  S#5      R*                  S$   nT R                  T R,                  US%5      n[.        R0                  " U5      nUR                  S&5      nU(       d  Mo  US
   nUS-   [        R                  " SSU5      R                  5       -   nUR)                  S'5      R*                  S   nUS   R3                  SS5      nUS   n[        R4                  " S(U5      n S n!U (       a8  S)[7        U R                  S*5      5      -  [7        U R                  S+5      5      -   n!UR9                  S,5      S-   R;                  S.5      S/   R                  5       n"[        R                   R#                  US0U" S35      n#T R	                  U#U"S15      n$/ nU$S2   S    HO  n%[        R                  " S3SU%S   5      n&UR                  U&U%S4   [        U%S   5      [        U%S   5      S5.5        MQ     UR                  S6UUUU!UUUS7S80S9.	5        GM     S:UUS;.$ )<NmoviecompanyzFilmId\s*=\s*'(\d+)'zfilm idz.http://trailers.apple.com/trailers/feeds/data/z.jsonF)fatalclipsr   versionssizessrc-z_(\d+p\.mov)z_h\1widthheightr   )	format_idr&   r9   r:   languagez[^a-zA-Z0-9] screenthumbruntimefadedposted)r   formatsr   	thumbnailr   r   r   pagemovie_titlezincludes/playlists/itunes.incc                    > [         R                  " SSU 5      n [         R                  " SSU 5      n S n[         R                  " TR                  X5      n SU  S3$ )Nz(?s)<script[^<]*?>.*?</script>r=   z<img ([^<]*?)/?>z	<img \1/>c                 b    SR                  U R                  S5      R                  SS5      5      $ )NziTunes.playURL({});r   'z&#39;)formatgroupreplace)ms    X/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/appletrailers.py_clean_jsonDAppleTrailersIE._real_extract.<locals>.fix_html.<locals>._clean_json   s(    ,33AGGAJ4F4FtW4UVV    z<html>z</html>)resub_JSON_RE)srO   selfs     rN   fix_html/AppleTrailersIE._real_extract.<locals>.fix_html   sR    8"a@A*L!<AWt}}k5AA3g&&rQ   )transform_sourcez./div/ul/liz.//aonClickztrailer infor&   z.//imgz+(?P<minutes>[0-9]+):(?P<seconds>[0-9]{1,2})<   minutesseconds/_r   zincludes/settings/zDownloading settings jsonmetadataz_(\d*p\.mov)type)r&   rJ   r9   r:   videoz
User-AgentzQuickTime compatible (yt-dlp))	_typer   rC   r   r   rD   r   r   http_headersr'   )rd   r   entries)_match_valid_urlrK   _download_webpage_search_regex_download_jsongetitemsappendrR   rS   r   lowerr   r   playlist_resulturllibparseurljoin_download_xmlfindallfindattribrT   jsonloadsrL   searchintsplit
rpartition)'rV   r&   mobjr1   r   webpagefilm_id	film_datarf   clip
clip_titlerC   versionversion_datasize	size_datar7   	page_dataplaylist_urlrW   docr'   lion_clicktrailer_info_jsontrailer_info	first_urlr   video_idrD   r   r@   rM   r   
trailer_idsettings_json_urlsettingsfmt
format_urls'   `                                      rN   _real_extractAppleTrailersIE._real_extract^   sv   $$S)

7#jj+((4$$%<gyQ''<WIUK5 ( "	 G!gr2!']
-1XXj"-E-K-K-M)G+7+;+;GR+H+N+N+P'mmE2"$,39AdV)<#%66/7C#H%0w1G%H&1)--2I&J(/( 	 ,Q .N #+J(O(U(U(WW&'!%(!3!Htxx7H .txx	/B/WdhhwFW X#2488H3E#F#.  # 36 "fb1I'')--:VWW||++C1PQ		'   ux P++m,Bwwv--i8H $ 2 24==3;^!M::&78L$((/I )Es{RVVOR%G%M%M%OOH)007I&x088bAK"9-G		H'RAHAGGI$6 77#aggi>P:QQ"-b1<<SA!DJJLJ & 4 4S<NzlZ_:` a**+<jJefHG
+G4VVOWc%jI
%!&k(W6)#h-8	   5 OO "$&** "A! E -b  
 	
rQ    N)
__name__
__module____qualname____firstlineno__IE_NAME
_VALID_URL_TESTSrT   r   __static_attributes__r   rQ   rN   r
   r
      s   GuJB#
 :/  #(#-#'
 :/  #(#-#'
 :.  #&#-#'
 :-  "%#-#'
E-
4j I!
 @A F&
  @ ^OJFX +Hn
rQ   r
   c                       \ rS rSrSrSSS.SSS.SS	S.S
SS.SSS.S.rSR                  SR                  \5      5      rSSSS.SS.SSSS.SS.SS	SS.SS.SSSS.SS.SSSS.SS./r	S r
Srg )!AppleTrailersSectionIE   zappletrailers:section
just_addedz
Just Added)	feed_pathr   	exclusive	Exclusivejust_hdzJust HDmost_popzMost PopularstudioszMovie Studios)	justaddedr   justhdmostpopularmoviestudiosz;https?://(?:www\.)?trailers\.apple\.com/#section=(?P<id>{})|z,http://trailers.apple.com/#section=justaddedr   )r   r   P   r.   z,http://trailers.apple.com/#section=exclusivez)http://trailers.apple.com/#section=justhdr   z.http://trailers.apple.com/#section=mostpopularr      z/http://trailers.apple.com/#section=moviestudiosr   c                 "   U R                  U5      nU R                  SR                  U R                  U   S   5      U5      nU Vs/ s H  nU R	                  SUS   -   5      PM     nnU R                  XRU R                  U   S   5      $ s  snf )Nz5http://trailers.apple.com/trailers/home/feeds/{}.jsonr   zhttp://trailers.apple.comlocationr   )	_match_idrj   rJ   	_SECTIONS
url_resultro   )rV   r&   sectionsection_dataerf   s         rN   r   $AppleTrailersSectionIE._real_extract  s    ..%**CJJ4>>ZaKbcnKop
 "#! OO7!J-GH! 	 # ##GdnnW6Mg6VWW#s   !Br   N)r   r   r   r   r   r   rJ   joinr   r   r   r   r   rQ   rN   r   r      s    %G &!

 % 

 #

 $#

 #$
#I, PVVWZW_W_`iWjkJ=!
   > 
   ;
   @#
   A$ 
  9#FJXrQ   r   )rw   rR   urllib.parserp   commonr   utilsr   r   r   r
   r   r   rQ   rN   <module>r      s:     	  ! 
m 
DFX] FXrQ   