
    V|h                     v    S SK Jr  SSKJrJrJrJrJrJrJ	r	   " S S\5      r
 " S S\
5      r " S S	\
5      rg
)   )InfoExtractor   )ExtractorError
clean_htmlclean_podcast_urlint_or_nonestr_or_nonetry_geturl_or_nonec                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
StitcherBaseIE   z2https?://(?:www\.)?stitcher\.com/(?:podcast|show)/c                 n    U R                  SU-   X#S9n[        US 5      nU(       a
  [        USS9eUS   $ )Nzhttps://api.prod.stitcher.com/)queryc                     U S   S   S   $ )Nerrors    message xs    S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/stitcher.py<lambda>*StitcherBaseIE._call_api.<locals>.<lambda>   s    (Ay0I    T)expecteddata)_download_jsonr
   r   )selfpathvideo_idr   resperror_massages         r   	_call_apiStitcherBaseIE._call_api   sK    "",t3 # #  &IJ >>F|r   c                 f    [        UR                  S5      =(       d    UR                  S5      5      $ )Nhtml_descriptiondescription)r   get)r   r   s     r   _extract_description#StitcherBaseIE._extract_description   s%    $((#56Q$((=:QRRr   c                 f    [        UR                  S5      =(       d    UR                  S5      5      $ )N	audio_urlguid)r   r)   )r   episodes     r   _extract_audio_url!StitcherBaseIE._extract_audio_url   s$    7;;{3Jw{{67JKKr   c                 H    UR                  S5      UR                  S5      S.$ )Nimage_base_urltitle)	thumbnailseries)r)   )r   shows     r   _extract_show_info!StitcherBaseIE._extract_show_info   s%    "23hhw'
 	
r   c                    [        US   5      UR                  S5      US   R                  5       U R                  U5      [	        UR                  S5      5      [        U5      S[	        UR                  S5      5      [	        UR                  S5      5      [        UR                  S5      5      S	.
nUR                  U5        U$ )
Nidslugr4   durationnonedate_publishedseason	season_id)
r;   
display_idr4   r(   r=   urlvcodec	timestampseason_numberrA   )strr)   stripr*   r   r   r	   update)r   r/   r-   	show_infoinfos        r   _extract_episodeStitcherBaseIE._extract_episode%   s    gdm$!++f-W%++-44W=#GKK
$;<$Y/$W[[1A%BC(X)>?$W[[%=>
 	Ir   r   N)__name__
__module____qualname____firstlineno___VALID_URL_BASEr$   r*   r0   r8   rL   __static_attributes__r   r   r   r   r      s"    KOSL
r   r   c                       \ rS rSr\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0SS.SSS.SSS.SSS./rS rS r	g!)"
StitcherIE6   z1(?:[^/]+/)+e(?:pisode)?/(?:[^/#?&]+-)?(?P<id>\d+)zMhttp://www.stitcher.com/podcast/the-talking-machines/e/40789481?autoplay=true e9635098e0da10b21a0e2b85585530f640789481mp3z,Machine Learning Mastery and Cancer Clustersz$md5:547adb4081864be114ae3831b4c2b42fiD  zre:^https?://.*\.jpg20151008ihVTalking Machines)	r;   extr4   r(   r=   r5   upload_daterE   r6   )rC   md5	info_dictzihttp://www.stitcher.com/podcast/panoply/vulture-tv/e/the-rare-hourlong-comedy-plus-40846275?autoplay=true40846275zthe-rare-hourlong-comedy-pluszThe CW's 'Crazy Ex-Girlfriend'z$md5:04f1e2f98eb3f5cbb094cea0f9e19b17i  )r;   rB   r\   r4   r(   r=   r5   skip_downloadTzPage Not Found)rC   r_   paramsskipzPhttp://www.stitcher.com/podcast/marketplace-on-stitcher/e/40910226?autoplay=truerC   only_matchingz~http://www.stitcher.com/podcast/panoply/getting-in/e/episode-2a-how-many-extracurriculars-should-i-have-40876278?autoplay=truezKhttps://www.stitcher.com/show/threedom/episode/circles-on-a-stick-200212584c                 &   U R                  U5      nU R                  SUSU05      nUS   S   nU R                  U5      nU(       d  U R                  5         [	        US [
        5      =(       d    0 nU R                  XEU R                  U5      5      $ )Nzshows/episodesepisode_idsepisodesr   c                     U S   S   $ Nshowsr   r   r   s    r   r   *StitcherIE._real_extract.<locals>.<lambda>i       qz!}r   )	_match_idr$   r0   raise_login_requiredr
   dictrL   r8   )r   rC   audio_idr   r/   r-   r7   s          r   _real_extractStitcherIE._real_extracta   s    >>#&~~h(ACz"1%++G4	%%'t4d;Ar$$ 7 7 =? 	?r   r   N
rN   rO   rP   rQ   r   rR   
_VALID_URL_TESTSrr   rS   r   r   r   rU   rU   6   s    //2ffJ^1CA0%#(

 {95A0
 T
 !" b
 P ]I'FR
?r   rU   c                   V    \ rS rSr\R
                  S-   rSSSSS.SS	.S
SS./rS rSr	g)StitcherShowIEn   z(?P<id>[^/#?&]+)/?(?:[?#&]|$)z4http://www.stitcher.com/podcast/the-talking-machineszthe-talking-machinesr[   z$md5:831f0995e40f26c10231af39cf1ebf0b)r;   r4   r(   j   )rC   r_   playlist_mincountz2https://www.stitcher.com/show/the-talking-machinesTrd   c                    U R                  U5      nU R                  SU S3USS05      n[        US [        5      =(       d    0 nU R	                  U5      n/ nUR                  S5      =(       d    /  H>  nU R                  U5      nU(       d  M  UR                  U R                  XxU5      5        M@     U R                  XbUR                  S5      U R                  U5      5      $ )Nzsearch/show/z/allEpisodescounti'  c                     U S   S   $ rj   r   r   s    r   r   .StitcherShowIE._real_extract.<locals>.<lambda>   rm   r   rh   r4   )rn   r$   r
   rp   r8   r)   r0   appendrL   playlist_resultr*   )	r   rC   	show_slugr   r7   rJ   entriesr/   r-   s	            r   rr   StitcherShowIE._real_extract}   s    NN3'	~~9+\2I?OQt4d;Ar++D1	,22G//8INN400YOP	 3 ## 1%%d+- 	-r   r   Nrt   r   r   r   rx   rx   n   sH    //2RRJE('A

 ! DF-r   rx   N)commonr   utilsr   r   r   r   r	   r
   r   r   rU   rx   r   r   r   <module>r      s=    !  &] &R5? 5?p-^ -r   