
    iz                         S SK r S SKrSSKJr  SSKJr  SSKJ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JrJrJrJrJrJr  SS	KJrJrJrJrJr   " S
 S\5      r " S S\5      r  " S S\5      r!g)    N   )InfoExtractor)VidsIoIE)VimeoIE   )	HTTPError)KNOWN_EXTENSIONSExtractorError
clean_htmldetermine_extextract_attributesfloat_or_noneint_or_nonemimetype2extparse_iso8601smuggle_urlstr_or_noneupdate_url_queryurl_or_noneurljoin)find_elementsrequiretraverse_objtrim_strvaluec                   B    \ rS rSr\R
                  S 5       rSS jrSrg)PatreonBaseIE!   c                 P    U R                  S5      R                  S5      (       a  gg )Nhttps://www.patreon.com/
session_idz4Patreon/126.9.0.15 (Android; Android 14; Scale/2.10))_get_cookiesget)selfs    E/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/patreon.pypatreon_user_agent PatreonBaseIE.patreon_user_agent"   s'     78<<\JJI    Nc           
      r   Uc  0 nSU;  a   U R                   (       a  U R                   US'   U(       a  UR                  SS05         U R                  SU 3X&(       a  UOSX5UU R                   (       + S9$ ! [         a  n[	        UR
                  [        5      (       a<  [        UR
                  R                  R                  R                  S5      5      S:w  a  e U R                  U R                  UR
                  R                  S U5      US	S
9n[        USS	S9n	U	(       a  [        SU	 3SS9ee S nAff = f)Nz
User-Agentjson-api-version      ?zhttps://www.patreon.com/api/zDownloading API JSON)notequeryfatalheadersimpersonatezContent-TypejsonFr.   )errors.detailget_allzPatreon said: T)expected)r&   update_download_jsonr
   
isinstancecauser   r   responser/   r#   _parse_json_webpage_read_contentr   )
r$   epitem_idr-   r/   r.   r,   eerr_jsonerr_messages
             r%   	_call_apiPatreonBaseIE._call_api)   s0   ?Gw&4+B+B$($;$;GL!LL,c23	&&.rd3dd0F' $ 7 77 ' 9 9  	aggy11\!''BRBRBZBZB^B^_mBn5osy5y''(B(B177CSCSUY[b(celty'zH&x1JTYZK$~k]%CdSS	s   -A5 5
D6?B2D11D6 )NNTN)	__name__
__module____qualname____firstlineno__	functoolscached_propertyr&   rD   __static_attributes__rF   r(   r%   r   r   !   s     r(   r   c                   |   \ rS rSrSrSr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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S0_SS1_S2S3/_S4S5_S6\_S7S8_S9S:_S;S._S S<_S=S>_S\_S?S@\SASB\SASCSDSESF.
ESASASG.SH.SISASJ.SKSASJ.SLSMSNS,SOSPSSQSRSSST.S(S).SU0 SSV_SS,_S\_SSW_S\_SSX_SSY_SS_SSZ_SS[_SS\_SS]_S7S^SE/_SS__S SZ_S!\_S`.Sa0 SSb_SS,_SSc_S Sd_SSe_SSf_SSg_SSh_S\_SSi_SS_S!\_S\_SSj_S7/ SkQ_SSd_S(Sl.Sm0 SSn_SS,_SSo_S\_SSp_SSq_S Sr_SS_S7Ss/_SSt_S\_S!\_SSu_SSv_SSw_SSr_S`.SxSyS,SzS{S|S}S~SS~SSS\\SS.SS0S/S.SSSSSSSSSS\SS\\SS.S(S.SSS,SS\S\SSSSS\SSS.SSA0SH.SSS,SSSSSSS\\\SSSS.S`./rSErSS0r	S r
S rS rSrg)	PatreonIEB   patreonzPhttps?://(?:www\.)?patreon\.com/(?:creation\?hid=|posts/(?:[\w-]+-)?)(?P<id>\d+)z*http://www.patreon.com/creation?hid=743933 e25505eec1053a6e6813b8ed369875ccid743933extmp3	alt_titlez	cd166.mp3titlez*Episode 166: David Smalley of Dogma Debatedescriptionz$md5:34d207dd29aa90e24f1b3f58841b81c7uploaderCognitive Dissonance Podcast	thumbnailre:^https?://.*$	timestampiSupload_date20140727uploader_id87145
like_countcomment_countuploader_url%https://www.patreon.com/dissonancepod
channel_id80642channel_urlchannel_follower_count)urlmd5	info_dictz*http://www.patreon.com/creation?hid=754133 3eb09345bf44bf60451b8b0b81759d0a754133zCD 167 Extra)rS   rU   rX   rZ   r\   rc   rd   re   zPatron-only content)rk   rl   rm   skipz,https://www.patreon.com/creation?hid=1682498SU4fj_aEMVwmp4zI'm on Patreon!TraciJHines20150211z$md5:8af6425f50bd46fbf29f3db0fc3a8364z@TraciHinesMusic
categoriesEntertainmentdurationi  
view_counttagszcount:39	age_limitr   channelz8https://www.youtube.com/channel/UCGLim4T2loE5rwCMdpCIPVglive_statusnot_liveUCGLim4T2loE5rwCMdpCIPVgpublicTz(https://www.youtube.com/@TraciHinesMusiczcount:4iTvideo)
rg   availabilityrj   playable_in_embedre   rd   channel_is_verifiedchaptersr^   
media_type)
noplaylistskip_download)rk   rm   paramsz3https://www.patreon.com/posts/episode-166-of-743933rk   only_matchingz$https://www.patreon.com/posts/743933z6https://www.patreon.com/posts/kitchen-as-seen-51706779 96656690071f6d64895866008484251b	555089736z&KITCHEN AS SEEN ON DEEZ NUTS EXTENDED!z	Cold Ones20210526z$md5:557a409bd79d3898689419094934ba7914936315)rS   rU   rX   rZ   r\   r_   rY   ra   z7https://www.patreon.com/posts/video-sketchbook-32452882324528824301314i|]20191218zhttps://www.patreon.com/loishz$md5:e2693e97ee299c8ece47ffdb67e7d9d2zVIDEO // sketchbook flipthroughLoish
sketchbook1641751)rk   rm   z5https://www.patreon.com/posts/premium-access-7028293170282931zD[Premium Access + Uncut] The Office - 2x6 The Fight - Group Reactionz"https://www.patreon.com/thenormies5733972929435zThe Normiesz$md5:79c9fd8778e2cef84049a94c058a5e2320220809iTeb)z
The Officezearly accessuncut)rk   rm   rp   z6https://www.patreon.com/posts/hunter-x-hunter-3400791334007913z-Hunter x Hunter | Kurapika DESTROYS Uvogin!!!
YaBoyRoshiiE^z"https://www.patreon.com/yaboyroshizHunter x Hunter14264111z!Kurapika is a walking cheat code!202002132147162z6https://www.patreon.com/posts/4k-spiderman-4k-96414599	902250943uY   ❤️(4K) Spiderman Girl Yeonhwa’s Gift ❤️(4K) 스파이더맨걸 연화의 선물uZ   ❤️(4K) Spiderman Girl Yeonhwa’s Gift 
❤️(4K) 스파이더맨걸 연화의 선물Npickyeonhwa90574422z"https://www.patreon.com/Yeonhwa72610237902F   iɆe20240113zre:^https?://.+)rS   rU   rX   rY   rZ   ra   re   rg   ri   rw   r^   r_   rd   rc   r\   r   m3u8z$Failed to parse XML: not well-formed)rk   rm   r   expected_warningsz7https://www.patreon.com/posts/holy-wars-solos-100601977   	100601977z<"Holy Wars" (Megadeth) Solos Transcription & Lesson/Analysisz$md5:d099ab976edfce6de2a65c2b169a88d3zBradley Hall24401883z)https://www.patreon.com/bradleyhallguitar3193932iee20240318)rS   rX   rY   rZ   ra   re   rg   ri   rj   r^   r_   rc   rd   r\   )rk   playlist_countrm   rp   z'https://www.patreon.com/posts/114721679	11472167920241025JapanalysiszKarasawa Part 2z@Part 2 of this video https://www.youtube.com/watch?v=Azms2-VTASkz#https://www.patreon.com/japanalysis80504268i7"g9346307)rS   rU   r_   rZ   rc   r\   rd   rX   rY   re   ra   ri   rj   r^   rg   getcommentsz2https://www.patreon.com/posts/scottfalco-146966245	146966245zscottfalco 1080z$md5:a3f29bbd0a46b4821ec3400957c98aa2
Insanimate2828146z"https://www.patreon.com/Insanimate6260877gԵ>UU@i(9Si20251230)rS   rU   rX   rY   rZ   ra   re   rg   ri   rj   rd   rc   rw   r^   r_   refererr    c                    [        U R                  SU 3USS9SS[        145      nU(       d  g [        USS 14S[        14S	S
[        14S.5      nXS'   [        US	SS[
        1[        45      n[        US[
        145      nU(       a  [        UR                  S5      5      S:X  a  U R                  XASSU R                  S9u  US'   US'   US    H  nU R                  US'   M     [        US	S[
        145      =n(       a'  US   R                  S/ 5      R                  USS.5        O7U(       d  U(       a)  U=(       d    UUR                  S5      S:w  a  SOS S./US'   UR                  S5      (       d  g U$ )Nzmedia/Fr2   data
attributes	file_namec                 *    U R                  S5      S   $ )N.r   )
rpartition)xs    r%   <lambda>3PatreonIE._extract_from_media_api.<locals>.<lambda>C  s    all3.?.Br(   
created_atdisplayrw   )rX   r^   rw   rS   )Nviewer_playback_datark   download_urlmimetyper   rr   )r.   r/   formats	subtitleshttp_headerstranscript_urlenvtt)rk   rU   r   r   none)rk   vcodec)r   rD   dictr   r   r   anyr   r#   #_extract_m3u8_formats_and_subtitles_HTTP_HEADERS
setdefaultappend)r$   media_idr   rm   playback_urlr   fr   s           r%   _extract_from_media_api!PatreonIE._extract_from_media_api;  s   !NNVH:.NF\D6*,
  !$B#CD&8"J@.
 	
 #$#$BEK=Z]^`#J+0OPL
)CDN;?;c;cUDDVDV <d <X8Ii )K"8y)$($6$6.! *!-j9FVYdXe:f!gg~g+&11$;BB) D  \ $3|$.NN<$@G$K&QU% $Ii  }}Y''r(   c                    U R                  U5      nU R                  SU 3USSSSSSSS	.S
9nUS   S   n[        US[        R                  14S[
        14SS[        1[        4S[        14S[        14S[        14S.5      n[        5       n/ nSn[        USS 45       GH  n	U	S   n
U
S:X  a  [        U	S[        145      =(       d    0 n[        UR                  S5      5      n[        UR                  S5      5      n[        UR                  S5      5      nU(       a?  U[        ;   a5  Ub2  US-  nUR                  U SU 3UUU[        US[        145      S .5        [        U	S![        145      =n(       a  UR!                  U5        M  M  U
S":X  a9  UR#                  [        U	SS#[        14S![$        14SS$[        14S%.5      5        GM-  U
S&:X  aB  [        U	SS[        145      =n(       a$  UR'                  S'/ 5      R                  U5        GMr  GMu  U
S(:X  d  GM~  UR#                  [        U	SS[        14S![$        14SS$[        14SS)[        14S*.5      5        GM     [        US+S$[        145      =n(       Ga  U R)                  S,US-S.S/S09u  nnU(       a  [+        S1U 3S2U=(       d    / 05      n[,        R.                  " U5      (       a8  U R1                  [,        R2                  " UU R4                  S3   5      [,        S4S59nO%U R1                  [7        UU R4                  5      5      nU R9                  UUS6U R4                  S7S7S8S99=n(       a<  [:        R.                  " U5      (       d  UR<                  S::w  a  UR                  U5        [        US;[        145      nU(       a  UR                  S<5      n[?        U5      nU[        ;   a  UR                  UUUS$   S=.5        OqUS>:X  d  [?        UR                  S$5      5      S?:X  aM  U RA                  US$   X R4                  S@9u  nnU H  nU R4                  USA'   M     UR                  UUUSB.5        [        USC[B        1[$        145      =n(       a  UR!                  U5        [        US[E        SDSES4S4SF91SG[F        1SD45       HF  nX;   a  M
  U RI                  U5      =n(       d  M$  UR                  U5        UR!                  U5        MH     [        USH5      nS nU(       a'  UR                  S5      (       a  U RK                  U5      nU(       d  US7L a  U RM                  SIUS4SJ9  OnU(       d  U RM                  SKUS4SJ9  OU[O        U5      S:X  a  UR#                  US   5        O1U H  nUR#                  U5        M     U RP                  " Xr40 UDSLU0D6$ X%S!'   UUSL'   U$ )MNposts/z*download_url,mimetype,size_bytes,file_namez_comment_count,content,embed,image,like_count,post_file,published_at,title,current_user_can_viewfull_name,urlr   zurl,name,patron_countfalsez7audio,user,user_defined_tags,campaign,attachments_media)zfields[media]fields[post]fields[user]zfields[post_tag]fields[campaign]json-api-use-default-includesincluder-   r   r   rX   contentimage)	large_urlrk   published_atrc   rd   )rX   rY   r\   r^   rc   rd   r   includedc                     US   $ )NtyperF   _vs     r%   r   )PatreonIE._real_extract.<locals>.<lambda>|  s    AfIr(   r   mediar   r   
size_bytesr   -r   )rS   rU   filesizerk   rW   rS   user	full_namerk   )rZ   ra   re   post_tagry   campaignpatron_count)r{   rg   ri   rj   embedz"//vimeo\.com/(\d+)(?:/([\da-f]+))?zvimeo id)r   r   )NN)groupdefaultzhttps://player.vimeo.com/video/hr   T)url_transparentzChecking embed URLF)  i  )r/   r.   errnoteexpected_statusr   	post_filename)rS   rU   rk   r   r   )r/   r   )rS   r   r   r   zdata-media-idz\d+)attrr   regexhtml.current_user_can_viewz#You do not have access to this post)video_idr7   z%No supported media found in this post__post_extractor))	_match_idrD   r   strstripr   r   r   r   r   setr   r#   r   r	   r   addr8   r   r   _search_regexr   r   suitable
url_result_smuggle_referrerr   r   _request_webpager   statusr   r   intr   r   r   extract_commentsraise_no_formatslenplaylist_result)r$   rk   r  postr   infoseen_media_idsentriesidxr   include_typemedia_attributesr   rU   r   r   r   	embed_urlvimeo_id
vimeo_hashentryurlhr  r  r   r   r   r   can_view_postcommentss                                 r%   _real_extractPatreonIE._real_extractc  s#   >>#&~~XJ!M !B /$+$;18T2  	 &\,/
J		{+%
|4!#7+L(=/:'+7-}=)
  #D:7M*NOG"6?Lw&#/,9O#P#VTV *+;+?+?+OP"#3#7#7
#CD ))9)=)=l)KL
C+;$;
@V1HCNN!)
!C51"$.+%12B[SVRWDX%Y$   ,GdSE]CC8C"&&x0 D 'L!-{SE B$(;-#8%15;-$H3   ++GlGcU5STT8TOOFB/66x@ U +L ,gu=#'+"7$0%+#G/;^k].[	3  E PR %Z'5;-1PQQ9Q#'#5#55y&, $6 $@ Hj ,5hZ@**+-	 	**--i9K9KI9VWT ( 3 It?Q?Q(RS,,8%94CUCUUJ -  t 
 $$Y//4;;#3ENN5) kD6-BC	==(D%C&&"$U+  
 M)--2F$G6$Q%)%M%Me$h8J8J &N &L" A(,(:(:An% !"&!*  
 (	J}3UVVxV""8,$Z?&PT[_`a$%2
 H
 )44X>>u>u%""8, %Z1HITXXo66,,X6H=E1!!"GRZei!j!!"IT\gk!l\QKK
# T" !'']T]T\]]T
#+ r(   c              #   R  ^#    S nSnSSSSSSSS	S
.n[         R                  " S5       H  nUR                  U(       a  SU0O0 5        U R                  SU S3XSU 3S9nS n[	        USS 45       H  nUS-  n[	        US5      m0 [	        US[
        14SS[        14SS[        14SSSS[        S5      14[        1[        4SS[        14S.5      E[	        USU4S jSS [        14S![        14S".4S#S$9ES%T0Ev   M     U[	        US&5      :  a  [	        US'5      nUb  M    g    g 7f)(Nr   2   a`  parent.commenter.campaign,parent.post.user,parent.post.campaign.creator,parent.replies.parent,parent.replies.commenter.campaign,parent.replies.post.user,parent.replies.post.campaign.creator,commenter.campaign,post.user,post.campaign.creator,replies.parent,replies.commenter.campaign,replies.post.user,replies.post.campaign.creator,on_behalf_of_campaignzbody,created,is_by_creatorzimage_url,full_name,urlzimage_tiny_url,namez-createdr+   r   )zpage[count]r   zfields[comment]r   zfilter[flair]sortr*   r   r   page[cursor]r   z	/commentszDownloading comments page r-   r,   )r   r   c                 *    US   S:H  =(       a    US   $ )Nr   commentrS   rF   r   s     r%   r   )PatreonIE._get_comments.<locals>.<lambda>  s     VWX^V_clVlVxqrswqxVxr(   )relationships	commenterr   rS   rS   r   bodycreatedr1  parentr   rootis_by_creator)rS   textr^   r5  author_is_uploaderr   c                 2   > US   T:H  =(       a    US   S:H  $ )NrS   r   r   rF   )r   r   	author_ids     r%   r   r0    s     4I1E1]!F)W]J]1]r(   r   	image_url)authorauthor_thumbnailFr5   r;  )metacount)r   rS   )	itertoolsr@  r8   rD   r   r   r
  r   r   r   boolr   )	r$   post_idcursorr@  r   pager<   r/  r;  s	           @r%   _get_commentsPatreonIE._get_comments  s     z;52 #-4	
 OOA&DMMf>62"E~~	+WKefjekIl & nH F'3GIx2yz
(2^_	"7#k]3!-vu =&2I%O#2HfteTZm_F]`c_dfi"j/;_tf.U-  #8"$]_k'2SE&:1<{m0Ln. %*	+   	 {( |H.?@@%h0BC~? 's   DD'"D'rF   N)rG   rH   rI   rJ   IE_NAME
_VALID_URLr  _TESTS_RETURN_TYPEr   r   r'  rG  rM   rF   r(   r%   rO   rO   B   s0   GdJ;1
(
5
 
 A	

 A
 6
 +
 
 :
 7
 #
 S
 C
 '
 B
  %c!
, <1#6+ C	
 & >
-
5
 '
 	

 +
 :
 A
 -
 ?+
 
 #
 J
 
 }
 U
  :!
" ##
$ 5$&)!%F #'!#!7
< !
?#H E 6 H1=#+%A%	
 &  I
*
5
 S
 9	

 #
 
 :
 ,
 ;
 A
 6
 
 \7+
 )
 :
  %c!
. G
*
5
 [
 ?	

 (
 9
 
 A
 S
 :
 ,
 %c
 #
 
 ;
  @!
$ &+0 H
*
5
 D
 #	

 
 
 ?
 ,
 &'
 :
 S
 %c
 >
 :
 )
  @!
. Hpx&%@$?#% +
" #F+DE+0 ISA&%G#F&)#% +
  &). 9%%+ &]A%@&)##
" !$'). D&A$$@#?&)  #%
unF^ L 	-M&PN`-r(   rO   c                      \ rS 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S.S S.S!S"S#S$S#S"S%S%S&S'S(\S	S).S*S+S,.S-S.S/S0S1S2S3S/S.S3S	S(S4.S5S.S6S7S8.S9S7S8.S:S7S8.S;S7S8.S<S7S8./
rS= rS> r	S?r
g@)APatreonCampaignIEi#  zpatreon:campaignz(?x)
        https?://(?:www\.)?patreon\.com/(?:
            (?:m|api/campaigns)/(?P<campaign_id>\d+)|
            (?:cw?/)?(?P<vanity>(?!creation[?/]|posts/|rss[?/])[\w-]+)
        )(?:/posts)?/?(?:$|[?#])z&https://www.patreon.com/dissonancepod/r[   rf   rh   zfre:(?s).*We produce a weekly news podcast focusing on stories that deal with skepticism and religion.*r   rb   r]   )rX   ri   rS   rY   rg   r{   rz   rj   ra   re   rZ   r\   D   )rk   rm   playlist_mincountz'https://www.patreon.com/m/4767637/postszNot Just Bikes4767637z$https://www.patreon.com/notjustbikesz]re:(?s).*Not Just Bikes started as a way to explain why we chose to live in the Netherlands.*Jason37306634)rX   rS   rg   ri   rY   rz   r{   re   rZ   ra   r\   G   z3https://www.patreon.com/api/campaigns/4243769/postszSecond Thought4243769z%https://www.patreon.com/secondthoughtz;re:(?s).*Second Thought is an educational YouTube channel.*z
JT Chapman32718287)rX   rj   rS   rg   ri   rY   rz   r{   re   rZ   ra   r\      zhttps://www.patreon.com/c/OgSog8504388OGSoGzHre:(?s)Hello and welcome to our Patreon page. We are Mari, Lasercorn, .+zhttps://www.patreon.com/OgSog72323575z
David Mosszre:https?://.+/.+)rS   rX   rY   r{   rg   ri   re   ra   rZ   r\   rj   rz   iK  zChannel removed)rk   rm   rP  rp   z,https://www.patreon.com/c/anythingelse/posts9631148zAnything Else?z$md5:b2f20eec4cb5520d9a4be4971f28add5zdan 13852412z$https://www.patreon.com/anythingelse)rS   rX   rY   rZ   ra   re   r{   rg   ri   rz   r\      z'https://www.patreon.com/cw/anythingelseTr   z%https://www.patreon.com/c/OgSog/postsz+https://www.patreon.com/dissonancepod/postsz!https://www.patreon.com/m/5932659z-https://www.patreon.com/api/campaigns/4243769c              #   F  #    S nSUSSSS.n[         R                  " S5       Hy  nUR                  U(       a  SU0O0 5        U R                  SXSU 3S	9n[	        US
5      n[	        US5       H%  nU R                  [        SU5      [        5      v   M'     Ub  My    g    g 7f)Nzpatreon_url,urlr   z-published_at)r   zfilter[campaign_id]zfilter[is_draft]r+  r   r   r,  postszDownloading posts page r-  )r?  
paginationcursorsnext)r   .r   patreon_urlr    )rB  r@  r8   rD   r   r  r   rO   )r$   campaign_idrE  r   rF  
posts_jsonpost_urls          r%   _entriesPatreonCampaignIE._entries  s     -#. '#-4
 OOA&DMMf>62"ESjkojpQqrJ!*.WXF(5_`oog.H(&SU^__ a ~ 's   BB!B!c                   ^	 U R                  U5      R                  SS5      u  nm	UcG  U R                  ST	T	SS.S9S   n[        UU	4S jS	[	        S
S91[
        [        [        S5      145      nSSSSS.nU R                  SU 3USSUS9=(       d    0 nUR                  S5      =(       d    0 n[        US5      n[        USS 40 [        SS9nSUUU R                  U5      [        [        US5      5      [        US5      [        [        US5      5      UU[        US5      [        UR                  S	5      5      [        US5      [        US5      [        US 5      (       a  S!OS"[        [        US#5      5      S$.$ )%Nrd  vanitysearch5)qz
page[size]r   r   c                    > US   S:H  =(       a6    US   S   R                  5       R                  STR                  5        35      $ )Nr   zcampaign-documentr   rk   /)lowerendswith)r   r   rj  s     r%   r   1PatreonCampaignIE._real_extract.<locals>.<lambda>  sH    QvY*==!L/RWBXB^B^B`BiBilmntnznzn|m}j~Br(   rS   	campaign_)startzcampaign IDr   r   zEname,summary,url,patron_count,creation_count,is_nsfw,avatar_photo_urlcreator)r   r   r   r   z
campaigns/zDownloading campaign infoF)r,   r.   r-   )r   r  r   c                     US   S:H  $ )Nr   r   rF   r   s     r%   r   rr    s    6f9Lr(   )r   expected_typer6   playlist)r   summary)r   rk   )r   r   )r   r   )r   creation_count)r   is_nsfw   r   )r   avatar_photo_url)_typerS   rX   r  rY   ri   rj   rg   r{   re   ra   rZ   r   rz   r\   )_match_valid_urlr   rD   r   r   filterr   r   r#   r   rg  r   r   r   r   )
r$   rk   rd  resultsr   campaign_responsecampaign_infochannel_name	user_inforj  s
            @r%   r'  PatreonCampaignIE._real_extract  s   "33C8>>}hWVnnXv!>n  G 'wxk23VS7=CYBZ1\ ]K
 .5+ g 	
 !NN&,E +      	
 *--f5;#M3IJ 
,LMdE;	
  !}}[1%l=B[&\]'7LM&1,}Nl2m&n%#(4IJ&y}}T':;$Y0KL*=:Z[+M;TUU[\$\-Ac%de
 	
r(   rF   N)rG   rH   rI   rJ   rI  rJ  r  rK  rg  r'  rM   rF   r(   r%   rN  rN  #  s|    G$J 83B E!5&)"C6,
  !$ 9%#A{'B%,
  " E%&)#BY'C$%,
 !!$ 1f#:;%$-&)
 !!#( >%A%B'#A-
 !!$ 9 7 = 3 ?CdFL,-
r(   rN  )"rK   rB  commonr   sproutvideor   vimeor   networking.exceptionsr   utilsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   utils.traversalr   r   r   r   r   r   rO   rN  rF   r(   r%   <module>r     s_      ! !  -     M B^ ^Bp
 p
r(   