
    V|hn                     >    S SK Jr  SSKJrJrJrJr   " S S\5      rg)   )InfoExtractor   )int_or_none	qualitiestraverse_objurl_or_nonec                       \ 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$./rS% rS&rg')(NprIE   zMhttps?://(?:www\.)?npr\.org/(?:sections/[^/]+/)?\d{4}/\d{2}/\d{2}/(?P<id>\d+)zxhttps://www.npr.org/sections/allsongs/2015/10/21/449974205/new-music-from-beach-house-chairlift-cmj-discoveries-and-more	449974205z?New Music From Beach House, Chairlift, CMJ Discoveries And More)idtitle   )url	info_dictplaylist_countzhttps://www.npr.org/sections/deceptivecadence/2015/10/09/446928052/music-from-the-shadows-ancient-armenian-hymns-and-piano-jazz	446928052z9Songs We Love: Tigran Hamasyan, 'Your Mercy is Boundless' 12fa60cb2d3ed932f53609d4aeceabf1	446929930mp3z/Your Mercy is Boundless (Bazum en Qo gtutyunqd)i  )r   extr   duration)md5r   )r   r   playlistzEhttps://www.npr.org/2017/06/19/533198237/tigers-jaw-tiny-desk-concert	533198237zTigers Jaw: Tiny Desk Concert	533201718mp4z#Failed to download m3u8 information)r   r   r   expected_warningszJhttps://www.npr.org/2020/02/14/805476846/laura-stevenson-tiny-desk-concertT)r   only_matchingzGhttps://www.npr.org/2022/03/15/1084896560/bonobo-tiny-desk-home-concert
1086468851z Bonobo: Tiny Desk (Home) Concerti%  z.re:^https?://media.npr.org/assets/img/.*\.jpg$)r   r   r   r   	thumbnail)r   r   c                    U R                  U5      nU R                  SUUSSSS.S9S   S   S	   nUR                  S
0 5      R                  S5      nSn[        U5      n/ nUR                  S/ 5      UR                  S/ 5      -    GH\  nUS   n	/ n
UR                  S0 5      R	                  5        H  u  pU(       d  M  [        U[        5      (       a  US	   nUR                  S5      nU(       d  MB  X;   d  MI  US:X  a$  U
R                  U R                  XSSSSS95        Ms  US:X  a6  U R                  XS SS9nU R                  X5        U
R                  U5        M  U
R                  UUU" U5      S.5        M     UR                  S0 5      R	                  5        Hk  u  nn[        U[        5      (       d  M  US:w  a  M%  [        UR                  S5      5      nU(       d  MH  U
R                  U R                  UUSSSSS95        Mm     U
(       dG  U R                  U R                  X5      USS9n[!        [        U5      SSS9nU R                  UU	SSSS9n
UR                  U	UR                  S
0 5      R                  S5      =(       d    UUR                  S 0 5      R                  S5      [#        UR                  S!0 5      R                  S5      5      U
S".5        GM_     U R%                  XrU5      $ )#Nzhttp://api.npr.org/queryzaudio,multimedia,titlejson%MDAzMzQ2MjAyMDEyMzk4MTU1MDg3ZmM3MQ010)r   fieldsformatapiKey)queryliststory    r   z$text)threegpm3u8smilr   r   audio
multimediar   r&   r-   r   m3u8_nativehlsF)m3u8_idfatalr.   c                 &    U R                  SS5      $ )Nzrtmp://flash.npr.org/ondemand/zhttps://ondemand.npr.org/)replace)ss    N/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/npr.py<lambda>%NprIE._real_extract.<locals>.<lambda>`   s    QYY @B]N_    )transform_sourcer4   )r   	format_idqualitystreamhlsUrl)r4   ).	subjectOf.embedUrl)get_allaltImageUrlr   )r   r   r!   r   formats)	_match_id_download_jsongetr   items
isinstancer)   extend_extract_m3u8_formats_extract_smil_formats_check_formatsappenddictr   _yield_json_ld_download_webpager   r   playlist_result)selfr   playlist_idr*   playlist_titleKNOWN_FORMATSr>   entriesmediamedia_idrE   r=   formats_entry
format_urlsmil_formats	stream_idstream_entry
stream_urlraw_json_ldm3u8_urls                       r8   _real_extractNprIE._real_extract=   s   nnS)##&!2 A	< $     !"# 7B/33G<AM*YYw+eiib.IIET{HG,1IIh,C,I,I,K(	$mT22$1!$4M*..w7
!- F*t'A'A&%$) (B (8 9 #f,'+'A'A& D_"' (B () ++LC|4#-)2'.y'9( + -L4 ,199Xr+B+H+H+J'	<!,55(()9)9')BC
!t99	5-!  :  0 1 ,K "11$2H2H2Z\got1u'[(9;^hmn44XxX]ej4kNN7B/33G<N"YY}b9==gF'		*b(A(E(Eg(NO" _ Jn ##G.IIr;    N)__name__
__module____qualname____firstlineno__
_VALID_URL_TESTSrc   __static_attributes__re   r;   r8   r
   r
      s    aJ JV
  QP

 6!J	
 " W4

 6!8	
  DD!& \
 Y7J
	W4FlGJr;   r
   N)commonr   utilsr   r   r   r   r
   re   r;   r8   <module>ro      s    ! E EJM Jr;   