
    Şi                     N    d dl Z d dlZd dlZd dlZddlmZ  G d de          ZdS )    N   )FFmpegPostProcessorc            
       d    e Zd ZddiZddiZi eddiZddd	d
dddddd	eZddZd Zd Z	d Z
dS )SponsorBlockPPYoutubeYouTubepoi_highlight	HighlightchapterChapterSponsorzIntermission/Intro AnimationzEndcards/CreditszUnpaid/Self PromotionzPreview/RecapzFiller TangentzInteraction ReminderzNon-Music SectionzHook/Greetings)	sponsorintrooutro	selfpromopreviewfillerinteractionmusic_offtopichookNhttps://sponsor.ajay.appc                     t          j        | |           t          |p| j                                                  | _        t          j        d|          r|nd|z   | _        d S )Nz	https?://zhttps://)	r   __init__tuple
CATEGORIESkeys_categoriesrematch_API_URL)self
downloader
categoriesapis       fC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/postprocessor/sponsorblock.pyr   zSponsorBlockPP.__init__"   s]    $T:666 !Et/C/C/E/EFF!xS99OzC?O    c                     |d         }|| j         vr|                     d|            g |fS |                     d           |                     ||                    d                    |d<   g |fS )Nextractor_keyz"SponsorBlock is not supported for zFetching SponsorBlock segmentsdurationsponsorblock_chapters)
EXTRACTORS	to_screen_get_sponsor_chaptersget)r!   info	extractors      r%   runzSponsorBlockPP.run'   s    )	DO++NNK	KKLLLt8O7888(,(B(B4R\I]I](^(^$%4xr&   c                                           |d          j        |d                            } fdfd|D             }t          |          t          |          k    r                     d            fdfd|D             }|s                     d           n&                     d	t          |           d
           |S )Nidr(   c                 <   | d         }|dk    rdS |d         dk    rd|d<   | d         j         v r|dxx         dz  cc<   r|d         z
  dk    r|d<   | d         rt          | d         z
            nd}|dk     p|dk     o||d         |d         z
  z  d	k     S )
Nsegment)r   r   Fr   r   categoryvideoDuration   g?)POI_CATEGORIESabs)s	start_enddiffr)   r!   s      r%   duration_filterz=SponsorBlockPP._get_sponsor_chapters.<locals>.duration_filter4   s    )IF""u|q   	!} 333!!  (Hy|3q88'	!9:?9KR3x!O"44555QRD!8Yq XTYq\IaL5P-QTX-XYr&   c                 *    g | ]} |          |S  r@   ).0r;   r>   s     r%   
<listcomp>z8SponsorBlockPP._get_sponsor_chapters.<locals>.<listcomp>G   s(    DDD1C1CD!DDDr&   zjSome SponsorBlock segments are from a video of different duration, maybe from an old version of this videoc           	          | d         | d         c\  }}}|dk    r| d         nj         |         }||||| d         ||||fgdS )Nr5   r6   r   description
actionType)
start_timeend_timer6   titletyper   )r   )r;   startendcatrH   r!   s        r%   
to_chapterz8SponsorBlockPP._get_sponsor_chapters.<locals>.to_chapterK   sl     !)a
mLUC#(+y(8(8Am$$doc>RE#,!$eS% 89  r&   c                 &    g | ]} |          S r@   r@   )rA   r;   rM   s     r%   rB   z8SponsorBlockPP._get_sponsor_chapters.<locals>.<listcomp>W   s!    BBBaJJqMMBBBr&   z<No matching segments were found in the SponsorBlock databasezFound z& segments in the SponsorBlock database)_get_sponsor_segmentsr+   lenreport_warningr,   )r!   r/   r)   segmentsduration_matchsponsor_chaptersr>   rM   s   ` `   @@r%   r-   z$SponsorBlockPP._get_sponsor_chapters1   s'   --d4j$/$J_:`aa	Z 	Z 	Z 	Z 	Z 	Z& EDDDXDDD~#h--//  !M  N  N  N
	 
	 
	 
	 
	 CBBB>BBB 	cNNYZZZZNNaC(8$9$9aaabbbr&   c           	         t          j        |                    d                                                    }| j         d|d d          dt
          j                            |t          j	        | j
                  t          j	        g d          d          z   }|                     |          pg D ]}|d         |k    r
|d         c S g S )	Nasciiz/api/skipSegments/   ?)skippoir   )servicer#   actionTypesvideoIDrR   )hashlibsha256encode	hexdigestr    urllibparse	urlencodejsondumpsr   _download_json)r!   video_idr[   
video_hashurlds         r%   rO   z$SponsorBlockPP._get_sponsor_segments^   s    ^HOOG$<$<==GGII
CC*RaR.CCCflF\F\*T%566:&@&@&@AA^
 ^
 G G 
 $$S))/R 	% 	%A|x''}$$$ (	r&   )Nr   )__name__
__module____qualname__r+   r9   NON_SKIPPABLE_CATEGORIESr   r   r1   r-   rO   r@   r&   r%   r   r   	   s         	9J 	N 
 9   
 /#,""--   #JP P P P
  +  +  + Z    r&   r   )r^   re   r   urllib.parserb   ffmpegr   r   r@   r&   r%   <module>rr      s}      				     ' ' ' ' ' '` ` ` ` `( ` ` ` ` `r&   