
    iFC                         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JrJrJr  SSKJrJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      rg)    N   )InfoExtractor   )ExtractorErrorOnDemandPagedList
clean_htmldetermine_extfloat_or_noneformat_fieldint_or_nonejoin_nonemptyparse_iso8601url_or_noneurljoin)requiretraverse_objc                       \ rS rSrS rSrg)FloatplaneBaseIE   c                 	   U R                  U5      nU R                  U R                   S3USU0SSU R                  S9n[	        [        US5      5      (       d
  [        SSS	9e[        US
/U R                   S35      =(       d    S nU[        U S3[        US5      5      U R                  SS9S.[        USS[        14SS[        14SS[        14SS[        14S[        14S.5      En/ n[        US5       GHB  nUS   nUR                  S5      =(       d    Sn	U R                  U R                   S3USUS.SU	 S3U R                  S9n
U R                  U R                   SU	 3USU	 S3SU0S U R                  S!9n[        U
S"S#S$S%S&[        1[        [        S'5      145      n/ n[        U
S"S#S(S) 45       GH  n[        XS&   5      n[        US*[        145      n0 nS nU R                  b  U R                  XS U R                  U R                   [#        S+US,S-S.9[#        S/US,S-S.9S09nU(       d  M{  U R%                  S1US2S S39nU(       ae  U R'                  UUS U R                  U R                   [#        S+US4S-S.9[#        S/US4S-S.9S09nU(       a!  UR)                  5       R+                  5       US5'   UR-                  0 [        US6[        14S7SS8[.        14S7SS9[.        14S7SS:[        14S7S;S:[        14S7SS<S=[/        S>S?914S7S;S<S=[/        S>S?914S7S;S@[.        14S7SSA[0        14SB.	5      EU[3        UR5                  SC5      S#   SD5      UUU=(       d    S SE.E5        GM     0 n0 n[        USFSG 45       H~  nUR                  SH5      =(       d    SInS&USJ   0nUR                  SK5      (       a#  UR7                  U/ 5      R-                  U5        M]  UR7                  U/ 5      R-                  U5        M     UR-                  0 UESU0E[        US[        14SL[.        14SMSN[        14SO.5      EUUUSP.E5        GME     0 UEUUSQ.E[        US[        14SR[8        14SS[.        14ST[.        14SU[.        14SMSN[        14SV.5      ESWU R                   0En[;        U5      SX:  a  U R<                  " U40 UD6$ UR?                  US#   5        U$ )YNz/api/v3/content/postidzDownloading post datazUnable to download post data)querynoteerrnoteimpersonate)metadata)hasVideohasAudioz,Post does not contain a video or audio trackT)expected)creatorurlnamez/channel/%s/home/)channelr!   )needs_subscription)uploader_urlchannel_urlavailabilityr    titler#   releaseDate)uploaderuploader_idr#   
channel_idrelease_timestamp))videoAttachmentsaudioAttachments.typevideoz/api/v3/delivery/infoonDemand)scenarioentityIdzDownloading z stream data)r   r   r   z/api/v3/content/z	 metadataF)r   fatalr   groupsr   origins.urlzcdn base urlvariantsc                     US   $ )Nr8    _vs     H/app/mltbenv/lib/python3.13/site-packages/yt_dlp/extractor/floatplane.py<lambda>0FloatplaneBaseIE._real_extract.<locals>.<lambda>D   s    WXY^W_    nameDownloadingzm3u8 information delimzFailed to download)r5   r   headersr   r   z0#EXT-X-KEY:METHOD=AES-128,URI="(https?://[^"]+)"zHLS AES key URI)defaultzHLS AES keykeylabelmetawidthheightcodecaudiobitrateaveragei  )scalechannelCountfps)	format_noterM   rN   vcodecacodecvbrabraudio_channelsrU   z/chunk.m3u8mp4)r8   ext	format_idhls_media_playlist_datahls_aes
textTracksc                     [        US   5      $ )Nsrc)r   r<   s     r?   r@   rA   s   s    {[\]b[cOdrB   languageenrc   	generatedduration	thumbnailpath)r(   rg   rh   )formats	subtitlesautomatic_captions)r   
display_idtextlikesdislikescomments)r(   description
like_countdislike_countcomment_countrh   http_headersr   ) 	_match_id_download_json	_BASE_URL_IMPERSONATE_TARGETanyr   r   r   r   _availabilitystrr   getr   r   _download_webpage_HEADERSr   _search_regex_request_webpagereadhexappendr   r
   r	   	partition
setdefaultr   lenplaylist_resultupdate)selfr8   post_id	post_datar%   common_infoitemsmediamedia_id	media_typstreamr   cdn_base_urlrj   variant
format_urlr^   r`   	m3u8_datakey_urlurlhrk   rl   sub_datasub_lang	sub_entry	post_infos                              r?   _real_extractFloatplaneBaseIE._real_extract   s   ..%''~~23WT7O(2P00 ( 2	
 <	+QRSS !OZ^__#./DNN3CCS1TV ^Y] 	 )"l^1#5|IOe7fg ..$.G
 9&#7 )4#7%w6($6&3m_%E' 	
 !)-\]ET{H		&)4WI((>>""78(#-8D#I;l; 44	 ) 6F **>>""29+>yk3D(;K)A)A + CH
 (!YU[M3Q_I`Ha1c dL G'1jJ_0`a$\5>B
(6C5/B	 	 ++7 $ 6 6"EtG_G_imiviv*=)EW_bc -.BIOail m !7 !oI % "00K!#4d 1 DG #44#XUH`H`jnjwjw!.}i^a!b$12F	S`hk$l  5  n  -1YY[__->GEN  "7(/#'7"('7[M!J#)7H{m"L#)7GcU"C#)7GcU"C &IZ^H_G`a &IZ^H_G`a+17N[M*Z &H
- 
  &()=)=m)LQ)OQVW!*/8&$!  5 bZ I!#(LBd3ef#<<
3;t"HUO4	<<,,&11(B?FFyQ((26==iH g LL h x%u-!+k] ;"-v}!E*  #&&8 U ^n

!
 9!C5) &5&6",{m!<",{m!<)6K=A' 	
 DMM
	 u:>'';;;q"rB   r;   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r;   rB   r?   r   r      s    FrB   r   c                      \ rS rSrSrSrSr\\ S3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).ES*S+0S,.S-0 SS._SS/_SS0_SS_S\_S\_S\_SS1_SS2_SS_SS _S!S"_S#S3_S%S4_S5S6_S7S(_S8S9.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%SA_S5SB_S7S(_S8S9.SC0 SSD_S
S_SSE_SSF_SSG_SS_SSH_SSI_SSJ_S\_S\_S\_SS_SS _S!S"_S#SK_S%SL_SMS(S).ES*S+0S,.SN0 SSO_SSP_SSO_S\_SSQ_SSR_S7S(_SSS_S!ST_S5SU_S\_SSV_S%SW_SSX_S\_S#SY_SSZ_S8S[S\SSZSQS]SWS^S(SRS_SYSSSUSTS`.0S[SaSbSZSQScSWS(SRSdSYSSSUSTSe.0/SfS*S+0Sg./r	Sh r
Sirg)jFloatplaneIE   z<https?://(?:(?:www|beta)\.)?floatplane\.com/post/(?P<id>\w+)https://www.floatplane.comNr"   )OriginRefererz*https://www.floatplane.com/post/2Yf3UedF7Cr   
yuleLogLTTr]   r\   rm   
2Yf3UedF7Cr(   z;8K Yule Log Fireplace with Crackling Fire Sounds - 10 Hoursrr   z$md5:adf2970e0de1c5e3df447818bb0309f6rh   zre:^https?://.*\.jpe?g$rg   iÌ  ru   rs   rt   release_date20191206r-   i(]r*   LinusTechTipsr+   59f94c0bdd241b70349eb72br%   z5https://www.floatplane.com/channel/linustechtips/homer#   zLinus Tech Tipsr,   63fe42c309e691e4e36de93dz:https://www.floatplane.com/channel/linustechtips/home/mainsubscriber_only)r&   r'   skip_downloadm3u8)r8   	info_dictparamsz*https://www.floatplane.com/post/j2jqG3JmgJ
j2jqG3JmgJz5TJM: Does Anyone Care About Avatar: The Way of Water?z$md5:00bf17dc5733e4031e99b7fd6489f274i|ic20221224zThey're Just Movies64135f82fc76ab7f9fbdc876r&   z:https://www.floatplane.com/channel/linustechtips/home/tajmr'   r   )r8   r   playlist_countz*https://www.floatplane.com/post/3tK2tInhoN
3tK2tInhoNz<Extras - How Linus Communicates with Editors (Compensator 4)z$md5:83cd40aae1ce124df33769600c80ca5bi\e20231121zFP Exclusives6413623f5b12cca228a28e78zAhttps://www.floatplane.com/channel/linustechtips/home/fpexclusivez+https://beta.floatplane.com/post/d870PEFXS1
bg9SuYKEww
d870PEFXS1zALCS Drama, TLOU 2 Remaster, Destiny 2 Player Count Drops, + More!z$md5:80d612dcabf41b17487afcbe303ec57din]e20231122i  
GameLinked649dbade3540dbc3945eeda7z@https://www.floatplane.com/channel/linustechtips/home/gamelinkedz*https://www.floatplane.com/post/65B5PNoBtf
65B5PNoBtfzTI recorded the inbuilt demo mode for your 90's enjoyment, thanks for being Floaties!igezThe Trash Network61bc20c9a131fb692bf2a513z7https://www.floatplane.com/channel/TheTrashNetwork/homezDhttps://www.floatplane.com/channel/TheTrashNetwork/home/thedrumthingzThe $50 electronic drum kit.64424fe73cd58cbcf8d8e131z\https://pbs.floatplane.com/blogPost_thumbnails/65B5PNoBtf/725555379422705_1701247052743.jpegzThe Drum Thing20231129r   
ISPJjexylSz!The $50 electronic drum kit. .movzYhttps://pbs.floatplane.com/video_thumbnails/ISPJjexylS/335202812134041_1701249383392.jpegin  )r   r]   r   r-   r(   r,   rh   r'   r*   rg   r#   r+   r&   r%   
qKfxu6fEpuaaczRoland TD-7 Demo.m4ar   )r   r]   r   r-   r(   r,   r'   r*   rg   r#   r+   r&   r%   z*requires subscription: "The Trash Network")r8   r   r   playlistskipr   c                     U R                  U R                  5      R                  S5      (       d  U R                  5         g g )Nz	sails.sid)_get_cookiesry   r~   raise_login_required)r   s    r?   _real_initializeFloatplaneIE._real_initialize<  s4      044[AA%%' BrB   r;   )r   r   r   r   
_VALID_URLry   rz   r   int_TESTSr   r   r;   rB   r?   r   r      s7   PJ,I[?H
 <
,
5
 ,
 R	

 A
 3
 
 S
 #
 S
 J
  
 
 5
 S
  (!
" 4#
$ X-'
* #F+/2 <
,
L
 A
 3	

 S
 #
 S
  
 J
 
 5
 S
 ,
 4
 W
  -!
$ ), <
,
S
 A
 3	

 S
 #
 S
  
 J
 
 5
 S
 
 4
 ^
  -!
$ ), =
,
5
 ,
 X	

 A
 3
  
 J
 
 #
 S
 S
 
 5
 S
  |!
" 4#
$ ^-'
* #F+/2 <
,
r
 ,
 #	

  
 +
 -
 5
 U
 a
 S
 3
 4
 w
 S
  '!
" J#
& " *%/<8x 1/+9e Y
$ " *%//8 1/+9e Y
#!D ="F+s:uTFl(rB   r   c                   $    \ rS rSrSrS rS rSrg)FloatplaneChannelBaseIEiA  z8Subclasses must set _RESULT_IE, _BASE_URL and _PAGE_SIZEc              #   ~  #    UU R                   X@R                   -  S.nU(       a  X5S'   U R                  U R                   S3UUSUS-    3S9nU=(       d    /  H^  nU R                  U R                   SUS    3U R                  US   UR                  S	5      [        UR                  S
5      5      S9v   M`     g 7f)N)r   limit
fetchAfterr#   z/api/v3/content/creatorzDownloading page r   )r   r   z/post/r   r(   r)   )r   r(   r-   )
_PAGE_SIZErx   ry   
url_result
_RESULT_IEr~   r   )r   rm   
creator_idr,   pager   	page_dataposts           r?   _fetch_page#FloatplaneChannelBaseIE._fetch_pageD  s     __0

 ))''~~56
 1$(< ( >	 OOD//>>"&d5DJdhhw6G"/0G"H " J J $s   B;B=c                 &  ^ U R                  U5      R                  SS5      u  nm[        UTSS9nU R                  U R                   S3USU0S9S   n[        US	U4S
 j4SS9=(       d    0 nU R                  [        [        R                  " U R                  X4S   UR                  S5      5      U R                  5      X5R                  S5      =(       d    UR                  S5      UR                  S5      =(       d    UR                  S5      S9$ )Nr   r#   r"   rF   z/api/v3/creator/namedzcreatorURL[0])r   r   channelsc                    > US   T:H  $ )Nr!   r;   )r=   r>   r#   s     r?   r@   7FloatplaneChannelBaseIE._real_extract.<locals>.<lambda>^  s    AiLG4KrB   F)get_allr(   about)r(   rr   )_match_valid_urlgroupr   rx   ry   r   r   r   	functoolspartialr   r~   r   )r   r8   r    rm   creator_datachannel_datar#   s         @r?   r   %FloatplaneChannelBaseIE._real_extractU  s&   005;;D)L"7G3?
**~~348 + ::;= $:'KLV[] c`b 	 ##$5i6G6Gjt*<l>N>Nt>T7VW[WfWf%h..w7T<;K;KG;T$((1N\5E5Eg5N $ P 	PrB   r;   N)r   r   r   r   __doc__r   r   r   r;   rB   r?   r   r   A  s    BJ"PrB   r   c                   ^    \ rS rSrSrSrSr\rSSSSS	.S
S.SSSSS	.SS.SSSSS	.SS./r	Sr
g)FloatplaneChannelIEif  z`https?://(?:(?:www|beta)\.)?floatplane\.com/channel/(?P<id>[\w-]+)/home(?:/(?P<channel>[\w-]+))?r   r   z=https://www.floatplane.com/channel/linustechtips/home/ltxexpozlinustechtips/ltxexpozLTX Expoz$md5:9819002f9ebe7fd7c75a3a1d38a59149)r   r(   rr   3   )r8   r   playlist_mincountz1https://www.floatplane.com/channel/ShankMods/home	ShankModsz
Shank Modsz$md5:6dff1bb07cad8e5448e04daad9be1b30   z5https://beta.floatplane.com/channel/bitwit_ultra/homebitwit_ultrazBitwit Ultraz$md5:1452f280bb45962976d4789200f676dd   r;   N)r   r   r   r   r   ry   r   r   r   r   r   r;   rB   r?   r   r   f  st    tJ,IJJN)A

   C!A

   G #A

 !!FrB   r   )r   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r   utils.traversalr   r   r   r   r   r   r;   rB   r?   <module>r      s_     !    4G} GT`(# `(F"Pm "PJ1 rB   