
    V|hB                         S SK r SSKJr  SSKJrJrJrJrJrJ	r	J
r
Jr  SSKJr  SS jr " S S	\5      r " S
 S\5      rg)    N   )InfoExtractor   )filter_dictfloat_or_noneint_or_noneparse_qsstr_or_nonetry_getunified_timestampurl_or_none)traverse_objc                   ^  T S   nT S   n[        T S [        5      n[        T S [        5      n/ nS H<  n[        T R                  U S35      5      nU(       d  M)  UR	                  SU05        M>     U 4S jn	U 4S	 jn
0 S
[        U=(       d    T S   5      _SU_ST R                  S5      _SU_ST R                  S5      _S[        T R                  S5      5      _SU_S[        T R                  S5      5      _SU_SU
" S5      =(       d    U
" S5      _SU	" S5      _SU	" S5      _SU	" S5      _SS_SS _S!S _S"S _UU[        R                  5       S#.E$ )$Ntitledownload_urlc                     U S   S   $ )Nshowr    xs    S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/spreaker.py<lambda>"_extract_episode.<locals>.<lambda>   s    QvYw%7    c                     U S   S   $ )Nauthorfullnamer   r   s    r   r   r      s    q{:'>r   )image_originalimage_mediumimage_urlurlc                 D   >^  [        [        TU 4S jU 4S j45      5      $ )Nc                    > U T S3   $ )Ns_countr   r   keys    r   r   1_extract_episode.<locals>.stats.<locals>.<lambda>!   s    qC5)r   c                    > U S   T S3   $ )Nstatssr   r&   s    r   r   r(   "   s    qzSE),r   )r   r   r'   datas   `r   r*   _extract_episode.<locals>.stats   s%    7),./ 0 	0r   c                 6   > [        TR                  U 5      SS9$ )Ni  )scale)r   getr,   s    r   duration"_extract_episode.<locals>.duration$   s    TXXc]$77r   id
episode_id
display_id	permalinkdescription	timestamppublished_atuploaderuploader_id	author_idcreatorr2   length
view_countplay
like_countlikecomment_countmessageformatzMPEG Layer 3	format_idmp3	containerext)
thumbnailsseriesextractor_key)	r   strr   r1   appendr   r
   
SpreakerIEie_key)r-   r5   r   r   rL   r;   rK   r    	image_urlr*   r2   s   `          r   _extract_episoderS      s   ME'LT7=Ft>DHJ<E7$ 89	9ui01 =
08c*2\ 23| 	dhh{+ 		
 	txx. 	&txx'?@ 	H 	{488K#89 	8 	HZ(>HX,> 	eFm 	eFm 	y) 	. 	U  	U!" 	u#$ !#**,) r   c                      \ rS rSrSS/rS0 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'0 SS(_SS)_S	S
_SS*_S\_SS+_SS,_SS-_SS._SS/_S\_S\_S\_SS0_SS1_S S-/_S2.S3S#S$./rS4 rS5r	g6)7rP   ?   zMhttps?://api\.spreaker\.com/(?:(?:download/)?episode|v2/episodes)/(?P<id>\d+)zHhttps?://(?:www\.)?spreaker\.com/episode/[^#?/]*?(?P<id>\d+)/?(?:[?#]|$)z)https://api.spreaker.com/episode/12534508r4   12534508r6   z(swm-ep15-how-to-market-your-music-part-2rJ   rH   r   z(EP:15 | Music Marketing (Likes) - Part 2r8   z$md5:0588c43e27be46423e183076fa071177r9   i`Yupload_date20170809r;   SWMr<   9780658r2   gHz@r@   rB   rD   rL   zSuccess With Music | SWM	thumbnailz{https://d3wo5wojvuv7l.cloudfront.net/t_square_limited_160/images.spreaker.com/original/777ce4f96b71b0e1b7c09a5e625210e3.jpgcreators)r"   	info_dictz_https://api.spreaker.com/download/episode/12534508/swm_ep15_how_to_market_your_music_part_2.mp3T)r"   only_matchingzEhttps://api.spreaker.com/v2/episodes/12534508?export=episode_segmentsepisodezghttps://www.spreaker.com/episode/grunge-music-origins-the-raw-sound-that-defined-a-generation--6026961560269615z(grunge-music-origins-the-raw-sound-that-z>Grunge Music Origins - The Raw Sound that Defined a Generationi~^f20240604zKatie Brown 217733249gq=
ף@z
90s Grungez{https://d3wo5wojvuv7l.cloudfront.net/t_square_limited_160/images.spreaker.com/original/bb0d4178f7cf57cc8786dedbd9c5d969.jpg)noter"   r]   z)https://www.spreaker.com/episode/60269615c           	          U R                  U5      nU R                  SU 3U[        [        U5      SS05      S9S   S   n[	        X25      $ )Nz%https://api.spreaker.com/v2/episodes/r'   r'   r   )queryresponser_   )	_match_id_download_jsonr   r	   rS   )selfr"   r5   r-   s       r   _real_extractSpreakerIE._real_extractx   sd    ^^C(
""3J<@*x}uj.AB # DDNPPY[  11r   r   N)
__name__
__module____qualname____firstlineno__
_VALID_URLintrN   _TESTSrk   __static_attributes__r   r   r   rP   rP   ?   s   XSJ
 ;
*
D
 5
 ?	

 A
 
 :
 
 9
 
 #
 #
 S
 0
   W
  !
* q W x
*
D
 5
 U	

 3
 
 :
 
 :
 
 #
 #
 S
 l
   W
  )!
, ;_2Fh2r   rP   c                   Z    \ rS rSr/ SQrSSS0SS.SSS	0S
S.SSS0SS./rSS jrS rSrg)SpreakerShowIE   )z,https?://api\.spreaker\.com/show/(?P<id>\d+)z>https?://(?:www\.)?spreaker\.com/podcast/[\w-]+--(?P<id>[\d]+)z?https?://(?:www\.)?spreaker\.com/show/(?P<id>\d+)/episodes/feedz%https://api.spreaker.com/show/4652058r4   4652058v   )r"   r]   playlist_mincountz7https://www.spreaker.com/podcast/health-wealth--59183235918323<   z3https://www.spreaker.com/show/5887186/episodes/feed5887186i"  Nc              #     #    [         R                  " S5       H  nU R                  SU S3USU 3[        USUS.5      S9n[	        US [
        5      nU(       d    g UR                  S	5      nU(       a  [        U[        5      (       d    g U H'  n[        U[
        5      (       d  M  [        U5      v   M)     X5R                  S
5      :X  d  M    g    g 7f)Nr   zhttps://api.spreaker.com/show/z	/episodeszDownloading JSON page d   )pagemax_per_pager'   )rc   rf   c                     U S   S   $ )Nrg   pagerr   r   s    r   r   )SpreakerShowIE._entries.<locals>.<lambda>   s    *g0Fr   results	last_page)
	itertoolscountri   r   r   dictr1   
isinstancelistrS   )rj   show_idr'   page_numepisodesr   r   results           r   _entriesSpreakerShowIE._entries   s     !*H**0	C 6xjA$$'V J + H H&FMEii	*G*Wd";";!!&$//&v.. " 99[11' +s   C	CCc                     U R                  U5      n[        [        U5      S5      nU R                  U R	                  X#5      US9$ )Nre   )playlist_id)rh   r   r	   playlist_resultr   )rj   r"   r   r'   s       r   rk   SpreakerShowIE._real_extract   s?    ..%8C=*5##DMM'$?W#UUr   r   N)	rm   rn   ro   rp   rq   rs   r   rk   rt   r   r   r   rv   rv      sh    J 7)
 ! I)
   E)
 !F(,Vr   rv   r   )r   commonr   utilsr   r   r   r	   r
   r   r   r   utils.traversalr   rS   rP   rv   r   r   r   <module>r      s@     !	 	 	 ++\>2 >2B3V] 3Vr   