
    Ği	G                         d dl Z 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mZmZmZmZmZmZmZ  G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          ZdS )    N   )InfoExtractor   )ExtractorError
clean_htmldetermine_extextract_attributesfloat_or_noneget_elements_html_by_classint_or_nonemerge_dictsmimetype2extparse_iso8601
remove_endremove_startstr_or_nonetraverse_objurl_or_nonec                   R    e Zd Z ej        d          ZdZdZdZd Z	d Z
d Zd Zd	S )
NYTimesBaseIEz$36dd619a-56dc-595b-9e09-37f4152c7b5da  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNIzKBOFB77aT/jN/FQ+/QVKWq5V1ka1AYmCR9hstz1pGNPH5ajOU9gAqta0T89iPnhjwla+3oec/Z3kGjxbpv6miQXufHFq3u2RC6HyU458cLat5kVPSOQCe3VVB5NRpOlRuwKHqn0txfxnwSSj8mqzstR997d3gKB//RO9zE16y3PoWlDQXkASngNJEWvL19iob/xwAkfEWCjyRILWFY0JYX3AvLMSbq7wsqOCE5srJpo7rRU32zsByhsp1D5W9OYqqwDmflsgCEQy2vqTsJjrJohuNg+urMXNNZ7Y3naMoqttsGDrWVxtPBafKMI8pM2ReNZBbGQsQXRzQNo7+QIDAQABz/https://samizdat-graphql.nytimes.com/graphql/v2a  query VideoQuery($id: String!) {
  video(id: $id) {
    ... on Video {
      bylines {
        renderedRepresentation
      }
      duration
      firstPublished
      promotionalHeadline
      promotionalMedia {
        ... on Image {
          crops {
            name
            renditions {
              name
              width
              height
              url
            }
          }
        }
      }
      renditions {
        type
        width
        height
        url
        bitrate
      }
      summary
    }
  }
}c                 N   t          j        | j        d          }t          j        ||          }t          |                     | j        |dt          j        | j        dd| idd          	                                dd	d
| j
        ddd          ddt          hf          pi S )Nvideoz!Downloading JSON from GraphQL APIidznyt://video/)query	variables),:)
separatorszapplication/jsonvhszv3.52.21zhttps://nytimes.com)zContent-TypezNyt-App-TypezNyt-App-Versionz	Nyt-TokenOriginF)dataheadersfatalr!   )uuiduuid5_DNS_NAMESPACEr   _download_json_GRAPHQL_APIjsondumps_GRAPHQL_QUERYencode_TOKENdict)selfmedia_id
video_uuid
media_uuids       ]C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/nytimes.py	_call_apizNYTimesBaseIE._call_api>   s    Z 3W==
Z
H55
D//x)LSWS],"$?:$?$?@_ _ %T& T& T& '-fhh 2 %#-![/9 9  0 
 
 %gv6
8 
8 
> <>
	>    c                 T    t          |d ddt          hfdt          hfdfd           S )Nc                 ,    t          |d                   S )Nurl)r   )_vs     r3   <lambda>z3NYTimesBaseIE._extract_thumbnails.<locals>.<lambda>P   s    +ah2G2G r5   r8   widthheight)r8   r<   r=   default)r   r   )r/   thumbss     r3   _extract_thumbnailsz!NYTimesBaseIE._extract_thumbnailsO   sN    F%G%G}-+/J
 J
 % 	   	r5   c                    g }g }i }t          |ddt          hf          D ]}|                    d          }|                    d          }|r
|dk    s||v r:|                    |           t	          |                    d                    pt          |          }	|	dk    rM|                     ||dd	|pd
d          \  }
}|                    |
           |                     ||           |	dk    r|                    |||                    d          p|                    d          t          |                    d                    t          |                    d                    t          |ddt          hfd          t          |                    d          d          pd |	d           ||fS )N
renditions.r8   typer@   mimetypem3u8mp4m3u8_nativehlsF)m3u8_idr#   )targetmpdvideoencodingvideo_codecr<   r=   )	file_sizefileSize)Nvalueget_allbitrate  )r8   	format_idvcodecr<   r=   filesizetbrext)
r   r.   getappendr   r   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitlesr   )r/   video_idcontent_media_jsonurlsformats	subtitlesr   	video_urlrV   rZ   	m3u8_fmts	m3u8_subss               r3   _extract_formats_and_subtitlesz,NYTimesBaseIE._extract_formats_and_subtitlesV   s   	!"4|S4&6QRR 	 	E		%((I		&))I 	X 5 5d9J9JKK	"""uyy4455Qy9Q9QCf}}'+'O'Ox%.e (P (= (=$	9 y)))%%i	%BBBB$!*#ii88TEIIm<T<T(7););<<)%))H*=*=>> ,U13D{m5U^c!e !e !e&uyy';';TBBJd
  
  
 
 
 
 	!!r5   c                    |                      |          }|                     ||          \  }}||                    d          |                    d          t          |                    d                    t	          |                    d          d          d                    t          |dd	d
d hf                    |||                     t          |d                    d	S )NpromotionalHeadlinesummaryfirstPublisheddurationrU   scalez, bylines.renderedRepresentationc                 "    t          | d          S )NzBy )r   xs    r3   r;   z.NYTimesBaseIE._extract_video.<locals>.<lambda>   s    \RSUZE[E[ r5   promotionalMediacrops.rC   .)	r   titledescription	timestamprm   creatorrc   rd   
thumbnails)r4   rh   r[   r   r
   joinr   rA   )r/   r0   r!   rc   rd   s        r3   _extract_videozNYTimesBaseIE._extract_videox   s    ~~h''!@@4PP XX34488I..&txx0@'A'ABB%dhhz&:&:$GGGyyd3 8;[;[:\5^ "_ "_ ` `"22T#XYY[ [
 
 	
r5   N)__name__
__module____qualname__r$   UUIDr&   r-   r(   r+   r4   rA   rh   r~    r5   r3   r   r      sx        TYEFFN XFDL ND> > >"   "  "  "D
 
 
 
 
r5   r   c                   H    e Zd ZdZdgZddddddd	d
dddd	ddddgZd ZdS )	NYTimesIEzhttps?://(?:(?:www\.)?nytimes\.com/video/(?:[^/]+/)+?|graphics8\.nytimes\.com/bcvideo/\d+(?:\.\d+)?/iframe/embed\.html\?videoId=)(?P<id>\d+)zl<iframe[^>]+src=(["\'])(?P<url>(?:https?:)?//graphics8\.nytimes\.com/bcvideo/[^/]+/iframe/embed\.html.+?)\1>zshttp://www.nytimes.com/video/opinion/100000002847155/verbatim-what-is-a-photocopier.html?playlistId=100000001150263 a553aa344014e3723d33893d89d4defc100000002847155rG   z Verbatim: What Is a Photocopier?z$md5:93603dada88ddbda9395632fdc5da260it]S20140428zBrett Weinerz're:https?://\w+\.nyt.com/images/.+\.jpgi  )	r   rZ   rx   ry   rz   upload_dater{   	thumbnailrm   r8   md5	info_dictzJhttp://www.nytimes.com/video/travel/100000003550828/36-hours-in-dubai.htmlTr8   only_matchingc                 V    |                      |          }|                     |          S )N)	_match_idr~   )r/   r8   r`   s      r3   _real_extractzNYTimesIE._real_extract   s'    >>#&&""8,,,r5   N)r   r   r   
_VALID_URL_EMBED_REGEX_TESTSr   r   r5   r3   r   r      s         aJ D  EL E1#7A#%%C

 

  \ F&- - - - -r5   r   c                       e Zd ZdZ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gddd	dddddd d!d"d#d$d%gdd&d'
d(d)id*d+d,d-d.d/d0d1gd2d3d4d5d6d7d8d9d:d;gd<d=d>d?d5d@dAdBgZdC ZdD ZdES )FNYTimesArticleIEzphttps?://(?:www\.)?nytimes\.com/\d{4}/\d{2}/\d{2}/(?!books|podcasts)[^/?#]+/(?:\w+/)?(?P<id>[^./?#]+)(?:\.html)?zhttp://www.nytimes.com/2015/04/14/business/owner-of-gravity-payments-a-credit-card-processor-is-setting-a-new-minimum-wage-70000-a-year.html?_r=0 3eb5ddb1d6f86254fe4f233826778737100000003628438rG   u0   One Company’s New Minimum Wage: $70,000 a Yearz$md5:89ba9ab67ca767bb92bf823d1f138433i-U20150414zMatthew WilliamszPatricia Cohen're:https?://\w+\.nyt.com/images/.*\.jpgg     ]@)
r   rZ   rx   ry   rz   r   uploaderr{   r   rm   z%HTTP Error 500: Internal Server Error)r8   r   r   skipzMhttps://www.nytimes.com/2023/09/29/health/mosquitoes-genetic-engineering.html 2365b3555c8aa7f4dd34ca735ad02e6a100000009110381mp3z<The Gamble: Can Genetically Modified Mosquitoes End Disease?z$md5:9ff8b47acbaf7f3ca8c732f5c815be2eie20230929zStephanie NolenzNatalija Gormalovai*  )	r   rZ   rx   ry   rz   r   creatorsr   rm   r   zThttps://www.nytimes.com/2023/11/29/business/dealbook/kamala-harris-biden-voters.html100000009202270uU   Kamala Harris Defends Biden Policies, but Says ‘More Work’ Needed to Reach Votersz$md5:de4212a7e19bb89e4fb14210ca915f1fige20231129zBy The New York TimeszKatie RogersgMbhX@)
r   rZ   rx   ry   rz   r   r   r   r   rm   skip_downloadrF   )r8   r   r   paramszOhttps://www.nytimes.com/2023/12/02/business/air-traffic-controllers-safety.htmlzair-traffic-controllers-safetyzHDrunk and Asleep on the Job: Air Traffic Controllers Pushed to the Brinkz$md5:549e5a5e935bf7d048be53ba3d2c863d20231202zEmily SteelzSydney Emberi` ke)r   rx   ry   r   r   rz      r8   r   playlist_countzFhttps://www.nytimes.com/2025/04/30/well/move/hip-mobility-routine.htmlzhip-mobility-routinez!Tight Hips? These Moves Can Help.zRSitting all day is hard on your hips. Try this simple routine for better mobility.zAlyssa AgeszTheodore Taeih20250430)r   rx   ry   r   rz   r      zShttps://www.nytimes.com/2023/12/02/business/media/netflix-squid-game-challenge.htmlTr   c           
         t          |dt          hfdddt          hfd dt          d          hfdt          hfffd	t          hfd
t          hfdd          }|                     |                    d          |          \  }}t          |dt          hf          }|s|r|                    |dd           i || 	                    t          |d                    ||dS )NsourceIdrp   .rq   rm   rU   rn   lengthrl   podcastSeries)r   r   rm   rz   seriesFrR   r   fileUrlnone)r8   rW   ru   )r|   rc   rd   )
r   strr
   r   r   rh   r[   r   r\   rA   )r/   blockdetailsrc   rd   r8   s         r3   _extract_content_from_blockz,NYTimesArticleIE._extract_content_from_block   s5   uu%"C)AC5Im$.G.G.G-H IHWbVcKdef*]O<&.'
 '
    "@@TARARTYZZ59{m"<== 	;3 	;NN3&99:::

22<L4N 4N O O"
 
 
 	
r5   c                 0   |                      |          }|                     ||d          }|                     d|d|d           d         d         d	         }|d
         d         }g }d }t          |dd|t          f          x}r>|                    d|                    d                     |                    |           |                    t          |d|f                     |st          d          t          |                     |          d          t          |d
ddddddt          hfd          p|                     ddg|          t          |dt          hf          t          |dddddt          hf          |                     t          |d                    d}	g }
|D ]8}|
                    t!          |                     |          |	                     9t%          |
          dk    r | j        |
|fi |	S d|i|
d          S )!NT)impersonatezwindow\.__preloadedData\s*=zmedia detailsc                 .    |                      dd          S )N	undefinednull)replacers   s    r3   r;   z0NYTimesArticleIE._real_extract.<locals>.<lambda>  s    qyyf'E'E r5   )transform_sourceinitialDatar!   articlesprinkledBodycontentc                 "    | dk    o	|d         dv S )Nmedia
__typename)VideoAudior   )kr:   s     r3   r;   z0NYTimesArticleIE._real_extract.<locals>.<lambda>  s    AL$ZQ|_HZ5Z r5   .	ledeMediar   z/Unable to extract any media blocks from webpagez - The New York Timesrk   textFrR   og:descriptiontwitter:descriptionrl   rp   r   displayName)rv   
assetCrops.rC   .)rx   ry   rz   r   r|   r   r   r   )r   _download_webpage_search_jsonr   any
setdefaultr[   r\   r^   r   r   _html_extract_titler   _html_search_metar   rA   r   r   lenplaylist_result)r/   r8   page_idwebpageart_jsonr   blocksblock_filterlede_media_blockcommon_infoentriesr   s               r3   r   zNYTimesArticleIE._real_extract  s   ..%%((g4(HH$$*G_gEE % G GGTVV\^^gi ?+I6ZZ+Gc;VY5Z[[[ 	,''
HLL4L4LMMMMM*+++l7S,,?@@AAA 	T !RSSS   8 8 A ACZ[['CIsFUXTY3[   m"&"8"8:JLa9bdk"l"l%h1AM?0STT$X	3
CQ^ad`e/fgg22<T4V 4V W W	
 	
  	^ 	^ENN;t'G'G'N'NP[\\]]]]w<<!'4'HHKHHH '
aj
 	
r5   N)r   r   r   r   r   r   r   r   r5   r3   r   r      s        EJ c1#GA#%*'C
 
 8 $ _1#SA#%*,@AC

 

	 " f1#lA#%/'(C
 
 V
! * a2_A%&7#
 
   X(8o&7#%
 
   e UMF^
 
 
.&
 &
 &
 &
 &
r5   r   c                   d    e Zd ZdZdZ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gZd ZdS )NYTimesCookingIENYTimesCookingGuidez4https?://cooking\.nytimes\.com/guides/(?P<id>[\w-]+)z:https://cooking.nytimes.com/guides/13-how-to-cook-a-turkeyz13-how-to-cook-a-turkeyzHow to Cook a Turkeyz$md5:726cfd3f9b161bdf5c279879e8050ca0)r   rx   ry   r   r   z@https://cooking.nytimes.com/guides/50-how-to-make-mac-and-cheese 64415805fe0b8640fce6b0b9def5989a100000005835845rG   zHow to Make Mac and Cheesez$md5:b8f2f33ec1fb7523b21367147c9594f1i`Z20180405gQ#@zAlison Romanr   )	r   rZ   rx   ry   rz   r   rm   r{   r   r   z9https://cooking.nytimes.com/guides/20-how-to-frost-a-cakez20-how-to-frost-a-cakezHow to Frost a Cakez$md5:a31fe3b98a8ce7b98aae097730c269cd   )r8   r   r   r   c           	          |                      |          }|                     ||          }|                     ddg|          }|                     ddg|          }|                     d|d          }t	          t          d|          dt          hd	f          }|r@|                    |           |                     t          | j
        |          |||          S i | 
                    |          |||                     d
|dd           dS )Nzog:titleztwitter:titler   r   z#data-video-player-id="(\d+)"></div>z
lead videoz
video-item.zdata-video-idz*<span itemprop="author">([^<]+)</span></p>authorr>   )rx   ry   r{   )r   r   r   _search_regexr   r   r	   r\   r   mapr~   )r/   r8   r   r   rx   ry   lead_video_id	media_idss           r3   r   zNYTimesCookingIE._real_extract]  sR   ..%%((g66&&
O'DgNN,,.>@U-VX_``**2G\K K &|W==FXEY[j?km m	  	R]+++''D'33We[R R R
!!-00
&))=wZ^ * ` `	
 
 
 	
r5   N)r   r   r   IE_NAMEr   r   r   r   r5   r3   r   r   8  s        #GHJK++A
 

   R1#1A#%%C

 

	   K1**A
 

 	 	/ FD
 
 
 
 
r5   r   c                   p    e Zd ZdZ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ddgZd Zd S )!NYTimesCookingRecipeIEz2https?://cooking\.nytimes\.com/recipes/(?P<id>\d+)z?https://cooking.nytimes.com/recipes/1017817-cranberry-curd-tart 579e83bbe8e61e9de67f80edba8a78a81017817rG   zCranberry Curd Tartz$md5:ad77a3fc321db636256d4343c5742152iKV20151118zDavid Tanisr   )r   rZ   rx   ry   rz   r   r{   r   r   zKhttps://cooking.nytimes.com/recipes/1024781-neapolitan-checkerboard-cookies 58df35998241dcf0620e99e646331b421024781zNeapolitan Checkerboard Cookiesz$md5:ba12394c585ababea951cb6d2fcc6631ige20231130zSue Liz:https://cooking.nytimes.com/recipes/1019516-overnight-oats 2fe7965a3adc899913b8e25ada3608231019516i +\z$md5:8856ce10239161bd2596ac335b9f9bfb20190102zOvernight OatszGenevieve Ko)r   rZ   rz   ry   r   rx   r{   r   c                    |                      |          }|                     ||          }|                     ||          d         d         d         }|                     |d         |dd          \  }}i t	          |dt
          hfd	t          hfd
t          hfdt          hfddt          hfd          ||d t	          |ddddt          hf          D             dS )Nprops	pagePropsrecipevideoSrcrG   rI   )rJ   r   rx   topnotepublishedAtcontentAttribution
cardByline)r   rx   ry   rz   r{   c                     g | ]}d |iS )r8   r   ).0	thumb_urls     r3   
<listcomp>z8NYTimesCookingRecipeIE._real_extract.<locals>.<listcomp>  s/     P P P)E9- P P Pr5   imagerw   .)rc   rd   r|   )
r   r   _search_nextjs_datar]   r   r   r   r   r   r   )r/   r8   r   r   recipe_datarc   rd   s          r3   r   z$NYTimesCookingRecipeIE._real_extract  s0   ..%%((g66..w@@I+VW_`!EE
#WeU F D D
;k]+!C5) )J<8+k];0,F) )  
 "P P|gw#}M@O @O P P P
 
 
 	
r5   N)r   r   r   r   r   r   r   r5   r3   r   r   v  s        FJP1*A#%$C	
 	
  ]16A#%C	
 	
  L1#A%%%C	
 	
 5'FR
 
 
 
 
r5   r   )r)   r$   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r3   <module>r
     s     ! ! ! ! ! !                                 &p
 p
 p
 p
 p
M p
 p
 p
f- - - - - - - -8N
 N
 N
 N
 N
} N
 N
 N
b;
 ;
 ;
 ;
 ;
} ;
 ;
 ;
|?
 ?
 ?
 ?
 ?
] ?
 ?
 ?
 ?
 ?
r5   