
    ' j                     F    S SK r S SKrS SKrS SKrSSKJr   " S S\5      rg)    N   )FFmpegPostProcessorc            
       l    \ rS rSrSS0rSS0r0 \ESS0ErSS	S
SSSSSSS.	\ErSS jrS r	S r
S rSrg)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hookNc                     [         R                  " X5        [        U=(       d    U R                  R	                  5       5      U l        [        R                  " SU5      (       a  X0l        g SU-   U l        g )Nz	https?://zhttps://)	r   __init__tuple
CATEGORIESkeys_categoriesrematch_API_URL)self
downloader
categoriesapis       r/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/yt_dlp/postprocessor/sponsorblock.pyr   SponsorBlockPP.__init__"   sO    $$T6 !Et/C/C/EF!xxS99zC?O    c                     US   nX R                   ;  a  U R                  SU 35        / U4$ U R                  S5        U R                  XR                  S5      5      US'   / U4$ )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%   runSponsorBlockPP.run'   si    )	OO+NN?	{KLt8O78(,(B(B4R\I](^$%4xr'   c                   ^ ^ T R                  US   T R                  US      5      nUU 4S jnU Vs/ s H  oT" U5      (       d  M  UPM     nn[        U5      [        U5      :w  a  T R                  S5        U 4S jnU Vs/ s H
  oW" U5      PM     nnU(       d  T R	                  S5        U$ T R	                  S[        U5       S35        U$ s  snf s  snf )	Nidr)   c                 2  > U S   nUS:X  a  gUS   S::  a  SUS'   U S   TR                   ;   a  US==   S-  ss'   T(       a  TUS   -
  S::  a  TUS'   U S   (       a  [        TU S   -
  5      OSnUS:  =(       d    US:  =(       a    X!S   US   -
  -  S	:  $ )
Nsegment)r   r   Fr   r   categoryvideoDuration   g?)POI_CATEGORIESabs)s	start_enddiffr*   r!   s      r%   duration_filter=SponsorBlockPP._get_sponsor_chapters.<locals>.duration_filter4   s    )IF"|q  	!} 3 33!! Hy|3q8'	!9:?9K3x!O"445QRD!8Yq XTq\IaL5P-QTX-XYr'   zjSome SponsorBlock segments are from a video of different duration, maybe from an old version of this videoc           	      p   > U S   U S   su  pnUS:X  a  U S   OTR                   U   nUUUUU S   X1X$4/S.$ )Nr7   r8   r   description
actionType)
start_timeend_timer8   titletyper   )r   )r=   startendcatrG   r!   s        r%   
to_chapter8SponsorBlockPP._get_sponsor_chapters.<locals>.to_chapterK   s]     !)a
mLU#(+y(8Am$dooc>RE#,!$S 89 r'   z<No matching segments were found in the SponsorBlock databasezFound z& segments in the SponsorBlock database)_get_sponsor_segmentsr,   lenreport_warningr-   )	r!   r0   r*   segmentsr@   r=   duration_matchrL   sponsor_chapterss	   ` `      r%   r.   $SponsorBlockPP._get_sponsor_chapters1   s    --d4j$//$J_:`a	Z& &.DX1C!XD~#h-/  !M  N
	 4BB>aJqM>BNNYZ   NNVC(8$9#::`ab+ E  Cs   CCCc           	         [         R                  " UR                  S5      5      R                  5       nU R                   SUS S  S3[
        R                  R                  U[        R                  " U R                  5      [        R                  " / SQ5      S.5      -   nU R                  U5      =(       d    /  H  nUS   U:X  d  M  US   s  $    / $ )	Nasciiz/api/skipSegments/   ?)skippoir   )servicer#   actionTypesvideoIDrQ   )hashlibsha256encode	hexdigestr    urllibparse	urlencodejsondumpsr   _download_json)r!   video_idr[   
video_hashurlds         r%   rN   $SponsorBlockPP._get_sponsor_segments^   s    ^^HOOG$<=GGI
1*Ra.1ACfllF\F\**T%5%56::&@A^
 G 
 $$S)/R/A|x'}$ 0 	r'   )r    r   )Nzhttps://sponsor.ajay.app)__name__
__module____qualname____firstlineno__r,   r;   NON_SKIPPABLE_CATEGORIESr   r   r2   r.   rN   __static_attributes__ r'   r%   r   r   	   s|     	9J 	N 
 9 
 /#,""--  #JP
+ Zr'   r   )r^   re   r   urllib.parserb   ffmpegr   r   rs   r'   r%   <module>rv      s#      	  '`( `r'   