
    Ği<R                        d dl Zd dlZd dlZd dlZd dlZddlmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZ dZ G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de	          ZdS )    N   )InfoExtractorSearchInfoExtractor   )ExtractorErrordetermine_extfloat_or_noneformat_fieldint_or_nonestr_or_nonetraverse_objtry_getunescapeHTMLunified_timestampurl_or_noneurlencode_postdataz8https://prod-api-v2.production.rokfin.com/api/v2/public/c                      e Zd ZdZdZdZi Zdddddd	d
dddddeedddddddddddddddeeddgdddi dd d!dd"d#d$dd%d&d'd(d)d*d+d,d-dd.d/d0d1d2d0d3d4d5d4d6d7d8d7d9eedgd:dd;i dd<d!dd"d=d$dd'd>d)d?d+d@d-dAd2dd9edBed3dCd8dDdEddFgd%dGdHdIddJi ddKd!dd"dLd$dMd'dNd)dOd+dPd-dAd2d0d9edBed3dQd5dRd6dSd8dSdEdgdgZdT Z	dU Z
dV ZdW ZdX Zi i fdYZdZS )[RokfinIEz@https?://(?:www\.)?rokfin\.com/(?P<id>(?P<type>post|stream)/\d+)rokfinzHhttps://secure.rokfin.com/auth/realms/rokfin-web/protocol/openid-connectzOhttps://www.rokfin.com/post/57548/Mitt-Romneys-Crazy-Solution-To-Climate-Changez
post/57548mp4z.Mitt Romney's Crazy Solution To Climate Changez*re:https://img\.production\.rokfin\.com/.+20211023itaz
Jimmy Dore65429z#https://rokfin.com/TheJimmyDoreShowpublicnot_live   )idexttitle	thumbnailupload_date	timestampchannel
channel_idchannel_urlavailabilitylive_statusdislike_count
like_countduration)url	info_dictzJhttps://rokfin.com/post/223/Julian-Assange-Arrested-Streaming-In-Real-Timezpost/223z/Julian Assange Arrested: Streaming In Real Time20190412id8\zRon Placone10zhttps://rokfin.com/RonPlaconezFreeThinkingMedia^zRealProgressives^)r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   tagszrhttps://www.rokfin.com/stream/10543/Its-A-Crazy-Mess-Regional-Director-Blows-Whistle-On-Pfizers-Vaccine-Trial-Datar   zstream/10543r   r   zR"It's A Crazy Mess" Regional Director Blows Whistle On Pfizer's Vaccine Trial Datar   descriptionz$md5:324ce2d3e3b62e659506409e458b9d8er"   TLAVagabondr#   53856r$   zhttps://rokfin.com/TLAVagabondr%   is_liveFwas_liveTr&   r!   iwarelease_timestamprelease_date20211102r    r'   )r(   r.   zihttps://rokfin.com/post/126703/Brave-New-World--Aldous-Huxley-DEEPDIVE--Chpts-13--Quite-Frankly--Jay-Dyerzpost/126703zQBrave New World - Aldous Huxley DEEPDIVE!  (Chpts 1-3) - Quite Frankly & Jay DyerzJay Dyer186881zhttps://rokfin.com/jaydyerpremium_onlyr(   id20230307r.   z	OpenMind^z$md5:cb04e32e68326c9b2b251b297bacff35r)   i  zJhttps://rokfin.com/stream/31332/The-Grayzone-live-on-Nordstream-blame-gamezstream/31332z*The Grayzone live on Nordstream blame gamez#re:https://image\.v\.rokfin\.com/.+zMax Blumenthal248902z https://rokfin.com/MaxBlumenthalidg  A20230310c                 8   |                      |                              dd          \  }}|                     t           | |          }t	          |                    d                    }|                    d          rdn|rdn	|dk    rdnd	}t          |d
dt                    }|dv r>t          | 	                    dt          |ddt                    |d           d d          }|rd
|igng i }	}t          |          dk    r |                     ||d|dk              \  }}	|swt          |dd          r|                     ddd           nM|rK|                     dt          j                            |                              d           |d           t          |dd           }
|pDt%          |                    d!          d"          p!t	          |                    d#                    }i d|d$|d%|	d&t'          t          |d&d'                    d(t%          t          |d)                    d*t          t          |d*d+                    d,t'          t          |d,d-                    d.t)          |                    d/                    d0t)          |                    d1                    d2t'          t          |d3d4                    d5t'          t          |d6d7                    d8|
rt          d9|
           nd d:|d;|d	k    r|nd d<t          |d=t&                    d>|d?|                     t-          t          |dd                    dddd@          dA|dBk    r|                     |          nd iS )CNr   typescheduledAt	stoppedAtr3   is_upcomingstreamr2   r   r*   )content
contentUrlexpected_type)Nz	fake.m3u8z%https?://[^/]+/([^/]+)/storyboard.vtttimelineUrl)rB   rF   defaultz#https://stream.v.rokfin.com/%s.m3u8m3u8F)fatallivepremiumPlanpremiumz-This video is only available to premium usersTcookies)methodz!Stream is offline; scheduled for z%Y-%m-%d %H:%M:%S)video_idexpected)	createdByusername)creatorrS   postedAtMillii  creationDateTimeformats	subtitlesr   rB   contentTitler)   )rB   r)   r   )rB   thumbnailUrl1r/   )rB   contentDescriptionr(   	likeCountr'   dislikeCountr"   )rR   name)rT   r_   r#   )rR   r   )rT   r   r$   https://rokfin.com/r!   r4   r.   )r.   .r   r&   r%   )needs_premium
is_privateneeds_subscription
needs_authis_unlisted__post_extractorpost)_match_valid_urlgroup!_download_json_using_access_token_API_BASE_URLr   getr   r   r
   _search_regexr   #_extract_m3u8_formats_and_subtitlesraise_login_requiredraise_no_formatsdtdatetimefromtimestampstrftimer	   r   r   _availabilityboolextract_comments)selfr*   rP   
video_typemetadata	scheduledr&   	video_urlrW   rX   uploaderr!   s               \C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/rokfin.py_real_extractzRokfinIE._real_extract   s{   #44S99??fMM*99]:VH:V:VX`aa%hll=&A&ABB	%-\\+%>%> 'zz-6 'MM)3x)?)?II& 	
 !52K[fggg	+++$T%7%78X}6P`klll$ &8 &( &( *./TV VI
 6?Fui011B##v--!%!I!I85{i7O "J "Q "QGY  	6HmY?? 6))*Y[_hq)rrrr 6%%|8Q8QR[8\8\8e8efy8z8z||% & 6 6 6  *CE\]] L-_0M0Mt"T"T L)(,,7I*J*JKK 	
(
w
 
 [hA\!]!]^^	

 l8=T&U&UVV
 \(KIe%f%fgg
 ;|HmMn'o'opp
 +hll;&?&?@@
 [n)E)EFF
 {<:OQd#e#eff
 +l8=PRc&d&dee
 H^;'GX'G'GHHHZ^
 
  kZ.G.GT
 L+AQ\]]]
  ;!
" D.."<-#S#STT UuZ_ / a a#
* :QWCWCW 5 5h ? ? ?]a+
 
 	
    c              #   h  K   d }t          j                    D ]}|                     t           d|dd           d| d|d|dz    t	          |d d           d	          pi }|                    d
          pg D ]}t          |                    d                    t          |                    d                    |                    d          |                    d          dt          |                    d                    t          |                    d                    t          |                    d                    dV  t          |                    d                    pd }|                    d          }|                    d
          r|s|r||k    rn|dur d S d S )Nzcomment?postId=   z&page=&size=50z!Downloading viewer comments page r    of %sFnoterJ   rB   commentr_   	commentIduserIdrootnumLikesnumDislikespostedAt)textauthorr   	author_idparentr(   r'   r!   
totalPageslast)		itertoolscount_download_jsonrk   r
   rl   r   r   r   )rx   rP   pages_totalpage_nraw_commentsr   is_lasts          r~   _get_commentszRokfinIE._get_comments   s     o'' 	 	F.. UU!""UUVUUUz6A:z|\gimowOxOxzz /   # !# 
 (++I66<" 
 
'I(>(>??)'++f*=*=>>!++k22!(X!6!6$"-gkk*.E.E"F"F%0]1K1K%L%L!27;;z3J3J!K!K	 	 	 	 	 	 &l&6&6|&D&DEEMK"&&v..G##I.. ' Va f{>R>R>Rgnv{g{g{+	 	r   c                     |                      | j         dd dd          }t          |                     d|d                    }|                      |d dd	d
t	          ||ddd                    }|                                 s7t          j        d|pd          rt          dd          t          d          | 	                    | j         dd ddddddddd          }| 
                    | j         dd d d!t	          t          j                            t          j                            |j                  j                                      d          d"         dd#dd$          %          | _        d S )&Nzw/auth?client_id=web&redirect_uri=https%3A%2F%2Frokfin.com%2Ffeed&response_mode=fragment&response_type=code&scope=openidzloading login pagezerror loading login page)r   errnotezr<form\s+[^>]+action\s*=\s*"(https://secure\.rokfin\.com/auth/realms/rokfin-web/login-actions/authenticate\?[^"]+)"zAuthentication URL)r_   z
logging inF  off )rS   password
rememberMecredentialId)r   rJ   expected_statusdataz((?i)(invalid\s+username\s+or\s+password)zinvalid username/passwordTrQ   zLogin failedz/authzgranting user authorizationz%user authorization rejected by Rokfinwebnonez(https://rokfin.com/silent-check-sso.htmlfragmentcodeopenid)	client_idpromptredirect_uriresponse_moderesponse_typescope)r   r   query/tokenzgetting access credentialsz error getting access credentialsr   authorization_code)r   r   
grant_typer   r   r   r   )_download_webpage
_AUTH_BASEr   rm   r   _authentication_activeresearchr   _request_webpager   urllibparseparse_qs	urldefragr*   r   rl   _access_mgmt_tokens)rx   rS   r   
login_pageauthentication_point_url	resp_bodyurlhs          r~   _perform_loginzRokfinIE._perform_login   s   ++  X  X  X+5O , Q Q
 $00B0B B1 1C 13 13 $4 $4  **$dU\_#x_dvx$y$yzz + | |	 **,, 	1yDioSUVV Q$%@4PPPP 000$$%%%t.8_"  J!+!'!  % 
 
 $(#6#6&&&-7Y#--fl.D.DTX.N.N.WXX\\]cddefg"2 J	% %   $7 $ $   r   c                 \    h dt          |                     | j                            z
   S )N>   KEYCLOAK_SESSIONKEYCLOAK_IDENTITYKEYCLOAK_SESSION_LEGACYKEYCLOAK_IDENTITY_LEGACY)set_get_cookiesr   rx   s    r~   r   zRokfinIE._authentication_active   s5    lll$##DO445567 	7r   c                 .    t          | j        d           S )Nc                 H    d                     | d         | d         g          S )N 
token_typeaccess_token)join)xs    r~   <lambda>z*RokfinIE._get_auth_token.<locals>.<lambda>  s"    388Q|_VWXfVgDh;i;i r   )r   r   r   s    r~   _get_auth_tokenzRokfinIE._get_auth_token  s    t/1i1ijjjr   c                 &   d|vsJ |                                 }|                                 }| j                            d          }|r||d<   |                     ||||d          \  }}|r|j        dk    s||                     ||          S |                     | j         d|ddt          d|dd	          
          | _        |                                 |d<   |d         t          dd          |                     ||||          S )Nauthorizationrefresh_tokeni  )headersr   r   r   zDUser authorization expired or canceled by Rokfin. Re-authorizing ...zFailed to re-authorizer   )r   r   r   r   zUser authorization lostTr   )r   r   )copyr   r   rl   _download_webpage_handlestatus_parse_jsonr   r   r   r   )	rx   url_or_requestrP   r   r   
auth_tokenr   json_stringr   s	            r~   rj   z*RokfinIE._download_json_using_access_token  s]   g----,,..))++
044_EE 	2'1GO$ 99HgUTW : Y YT 	;T[C//=3H##K:::#'#6#6&&&Way#-!."% %   $7 $ $  $(#7#7#9#9 ?#+ !:TJJJJ"">8WTY"ZZZr   N)__name__
__module____qualname__
_VALID_URL_NETRC_MACHINEr   r   int_TESTSr   r   r   r   r   rj    r   r~   r   r      s       TJN[J`FF%##!@$% 
 
 & \FF%#$:$% )+>?
 
 & D
.
5
 k
 F	

 A
 }
 '
 ;
 H
 u
 
 :
 
  
 J
  :!
" S#
$ )*'
 
 
 0 {
-
5
 h
 F	

 z
 (
 7
 N
 :
 S
 #
 
 :
 );7
 A
  !
 * \
.
5
 A
 ?	

 '
 (
 =
 N
 :
 S
 #
 
  
 J
 :
  )*!
 _cFJ7
 7
 7
r  2$ $ $L7 7 7
k k k SU\^ [ [ [ [ [ [r   r   c                   $    e Zd ZddddddZd ZdS )RokfinPlaylistBaseIErg   rA   stackvideoaudiorA   dead_streamr   c              #     K   |                     d          pg D ]}| j                             |                     d                    }|dk    r|                     d          n|                     d          }|r|sd|                     d| d| | d| t          t	          |d                    	          V  d S )
NrB   	mediaTyperg   r   mediaIdr`   /rY   )rP   video_title)rl   _TYPES
url_resultr   r   )rx   rz   rB   
media_typerP   s        r~   _get_video_dataz$RokfinPlaylistBaseIE._get_video_data)  s      ||I..4" 	o 	oG[)A)ABBJ,6&,@,@w{{4(((gkkR[F\F\H X //"O
"O"OX"O"O]gZtZtjrZtZt.9,wPk:l:l.m.m " o o o o o o	o 	or   N)r   r   r   r   r   r   r   r~   r   r      sC         Fo o o o or   r   c                   2    e Zd ZdZdZdZddddidgZd	 Zd
S )RokfinStackIEzrokfin:stackzRokfin Stacksz2https?://(?:www\.)?rokfin\.com/stack/(?P<id>[^/]+)zShttps://www.rokfin.com/stack/271/Tulsi-Gabbard-Portsmouth-Townhall-FULL--Feb-9-2020   r   271r*   playlist_countr+   c           	          |                      |          }|                     |                     |                     t           d| |                    |          S )Nzstack/)	_match_idplaylist_resultr   r   rk   )rx   r*   list_ids      r~   r   zRokfinStackIE._real_extract@  sf    ..%%##D$8$8= A A A A7KK%M %MNUW W 	Wr   N)r   r   r   IE_NAMEIE_DESCr   r   r   r   r   r~   r   r   4  sX        GGFJd%
  FW W W W Wr   r   c                   Z    e Zd ZdZdZdZdddddd	d
gZdddddddZd Zd Z	d Z
d ZdS )RokfinChannelIEzrokfin:channelzRokfin ChannelszXhttps?://(?:www\.)?rokfin\.com/(?!((feed/?)|(discover/?)|(channels/?))$)(?P<id>[^/]+)/?$z https://rokfin.com/TheConvoCouchd   z	12071-newzTheConvoCouch - Newz$md5:bb622b1bca100209b91cd685f7847f06)r   r   r/   )r*   playlist_mincountr+   poststopr   r   rA   r   )newr  videospodcastsstreamsstacksc                 .    |                                   d S N)_validate_extractor_argsr   s    r~   _real_initializez RokfinChannelIE._real_initialize]  s    %%'''''r   c                     |                      dd           }|Nt          |          dk    s|d         | j        vr.t          dd                    | j                   d          d S d S )Ntabr   r   z,Invalid extractor-arg "tab". Must be one of z, Tr   )_configuration_arglen_TABSr   r   )rx   requested_tabss     r~   r  z(RokfinChannelIE._validate_extractor_args`  s    00==%3~+>+>+B+BnUVFW_c_iFiFi !gPTPYPYZ^ZdPePe!g!grvwwww &%FiFir   c              #     K   d }t          j        d          D ]}|dv rt           d| d| d| d}nt           d| d| d| }|                     ||d	|d
z    t	          |d d                     }|                     |          E d {V  t          |                    d                    pd }|                    d          }|s|r||k    rn|dur d S d S )Nr   )r  r  user/r   z?page=r   zpost/search/z&size=50&creator=z Downloading video metadata page r   r   )r   r   r   F)r   r   rk   r   r
   r   r   rl   )	rx   r#   channel_namer  r   r   data_urlrz   r   s	            r~   _entrieszRokfinChannelIE._entriese  sP     oa(( 	 	F&&&+\\,\\\\F\\\+iiiiFii]gii**,o
oLQ\^bdlDmDmoo + q qH ++H555555555%hll<&@&@AAITKll6**G ; 6K///GSXDXDX	 	r   c           
         |                      |          }|                     t           d| |          }|d         }|                     ddg          d         }|                     |                     ||| j        |                   | d| | d|                                 t          |	                    d	                              S )
Nr  r   r  r  rG   r   -z - r/   )
r  r   rk   r  r  r   r  r   r   rl   )rx   r*   r  channel_infor#   r  s         r~   r   zRokfinChannelIE._real_extractv  s    ~~c****m+P+P,+P+PR^__!$'
%%eeW%==a@##MM*lDJsODD!!C!!l#D#Dsyy{{#D#DkR^RbRbcpRqRqFrFrt t 	tr   N)r   r   r   r  r  r   r   r  r  r  r   r   r   r   r~   r  r  F  s        GGlJ1 *A
 
  F  E( ( (x x x
  "t t t t tr   r  c                   `    e Zd ZdZdZdZddddddZdd	d
d
ddgZdZdZ	d Z
d Zd ZddZdS )RokfinSearchIEzrokfin:searchzRokfin Search
rkfnsearch))r   rawrg   )
content_idr'  rA   )r(  r   r   zrkfnsearch5:"zelenko"r   z	"zelenko")r   r   r   Nc                     | j                             |                                 dd          \  | _        | _        | j        s|                                  d S d S )NauthNNrG   )cacheloadie_key_db_url_db_access_key_get_db_access_credentialsr   s    r~   r  zRokfinSearchIE._real_initialize  sZ    ,0JOODKKMM6[gO,h,h)d)| 	.++-----	. 	.r   c              #     K   d }t          j        d          D ]}|                     ||d|ddd| t          |d d                     }t	          |dt
          	          }|                    d
          pg D ]g}| j                            t	          |d          d          \  }}t	          ||t
          	          }|r |r|                     d| d|           V  h|                    d
          s d S d S )Nr   r	  )sizecurrent)r   pagezDownloading page z of ~%s)r   r   )metar6  total_pagesrD   results)content_typer'  r,  r`   r   )r*   )	r   r   _run_search_queryr
   r   r   rl   r   r   )	rx   r   r8  page_numbersearch_resultsresultvideo_id_keyry   rP   s	            r~   _search_resultszRokfinSearchIE._search_results  sS     $?1-- 	 	K!33eck5Z5Z[[bbl;PTV_6`6`bb 4 d dN '~7VfqrrrK(,,Y77=2 ] ]+/;??<Pg;h;hjv+w+w(j'KXXX ]
 ]//.[J.[.[QY.[.[/\\\\\!%%i00 	 	r   c                    t          j        |                                          }t          d          D ]U} | j        | j        |f||dk    d| j        id|}|r|c S |                     d           |                     |           Vd S )Nr   r   r   )r   rJ   r   zUpdating access credentials)	jsondumpsencoderanger   r0  r1  write_debugr2  )rx   rP   r   kwargsattemptr=  s         r~   r;  z RokfinSearchIE._run_search_query  s    z$&&((Qxx 	6 	6G0T0hJ-1'Q,($*=>J JBHJ JN  &%%%%:;;;++H5555	6 	6r   c           
         d d d}|                      d|dd          }t          j        d|          D ]}|                      d| |dd	
          }|                    t          j        dd                    |                                           d|pd                     t          |                                          st          |d          d          | _	        d|d          | _
        | j                            |                                 d| j	        | j
        f            d S t          d          )N)
SEARCH_KEYENDPOINT_BASEzhttps://rokfin.com/discoverr   zDownloading home page)r   r   z/<script\b[^>]*\ssrc\s*=\s*"(/static/js/[^">]+)"zhttps://rokfin.comzDownloading JavaScript fileFr   zREACT_APP_(|z)\s*:\s*"([^"]+)"r   rK  z,/api/as/v1/engines/rokfin-search/search.jsonzBearer rJ  r+  z$Unable to extract access credentials)r   r   findallupdater   keysallvaluesr   r0  r1  r-  storer/  r   )rx   rP   	auth_datanotfound_err_pagejs_file_path
js_contents         r~   r2  z)RokfinSearchIE._get_db_access_credentials  sl   #'$??	 22)8SOf 3 h hJ'Y[lmm 	 	L//3\33XDain 0 p pJRZLsxx	(8(899LLLjN^\^` ` a a ay''))** &)O*D'r'r'rssDL"EIl,C"E"EDJT[[]]FT\4CV4WXXXFFCDDDr   r  )r   r   r   r  r  _SEARCH_KEYr   r   r0  r1  r  r@  r;  r2  r   r   r~   r%  r%    s        GGK((381 F ' 
 
  F GN. . .
   	6 	6 	6E E E E E Er   r%  )rr   rq   r   rB  r   urllib.parser   commonr   r   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   rk   r   r   r   r  r%  r   r   r~   <module>r[     s            				     6 6 6 6 6 6 6 6                            KC[ C[ C[ C[ C[} C[ C[ C[Lo o o o o= o o o(W W W W W( W W W$8t 8t 8t 8t 8t* 8t 8t 8tvFE FE FE FE FE( FE FE FE FE FEr   