
    VGhB                    \   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 ddlm	Z	m
Z
 ddlmZ ddl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mZmZmZmZm Z m!Z! dd	l"m#Z#m$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%e	      Z) G d de%      Z* G d de%      Z+y)    N   )InfoExtractor)PeriscopeBaseIEPeriscopeIE   )js_number_to_string)	HTTPError)ExtractorErrordict_getfilter_dictfloat_or_noneformat_fieldint_or_nonejoin_nonemptymake_archive_id
remove_endstr_or_nonestrip_or_nonetruncate_stringtry_calltry_getunified_timestampupdate_url_queryurl_or_none
xpath_text)requiretraverse_objc                      e Zd ZdZdZdZdZdZdZdZ	 e
j                  di d	d
idii ddddddddddddddddddddddddddddd dd!dd"di d#dd$dd%dd&dd'dd(dd)dd*dd+d,d-dd.dd/d,d0dd1dd2dd3dd4d,dddd,dddd5d6d78      j                         Zd9 Zd: Zed;        Zed<        Zej*                  d=        Zd> ZdFd@Zi dfdAZdB Zi d?fdCZdD ZdE Zy)GTwitterBaseIEtwitterzhttps://api.x.com/1.1/zhttps://x.com/i/api/graphql/zzhttps?://(?:(?:www|m(?:obile)?)\.)?(?:(?:twitter|x)\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\.onion)/zhAAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnAzpAAAAAAAAAAAAAAAAAAAAAIK1zgAAAAAA2tUWuhGZ2JceoId5GwYWU5GspY4%3DUq7gzFoCZs1QfwGoVdvSac3IniczZEYXIcDyumCauIXpcAPorENflow_contextlocationunknown)debug_overridesstart_locationaction_listr   alert_dialogr   app_download_ctacheck_logged_in_accountchoice_selection   $contacts_live_sync_permission_promptr   cta   email_verificationend_flow
enter_dateenter_emailenter_password   enter_phoneenter_recaptcha
enter_textenter_usernamegeneric_urtin_app_notificationinterest_pickerjs_instrumentationmenu_dialognotifications_permission_promptopen_accountopen_home_timeline	open_linkphone_verification   privacy_optionssecurity_keyselect_avatarselect_bannersettings_list	show_codesign_upsign_up_review)tweet_selection_urtupdate_usersupload_mediauser_recommendations_listuser_recommendations_urtwait_spinner	web_modal)input_flow_datasubtask_versions,:
separatorsc                    |j                  d      }|sg i fS d|v rj| j                  ||dddd      \  }}t        |d       D ]<  }t        j                  d	|d
         x}st        |j                  d      d      |d<   > ||fS t        t        |d      d      xs d }|t        d|      |d}| j                  ||       |gi fS )Nurlz.m3u8mp4m3u8_nativehlsF)m3u8_idfatalc                 <    |d   dk(  xr |j                  d      d u S )Nvcodecnonetbr)get)_vs     a/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/twitter.py<lambda>z8TwitterBaseIE._extract_variant_formats.<locals>.<lambda>i   s#    Qx[F5J5cquuUZ|_cOc     z hls-[Aa]udio-(?P<bitrate>\d{4,})	format_idbitrate  rd   )rl   bit_ratehttp)r[   rk   rd   )
re   #_extract_m3u8_formats_and_subtitlesr   rematchr   groupr   r   _search_dimensions_in_video_url)	selfvariantvideo_idvariant_urlfmtssubsfmobjrd   s	            rh   _extract_variant_formatsz&TwitterBaseIE._extract_variant_formatsa   s    kk%(r6M#AAXumU B ,JD$ "$(cd H88$G;XX4X*4::i+@$GAeHH :hw0GH$OWSWC"*637A
 00K@37Nrj   c                 `   t        |      }|sg i fS | j                  ||      }g }i }g }|j                  d      D ]  }t        j                  j                  |j                  d         |j                  d<   |j                  |j                  d          | j                  |j                  |      \  }}	|j                  |       | j                  ||	      } t        t        |d            }
|
|vr:| j                  d|
i|      \  }}	|j                  |       | j                  ||	      }||fS )Nz:.//{http://twitter.com/schema/videoVMapV2.xsd}videoVariantr[   z.//MediaFile)r   _download_xmlfindallurllibparseunquoteattribappendr}   extend_merge_subtitlesr   r   )ru   vmap_urlrw   	vmap_dataformats	subtitlesurlsvideo_variantry   rz   	video_urls              rh   _extract_formats_from_vmap_urlz,TwitterBaseIE._extract_formats_from_vmap_urlw   s4   x(r6M&&x:		&../kl 	?M*0,,*>*>$$U++-M  'KK,,U3466$$h0JD$NN4 --i>I	? "*Y"GH	D 66y7I8TJD$NN4 --i>I	!!rj   c                     t        j                  d|      }|rE| j                  t        |j	                  d            t        |j	                  d            d       y y )Nz /(?P<width>\d+)x(?P<height>\d+)/widthheightr   r   )rq   searchupdateintrs   )a_formatr   ms      rh   rt   z-TwitterBaseIE._search_dimensions_in_video_url   sN    II99EOOQWWW-.aggh/0  rj   c                 h    t        | j                  | j                        j                  d            S )N
auth_token)bool_get_cookies	_API_BASEre   ru   s    rh   is_logged_inzTwitterBaseIE.is_logged_in   s'    D%%dnn599,GHHrj   c                 2    | j                  ddgd      d   S )NapigraphqlTwitter)ie_keyr   )_configuration_argr   s    rh   _selected_apizTwitterBaseIE._selected_api   s!    &&uyk)&LQOOrj   c                     t        | j                  | j                   d|dd| j                  |xr | j                  dk(              dt
        hf      }|st        d      |S )	Nzguest/activate.jsonzDownloading guest tokenrj   legacyr   )dataheadersguest_tokenzCould not retrieve guest token)r   _download_jsonr   _set_base_headersr   strr
   )ru   
display_idr   s      rh   _fetch_guest_tokenz TwitterBaseIE._fetch_guest_token   s|    "4#6#6~~12J@Y`c***2_ASASW_A_*` $7 $b SE"$  !ABBrj   Fc                      |r j                   s j                  n j                  }t        d| t	         fd      d      S )NzBearer c                  T     j                   j                        d   j                  S )Nct0)r   r   valuer   s   rh   ri   z1TwitterBaseIE._set_base_headers.<locals>.<lambda>   s!    T->->t~~-Nu-U-[-[ rj   )Authorizationzx-csrf-token)r   _LEGACY_AUTH_AUTHr   r   )ru   r   bearer_tokens   `  rh   r   zTwitterBaseIE._set_base_headers   sF    ,24;L;Lt((RVR\R\&|n5$%[\
  	rj   c           	      .   | j                  | j                   dd ||||d      }t        |dddt        hf      }|rt	        d| d	      t        |d
      dk7  rt	        d      t        |dddt        hfd      }|st	        d      |d   | _        |S )Nzonboarding/task.json  )r   queryr   expected_statuserrorsr   messagez Login failed, Twitter API says: TexpectedstatussuccesszLogin was unsuccessfulsubtasks.
subtask_idFget_allz-Twitter API did not return next login subtask
flow_token)r   r   r   r   r
   _flow_token)ru   noter   r   r   responseerrorsubtasks           rh   _call_login_apizTwitterBaseIE._call_login_api   s    &&~~23T45tS ' J X!Y'FG #CE7!KVZ[[(H-: !9::z3se<eM !PQQ#L1rj   c                 J     j                   ry  j                  d       }i  j                         d|ddddd} fd}d } j                  d	|d
di j                        } j                   s|dk(  r" j                  d| ||dddd            }nn|dk(  r* j                  d| ||ddd|iidgddd            }n?|dk(  r2 j                  d| | || j                  d                        }n|dk(  r! j                  d | |||dd!d"            }n|d#k(  r  j                  d$| ||d%d&id'            }n|d(k(  r1 j                  d)| | || j                  d*                        }n|d+k(  r1 j                  d,| | || j                  d-                        }nQ|d.k(  r j                  d/d01       n8|d2k(  r j                  d3d01       n|d4k(  rt        d5      t        d6| d7       j                   s j                          y )8Nzapplication/jsonenyeszhttps://x.com/zhttps://x.com)zcontent-typex-guest-tokenx-twitter-client-languagex-twitter-active-userRefererOriginc                  h    t        j                  j                  | dd      j                         S )N)r   subtask_inputsrU   rX   )jsondumpsr   encode)r   ru   s    rh   build_login_jsonz6TwitterBaseIE._perform_login.<locals>.build_login_json   s3    ::".."0 %& '-fh/rj   c                     | |dddS )N	next_link)textlink)r   r7    )r   r   s     rh   
input_dictz0TwitterBaseIE._perform_login.<locals>.input_dict   s    ( ' rj   zDownloading flow token	flow_namelogin)r   r   LoginJsInstrumentationSubtaskz&Submitting JS instrumentation responsez{}r   )r   r   )r   r<   )r   LoginEnterUserIdentifierSSOzSubmitting usernameuser_identifier	text_dataresult)keyresponse_data)setting_responsesr   )r   rH   $LoginEnterAlternateIdentifierSubtaskzSubmitting alternate identifierzFone of username, phone number or email that was not used as --usernameLoginEnterPasswordzSubmitting password)passwordr   )r   r3   AccountDuplicationCheckz$Submitting account duplication checkr   AccountDuplicationCheck_false)r   r)   LoginTwoFactorAuthChallengezSubmitting 2FA tokenztwo-factor authentication token	LoginAcidzSubmitting confirmation codez-confirmation code sent to your email or phoneArkoseLoginz3Twitter is requiring captcha for this login attemptcookies)methodDenyLoginSubtaskz1Twitter rejected this login attempt as suspiciousLoginSuccessSubtaskz+Twitter API did not grant auth token cookiezUnrecognized subtask ID "")	r   r   r   r   _LOGIN_INIT_DATA_get_tfa_inforaise_login_requiredr
   report_login)ru   usernamer   r   r   r   r   next_subtasks   `       rh   _perform_loginzTwitterBaseIE._perform_login   s   --d3
$$&
.()-%*'%
	/	 ++$gk75KRVRgRg , i ##>>#33<gL\&2(,$//^ M  4   !>>#33)79I&2 (9$/(0(2&2"3 2 %0
*K :  4    !GG#335w)*\4CUCU`Db +c d  4  e
 !55#33)79I&2(0$/+K :  4   !::#33:GJZ&2"$C4\ K  4   !>>#33*G:J:$d&8&89Z&[L] ;^  4  _ ,#332GBRS]$d&8&89h&iTk Cl  4  m .))*_hq)r!33))*]fo)p!66$%RSS %'@a%PQQS ##V 	rj   c                    | j                  | xr | j                  dk(        }|j                  | j                  rddddnd| j	                  |      i       |rh dnd	h}| j                  |r| j                  n| j                  |z   ||||d
|rdnd d      }|j                  d      r`dj                  t        t        |dddt        hf                  }|rd|v r| j                  t        |d             t        d|xs d       |S )Nr   r   OAuth2Sessionr   r   )zx-twitter-auth-typer   r   r   >       r     r  zDownloading GraphQLz
legacy APIz JSON)r   r   r   r   r   , .r   znot authorized.zError(s) while querying API: Unknown error)r   r   r   r   r   r   _GRAPHQL_API_BASEr   re   joinsetr   r   r   r   r
   )	ru   pathrw   r   r   r   allowed_statusr   r   s	            rh   	_call_apizTwitterBaseIE._call_api0  s-   ((G0^@R@RV^@^(_  $3)-%*

 T44X>%
		 29-se$$'.T##DNNdJgUNW	,GuM % O
 ::hYYs<3	TWSX8Y#Z[\F*f4))*VS*AB #@AZ?@[!\]]rj   c                     t        d      )Nz-Method must be implemented to support GraphQL)NotImplementedErrorru   media_ids     rh   _build_graphql_queryz"TwitterBaseIE._build_graphql_queryG  s    !"QRRrj   c           	          | j                  |      }|j                         D ci c]  \  }}|t        j                  |d       }}}t	        | j                  |||d      d      S c c}}w )NrU   rX   T)r   r   r   )r  itemsr   r   r   r  )ru   endpointr  r   r   r   r   s          rh   _call_graphql_apizTwitterBaseIE._call_graphql_apiJ  sh    ((2QUQ[Q[Q]^:3djj:>>^^DNN8XUTXNY[abb _s   "A))F)__name__
__module____qualname___NETRC_MACHINEr   r
  _BASE_REGEXr   r   r   r   r   r   r   r}   r   staticmethodrt   propertyr   	functoolscached_propertyr   r   r   r   r   r  r  r  r   rj   rh   r   r   "   s   N(I6 PKvE FLK!tzz#%	#
*
1*
A*
 *
 &q	*

 *
 3A*
 1*
 !!*
 *
 !*
 1*
 a*
 1*
 q*
 !*
  a!*
" 1#*
$ "1%*
& q'*
( !!)*
* 1+*
, .q-*
. A/*
0 !!1*
2 3*
4 !!5*
6 q7*
8 A9*
: Q;*
< Q=*
> Q?*
@ A*
B qC*
D aE*
F $%)*()S*
4#h i4h %fhi l,".   I I P P 46D &l\ /1% .Scrj   r   c                      e Zd ZdZej
                  dz   Zdi dddddd	d
ddddddddddddddddedg dededddd d!d"d#d$i dd%dddd&d
d'dd(dd(dd)dd*dd+dddedededd,gd-d.d/d0gd1d2id3d4d5i dd6dddd7d
d8dd9dd:dd;d<d=d-d>d?ed@dAddBddCdDdEgdddedFdGedHedId:dJdKdLdMdN	dOgdPdQdRdSddTdUdVdWdXdYdZd!d[d\dJd]gZd^ Z	y_)`TwitterCardIEztwitter:cardz0i/(?:cards/tfw/v1|videos(?:/tweet)?)/(?P<id>\d+)z5https://twitter.com/i/cards/tfw/v1/560070183650213889id560070131976392705extr\   titlezwTwitter - You can now shoot, edit and share video on Twitter. Capture life's most moving moments from your perspective.descriptionz$md5:18d3e24bb4f6e5007487dd546e53bd96uploaderr   uploader_id	thumbnailre:^https?://.*\.jpgdurationg r>@	timestampiTupload_date20150127	age_limitr   comment_counttagsrepost_count
like_countr   560070183650213889uploader_urlzhttps://twitter.com/Twitterz$This content is no longer available.r[   	info_dictskipz5https://twitter.com/i/cards/tfw/v1/623160978427936768 7137eca597f72b9abbe61e5ae0161399623160978427936768zONASA - Fly over Pluto's icy Norgay Mountains and Sputnik Plain in this @NASA...z{Fly over Pluto's icy Norgay Mountains and Sputnik Plain in this @NASANewHorizons #PlutoFlyby video. https://t.co/BJYgOjSeGANASAiU20150720zhttps://twitter.com/NASA
PlutoFlyby
channel_id11348282_old_archive_idsztwitter 623160978427936768format[protocol=https]r[   md5r9  paramsz5https://twitter.com/i/cards/tfw/v1/654001591733886977 fb08fbd69595cbd8818f0b2f2a94474ddq4Oj5quskIzUbuntu 11.10 Overviewz$md5:a831e97fa384863d6e26ce48d1c4337620111013zOMG! UBUNTU!z
@omgubuntuchannel_urlz8https://www.youtube.com/channel/UCIiSwcm9xiFb3Y4wjzR41eQUCIiSwcm9xiFb3Y4wjzR41eQchannel_follower_countchapterszcount:8z"https://www.youtube.com/@omgubuntu   
categorieszFilm & Animationavailabilitypublicz4https://i.ytimg.com/vi/dq4Oj5quskI/maxresdefault.jpgzcount:12Tz	count:100iNnot_live)	r5  r+  
view_countr3  channelplayable_in_embedheatmapr.  live_statusYoutube)r[   rF  r9  add_iez5https://twitter.com/i/videos/tweet/705235433198714880 884812a2adc8aaf6fe52b15ccbfa3b88705235433198714880aBrent Yarina - Khalil Iverson's missed highlight dunk. And made highlight dunk. In one highlight.jKhalil Iverson's missed highlight dunk. And made highlight dunk. In one highlight. https://t.co/OrxcJ28BnsBrent YarinaBTNBrentYarinaLV20160303)r$  r&  r'  r(  r)  r*  r.  r/  )r[   rF  r9  r:  z/https://twitter.com/i/videos/752274308186120192r[   only_matchingc                 t    | j                  |      }| j                  d|z   t        j                         |      S )Nzhttps://twitter.com/statuses/)	_match_id
url_result	TwitterIEr   )ru   r[   	status_ids      rh   _real_extractzTwitterCardIE._real_extract  s7    NN3'	+i7	+ 	+rj   N
r  r  r  IE_NAMEr   r  
_VALID_URLr   _TESTSrj  r   rj   rh   r#  r#  P  sC   G**-``J K*u   S E	
 I y 4 F Z z Q     c  2!"  =#& ;-	
2 K5*u j    ]	
 F v Z z  : Q   c   j  #%A$B!$  !34+	
0 K5mu 0 E	
 z N | Y 8 )# I  D C 12 Q   !" #$ "S!")%)&')58 !k? 	
D K5*|  L*/')	 ;	
  E!	
AdFL+rj   r#  c                      e Zd ZdZej
                  dz   Zg di dddddd	d
ddddddddddddddddddddeded ed!g d"d#gd$d%d&d'd(d)d	d*d+d,d-d.d/d0d1gd2d3d4i dd5dd5dd	d
d6dd7dd8dd9dd:dd;dd<dd=deded ed!g d>d?d@dAdBgdCdDdEd	dFdGdHdIdJdKdLeeeg d@dMdNdOidPdQdRi ddSddTdd	d
dUddVddddWddXddYddZdd[dd\dd]deded ed!d^gd@d_gd$d`d&dai ddbddcdd	d
ddddeddfddgddhddiddjddkddldddeded ed!g d@dmgd$dCdndod	dpdqdrdsdtddudvgdwdxdyi ddzdd	d
d{dd|dd}dd~ddddddddddd?d@ddddd!g ded eedgddCdi dddddd	d
ddddddddddddddddddddeded ed!dgd@dgd$dNdOiddi dddddd	d
ddddddddddddddddddddeded ed!g d@dgd$dNdOiddi dddddd	d
ddddddddddddddddddeded eded!g d?d@idd&ddd	dddddgeddgddxdi dddddd	d
dddddddddddddddddddÓdeded ed!g d@dgd$dNdOiddi ddƓddǓdd	d
dȓddɓddʓdd˓dd̓dd͓ddΓddddϓddГdeded ed!g d@dgd$dNdOidddddddddddeeeg d@dܜddNdOidޜdi dddddd	d
ddddddddddddddddddddeded ed!dgd@dgd$dCdi dddddd	d
ededddeddddddddddd ededed?d"d!g dAdgidNdid%dQdddeg deedd@eddedd dddddeddeeeddd	g ed
d@dddddeddeddd
d@deeedgddddddddddddd d d!d"gdNd#id$d%dd&d'd(d)ed*d+eg d,d-d@d.d/ed0dd1i dd2dd	d
d3dddd(dd+dd*dd.deded!g d,dd4dd/dd&d edd)dd-d@d5gd$d6dOidd7i dd8dd9dd	d
d:dd;dd<dd=dd>dd?dd@ddAddBddCd?d"d!g d edeedDgdd%d&dEi ddFddGdd	d
dHddIddJd eddKddLdeddMdeddNd?d@ddOd!g ddPdQdRgdSd6dOidTdQdUi ddVddWdd	ddXddYddZdd[d?d@dd\dedd]d
d^ded ed!g dd_dd`dadbgdcdCddi ddeddfdd	d
dgddhddiddjddkd?d@d!g ddlddmddnddod ededpd&dqi ddrdd	ddsd
dtdduddvddwddxddyd?d@d!g ddzdd{dd|dd}d edeed~gddCdqi ddrdd	ddsd
dtdduddvddwddxddyd?d@d!g ddzdd{dd|dd}d ededAd~giddddgiiidddd	ddddddddeeddgddxdddddg ddddd"ddeeedd%dddi dddd	d
ddddddddddddddddddddd}d!dgded eded@dgd$dddi dddd	d
dddddddddddddddddddd!g deded edd}d@dgd$dddOdddOdddOdddOdddOdddOdddOdddOdddOdZ	 e
j                  d      ZdZd Zd ZdÄ ZdĄ Zdń ZdƄ Zy(  rh  r    zS(?:(?:i/web|[^/]+)/status|statuses)/(?P<id>\d+)(?:/(?:video|photo)/(?P<index>\d+))?z;https://twitter.com/freethenipple/status/643211948184596480r$  643211870443208704r   643211948184596480r&  r\   r'  z9FREE THE NIPPLE - FTN supporters on Hollywood Blvd today!r+  r,  r(  z>FTN supporters on Hollywood Blvd today! http://t.co/c7jHH749xJr@  	549749560r)  zFREE THE NIPPLEr*  freethenippler-  gMb)@r.  imUr/  20150913r7  z!https://twitter.com/freethenippler2  r4  r5  r3     ztwitter 643211948184596480)r1  rB  zRequires authenticationr8  z;https://twitter.com/giphz/status/657991469417025536/photo/1 f36dcd5fb92bf7057f155e7d927eeb42657991469417025536z=Gifs - tu vai cai tu vai cai tu nao eh capaz disso tu vai caizaGifs on Twitter: "tu vai cai tu vai cai tu nao eh capaz disso tu vai cai https://t.co/tM46VHFlO5"zre:^https?://.*\.pngGifsgiphz)r$  r&  r'  r(  r+  r)  r*  r   r   zAccount suspended)r[   rF  r9  expected_warningsr:  z6https://twitter.com/starwars/status/665052190608723968665052190608723968z5re:Star Wars.*A new beginning is coming December 18.*zA new beginning is coming December 18. Watch the official 60 second #TV spot for #StarWars: #TheForceAwakens. https://t.co/OkSqT2fjWJ20106852starwarszre:Star Wars.*iEV20151113zhttps://twitter.com/starwars)TVStarWarsTheForceAwakensr1  r   rB  ztwitter 665052190608723968r[   r9  z<https://twitter.com/BTNBrentYarina/status/705235433198714880r\  r]  r^  r`  r_  ra  rb  z"https://twitter.com/BTNBrentYarina)r$  r&  r'  r(  r*  r)  r.  r/  r7  r2  r4  r5  r3  r1  skip_downloadTzDead external link)r[   r9  rG  r:  z8https://twitter.com/jaydingeer/status/700207533655363584700207414000242688700207533655363584z4jaydin donte geer - BEAT PROD: @suhmeduh #DamndanielzQBEAT PROD: @suhmeduh  https://t.co/HBrQ4AfpvZ #Damndaniel https://t.co/byBooq2ejZ
1383165541zjaydin donte geer
jaydingeerg      >@ifV20160218zhttps://twitter.com/jaydingeer
Damndanielztwitter 700207533655363584zTweet has been deletedz<https://twitter.com/captainamerica/status/719944021058060289717462543795523584719944021058060289zZCaptain America - @King0fNerd Are you sure you made the right choice? Find out in theat...za@King0fNerd Are you sure you made the right choice? Find out in theaters. https://t.co/GpgYi9xMJI	701615052CaptainAmericazCaptain Americag\(\	@i3W20160412z"https://twitter.com/CaptainAmericaztwitter 719944021058060289z5https://twitter.com/OPP_HSD/status/7792106225715363841zqKVVlkqLaKBzqSgt Kerry Schmidt - Ontario Provincial Police - Road rage, mischief, assault, rollover and fire in one occurrence201609231PmKqpJdOJQoYz-Sgt Kerry Schmidt - Ontario Provincial PoliceiW)r$  r&  r'  r/  r*  r)  r.  r+  	PeriscopezBroadcast not found)r[   r9  rZ  r:  z9https://twitter.com/news_al3alm/status/852138619213144067852077943283097602u   عالم الأخبار - كلمة تاريخية بجلسة الجناسي التاريخية.. النائب خالد مؤنس العتيبي للمعا...u   كلمة تاريخية بجلسة الجناسي التاريخية.. النائب خالد مؤنس العتيبي للمعارضين : اتقوا الله .. الظلم ظلمات يوم القيامة   https://t.co/xg6OhpyKfN
2526757026u   عالم الأخبارnews_al3almgfffffVq@iX20170412852138619213144067zhttps://twitter.com/news_al3almztwitter 852138619213144067)r2  rB  z3https://twitter.com/i/web/status/910031516746514432910030238373089285910031516746514432u`   Préfet de Guadeloupe - [Direct] #Maria Le centre se trouve actuellement au sud de Basse-Terr...u   [Direct] #Maria Le centre se trouve actuellement au sud de Basse-Terre. Restez confinés. Réfugiez-vous dans la pièce la + sûre. https://t.co/mwx01Rs4lo
2319432498u   Préfet de Guadeloupe	Prefet971g=
ףpG@iY20170919zhttps://twitter.com/Prefet971Mariaztwitter 910031516746514432r[   r9  rG  z8https://twitter.com/LisPower1/status/100155162393880576310015514173400227851001551623938805763z re:.*?Shep is on a roll today.*?z$md5:37b9f2ff31720cef23b2bd42ee8a0f09	255036353z	Lis Power	LisPower1go[@iA[20180529zhttps://twitter.com/LisPower1ztwitter 1001551623938805763z5https://twitter.com/foobar/status/108779135775695668010877912728306073601087791357756956680zX - A new is coming.  Some of you got an opt-in to try it now. Check out the emoji button, quick keyboard shortcuts, upgraded trends, advanced search, and more. Let us know your thoughts!z$md5:6dfd341a3310fb97d80d2bf7145df976XgjtN@iDlG\20190122zhttps://twitter.com/XrT  zThis Tweet is unavailablez<https://twitter.com/ViviEducation/status/11365348651452866561vOGwqejwoWxBzjVivi - Vivi founder @lior_rauchy announcing our new student feedback tool live at @EduTECH_AU #EduTECH2019Vivi1eVjYOLGkGrQLEduTECH2019)r$  r&  r'  r)  r*  r+  r3  rT  TwitterBroadcastBroadcast no longer existsz@https://twitter.com/BrooklynNets/status/1349794411333394432?s=2013497747579699896341349794411333394432zXBrooklyn Nets - WATCH: Sean Marks' full media session after our acquisition of 8-time...z$md5:71ead15ec44cee55071547d6447c6a3e18552281zBrooklyn NetsBrooklynNetsg9vGt@i `20210114z https://twitter.com/BrooklynNetsztwitter 1349794411333394432z5https://twitter.com/oshtru/status/157785554040719769615778554479144099841577855540407197696u?   Oshtru - gm ✨️ now I can post image and video. nice update.z$md5:b9c3699335447391d11753ab21c70a7420221006	143077138Oshtruoshtruzhttps://twitter.com/oshtrugHz>@iD>cztwitter 1577855540407197696z<https://twitter.com/UltimaShadowX/status/15777192866590064641577719286659006464zUltima - TestzTest https://t.co/Y3KEZD7Dad	168922496UltimaUltimaShadowXz!https://twitter.com/UltimaShadowX20221005i5=c)r$  r'  r(  r@  r)  r*  r7  r/  r.  r2  r4  r5  r3  r1  rC   )r[   r9  playlist_countrG  z9https://twitter.com/MesoMax919/status/157556006351081062415755593367592632331575560063510810624zTMax Olson - Absolutely heartbreaking footage captured by our surge probe of catas...z$md5:95aea692fda36a12081b9629b02daa92
1094109584z	Max Olson
MesoMax919zhttps://twitter.com/MesoMax919gV-R5@iF5c20220929HurricaneIanztwitter 1575560063510810624z7https://twitter.com/Rizdraws/status/1575199173472927762157519916384700006815751991734729277621217167793541480450Rizdrawszhttps://twitter.com/Rizdraws20220928i+4czre:^https?://.+\.jpgztwitter 1575199173472927762zThe media could not be playedz;https://twitter.com/Srirachachau/status/1395079556562706435r   13950795565627064352153937820210519zHere it is! Finished my gothic western cartoon. Pretty proud of it. It's got some goofs and lots of splashy over the top violence, something for everyone, hope you like it https://t.co/fOsG5glUnwSrirachachauz https://twitter.com/SrirachachauiT`)r$  r'  r3  r@  r)  r5  r/  r1  r4  r(  r*  r2  r7  r.  )r[   playlist_mincountr9  z:https://twitter.com/DavidToons_/status/15783533803635015681578353380363501568
2195866214DavidToons_i@czhttps://twitter.com/DavidToons_zkChris sounds like Linda from Bob's Burgers, so as an animator: this had to be done. https://t.co/WgJauwIW1w20221007)r$  r'  r@  r*  r4  r5  r)  r.  r7  r(  r3  r2  r/  r1  z;https://twitter.com/primevideouk/status/15784011653389762581578401165338976258z$md5:659a6b517a034b4cee5d795381a2dc4119338359primevideoukiA@@cz https://twitter.com/primevideoukTheRingsOfPower)r$  r'  r(  r@  r)  r*  r.  r/  r1  r7  r2  r4  r5  r3  )r[   r  r9  z=https://twitter.com/MoniqueCamarra/status/15501019593775513601lPJqmBeeNAJbm4az9EuroFile@6 Ukraine Up-date-Draghi Defenestration-the Westzre:Monique Camarra.+?MoniqueCamarrawas_liveiqbz2re:Twitter Space participated by Sergej Sumlenny.+i[Kb20220721)r$  r&  r'  r)  r*  rX  release_timestampr(  r.  release_dater/  TwitterSpacesm3u8)r[   r9  rZ  rG  zBhttps://twitter.com/CTVJLaidlaw/status/1600649710662213632/video/11600649710662213632zZJocelyn Laidlaw - How Kirstie Alley's tragic death inspired me to share more about my c...g   5LAz$md5:591c19ce66fadc2359725d5cd0d1052cJocelynVLaidlaw80082014)colorectalcancercancerjourneyimnotaquitter20221208zJocelyn Laidlawz#https://twitter.com/JocelynVLaidlaw)r$  r'  r.  r(  r2  r*  r@  r4  r3  r/  r1  r)  r7  r5  zBhttps://twitter.com/CTVJLaidlaw/status/1600649710662213632/video/21600649511827013632z]Jocelyn Laidlaw - How Kirstie Alley's tragic death inspired me to share more about my c... #1gX9vY@ztwitter 1600649710662213632
noplaylistz6https://twitter.com/s2FAKER/status/162111770048241664016211175773544243211621117700482416640u$   뽀 - 아 최우제 이동속도 봐u6   아 최우제 이동속도 봐 https://t.co/dxu2U5vXXBg+8@1281839411068432384u   뽀s2FAKERzhttps://twitter.com/s2FAKER20230202g  @Azre:https?://pbs\.twimg\.com/.+ztwitter 1621117700482416640z@https://twitter.com/hlo_again/status/1599108751385972737/video/215991086437434736801599108751385972737u	   ۪ - 💋1347791436809441283zhttps://twitter.com/hlo_again	hlo_againzbhttps://pbs.twimg.com/ext_tw_video_thumb/1599108643743473680/pu/img/UG3xjov4rgg5sbYM.jpg?name=origgZd;#@20221203g  lAu   ۪u   💋 https://t.co/bTj9Qz7vQPztwitter 1599108751385972737)r(  rB  zTweet is limitedz<https://twitter.com/MunTheShinobi/status/160000957491996262516000093627597332481600009574919962625	211814412z!https://twitter.com/MunTheShinobiuJ   This is a genius ad by Apple. 🔥🔥🔥🔥🔥 https://t.co/cNsA0MoOmlzbhttps://pbs.twimg.com/ext_tw_video_thumb/1600009362759733248/pu/img/XVhFQivj75H_YxxV.jpg?name=origu   Boy Called Mün20221206uD   Boy Called Mün - This is a genius ad by Apple. 🔥🔥🔥🔥🔥MunTheShinobig$a@g   *Aztwitter 1600009574919962625)r.  rB  z9https://twitter.com/liberdalau/status/162373980387434906716232747944886599691623739803874349067zQJohnny Bullets - Me after going viral to over 30million people:    Whoopsie-daisyz$md5:b06864cd3dc2554821cc327f5348485azJohnny BulletsJohnnybull3tsz!https://twitter.com/Johnnybull3tsg7A` @g  A20230208z0re:https://pbs\.twimg\.com/ext_tw_video_thumb/.+zProtected tweetz=https://twitter.com/playstrumpcard/status/169542422070288800916949283378465382401695424220702888009zXBenny Johnson - Donald Trump driving through the urban, poor neighborhoods of Atlanta...z$md5:004f2d37fd58737724ec75bc7e67993815212187zBenny Johnsonbennyjohnsonz https://twitter.com/bennyjohnsong㥛 F@g  #:A20230825z1re:https://pbs\.twimg\.com/amplify_video_thumb/.+ztwitter 1695424220702888009extractor_argsr   r   z>https://twitter.com/JessicaDobsonWX/status/17311210632481753841rmxPMjLzAXKNz*WAVE Weather Now - Saturday 12/2/23 UpdatezJessica DobsonJessicaDobsonWXz#https://twitter.com/JessicaDobsonWXike20231203z re:https://[^/]+pscp\.tv/.+\.jpg)r$  r&  r'  r)  r*  r7  r.  r/  rX  r+  concurrent_view_countrT  z8https://twitter.com/BAKKOOONN/status/16962566598895659501696256659889565950z BAKOON - https://t.co/zom968d0a0zhttps://t.co/zom968d0a0
1263540390BAKOON	BAKKOOONNzhttps://twitter.com/BAKKOOONNg  @o@;A20230828)r$  r'  r(  r3  r@  r)  r*  r7  r1  r.  r/  r5  r2  r4  )r[   r  r9  r:  z>https://twitter.com/RobertKennedyJr/status/1724884212803834154 511377ff8dfa7545307084dca4dce3191724883339285544960z_Robert F. Kennedy Jr - A beautifully crafted short film by Mikki Willis about my independent...z$md5:9dc14f5b0f1311fc7caf591ae253a1641724884212803834154	337808606zRobert F. Kennedy JrRobertKennedyJrz#https://twitter.com/RobertKennedyJr20231115g  @IUAgT㥛Pu@	Kennedy24ztwitter 1724884212803834154)r[   rF  r9  z7https://x.com/historyinmemes/status/1790637656616943991 4549eda363fecfe37439c455923cba2c1790637589910654976z:Historic Vids - One of the most intense moments in historyzBOne of the most intense moments in history https://t.co/Zgzhvix8ES1790637656616943991zHistoric Vidshistoryinmemesz"https://twitter.com/historyinmemes85548198629052416020240515g   9Ag`".@ztwitter 1790637656616943991zmhttps://twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion/TwitterBlue/status/1484226494708662273rc  z5https://twitter.com/GunB1g/status/1163218564784017422z9https://twitter.com/poco_dandy/status/1047395834013384704z9https://twitter.com/poco_dandy/status/1150646424461176832z7https://twitter.com/qarev001/status/1348948114569269251z9https://twitter.com/CAF_Online/status/1349365911120195585z>https://twitter.com/SamsungMobileSA/status/1348609186725289984z<https://twitter.com/SouthamptonFC/status/1347577658079641604z_video/(\d+)/z*2ICDjqPd81tulZcYrtpTuQ/TweetResultByRestIdc           
      T   t        |ddt        hf      xs i }|j                  d      }|dvr| j                  d| |d       d|v r3t	        t        |dd	d	t
        hf      d
      }t        d|xs d d      |dk(  rO|j                  d      }|dk(  r| j                  d       n|dk(  r| j                  d       t        |xs dd      |dk(  rt        |dt        hf      xs i }|j                  di       }|j                  t        |dddddt        i              |j                  d      r"t        |ddd d!ddt        hf      xs i |d   d"<   t        |d#d$d%t        hf      D ci c]#  }|j                  d&      |j                  d'      % }	}|	r|	|d#   d$<   |S c c}w )(NtweetResultr   
__typename)TweetTweetWithVisibilityResultsTweetTombstoneTweetUnavailableNzUnknown typename: T	only_once	tombstoner   z. Learn morezTwitter API says: r	  r   r  reasonNsfwLoggedOutz"NSFW tweet requires authentication	Protectedz3You are not authorized to view this protected tweetzRequested tweet is unavailabler  tweetr   )coreuser_resultsr   r   )cardr   )quoted_status_resultr   r   )r   retweeted_status_resultr   r   )userr(  quoted_statusretweeted_status)expected_typedefaultr-  r*  r&  r'  r+  r(  binding_values.r   r   )	r   dictre   report_warningr   r   r
   r   r   )
ru   r   twidr   typenamecauser"  r   binding_valuer0  s
             rh   _graphql_to_legacyzTwitterIE._graphql_to_legacy  s	   d]Htf$EFL"::l+nn"4XJ ?QUV& |F[&&SVRW4XY[ijE #5e6N5O!P[_``++ZZ)F())*NO;&))*_` !K+KVZ[[55!&7TF*;<BFHb)l6@&I Y	,

 r+ 	, ::()1=f)8V^XW_bfagGi 2j 2pmo %&v.
 ".fv?OQTW[V\6]!^
 e$m&7&7&@@
 
 /=F6N+,
s   /(F%c                     |ddddi ddddddddddd	dd
ddddddddddddddddddddddddddidS )NF)tweetIdwithCommunityincludePromotedContent	withVoice/creator_subscriptions_tweet_preview_api_enabledT(tweetypie_unmention_optimization_enabled%responsive_web_edit_tweet_api_enabled:graphql_is_translatable_rweb_tweet_is_translatable_enabled"view_counts_everywhere_api_enabled'longform_notetweets_consumption_enabled8responsive_web_twitter_article_tweet_consumption_enabled tweet_awards_web_tipping_enabled)freedom_of_speech_not_reach_fetch_enabledstandardized_nudges_misinfoGtweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled*longform_notetweets_rich_text_read_enabled(longform_notetweets_inline_media_enabled0responsive_web_graphql_exclude_directive_enabledverified_phone_label_enabled+responsive_web_media_download_video_enabledAresponsive_web_graphql_skip_user_profile_image_extensions_enabled)2responsive_web_graphql_timeline_navigation_enabled$responsive_web_enhance_cards_enabledwithArticleRichContentState)	variablesfeaturesfieldTogglesr   r  s     rh   r  zTwitterIE._build_graphql_query  s    $!&*/"	A4:D 8 Md	
 5d :4 KE 3E <T .t Z[_ =d ;D CD /  >u!" TUZ#$ GK8=', .u9
 	
rj   c                     t         j                  t        j                  d            }t	        t        |      dz  t        j                  z  d      j                  |      S )Nz0.g  4&kC$   )	r   	maketransr1  fromkeysr   r   mathpi	translate)ru   r3  translations      rh   _generate_syndication_tokenz%TwitterIE._generate_syndication_token  sC    mmDMM$$78"CI$4#?DNN{[[rj   c           
      d   | j                  d|d       | j                  d|dddi|| j                  |      d	      }|st        d
      g }t	        |dddt
        hf      D ]C  }t	        |dddd| j                  j                  hdfd      xs ||d<   |j                  |       E d|i|d<   |S )Nz?Not all metadata or media is available via syndication endpointTr  z.https://cdn.syndication.twimg.com/tweet-resultzDownloading syndication JSON
User-Agent	Googlebot)r$  token)r   r   z1Syndication endpoint returned empty JSON response)Nquoted_tweetmediaDetails.
video_infovariantsr[   r   Fr   id_strmediaextended_entities)	r2  r   r\  r
   r   r1  _MEDIA_ID_REr   r   )ru   r3  r   rf  details        rh   _call_syndication_apizTwitterIE._call_syndication_api  s    Mt_c 	 	e$$<dDb!;/99$?8 %   !TUU"6,BNTWZ^Y_+`a 	!F+Fj#ut7H7H7O7O6PRS5U^c e  mhl 8LL 	! (/&6"#rj   c           
         | j                   dvrt        | j                   dd      	 | j                  s| j                   dk(  r-| j                  | j	                  | j
                  |      |      }n,| j                   dk(  r| j                  d| d|d	d
d
ddd      }| j                   dk(  r| j                  |      }t        dd t              xs i S # t        $ r`}t        |j                  t              r|j                  j                  dk7  r | j                  d       | j                  |      }Y d }~d }~ww xY w)N)r   r   syndicationz is not a valid API selectionTr   r   r   zstatuses/show/z.jsonzWeb-12r   r   extended)cards_platforminclude_cardsinclude_reply_countinclude_user_entities
tweet_modei  z9Rate-limit exceeded; falling back to syndication endpointrl  r-  r.  )r   r
   r   r7  r  _GRAPHQL_ENDPOINTr  
isinstancer5  r	   r   r2  rj  r   r1  )ru   r3  r   es       rh   _extract_statuszTwitterIE._extract_status1  s7   %II D$6$6#99V!Wbfgg	6  D$6$6)$C001G1GH^H^`d1egkl##x/.e(Dd&.%&+,-.",M  .//5FF$6DQWUWW  	6aggy1QWW^^s5J [\//5F		6s   A4C 	D>AD99D>c                      j                  |      j                  dd      \  } j                        }t        |dd hfd      xs dx}}t	        t        j                  dd|      d	
      }|j                  d      xs i }|j                  d      }|r| d| }|j                  d      }|||t        |j                  d            t        |j                  d            xs t        |j                  d            |t        |d d      t        |j                  d            t        |j                  d            t        |j                  d            |j                  d      rdndt        |d      d}	 fd fd}
t        |dddd  t        hf      } j                  |d!"      r'g t        |       |
|j                  d#            }nt        |dddt        |      d$z
  t        hfd      }|st!        d%| d&d'(      |j                  d)      d*k7  rt!        d+| d,d'(      t#        |d$      D ]]  \  }}|j                  d      |j                  d      k7  r*|d$k(  rt%               g|	d-<   t'        |      d$k7  r|	d.xx   d/| z  cc<    n i |	 |      d0iS |D cg c]  }i |	|d0i }}|sCt        |d1t(        2      }|r||k(  r j+                  d3d'(       |	S   j,                  |fd0i|	S t%               g|d   d-<   t'        |      d$k(  r|d   S t#        |d$      D ]  \  }}|d.xx   d/| z  cc<      j.                  |fi |	S c c}w )4Nr$  index)	full_textr   c                 &    | j                  dd      S )N
 replacexs    rh   ri   z)TwitterIE._real_extract.<locals>.<lambda>P  s    qyys7K rj   Fr    z\s+(https?://[^ ]+)H   )leftr+  namez - screen_name
created_atuser_id_strre  https://twitter.com/%sfavorite_countretweet_countreply_countpossibly_sensitiveru  r   )entitieshashtags.r   )r$  r'  r(  r)  r.  r@  r*  r7  r5  r4  r2  r1  r3  c                 F  
 t        | ddt              }j                  d|        g }i }t        | d      D ]:  }j                  |      \  }}j	                  ||      }|j                  |       < g | j                  d      xs | j                  d      

rS
fd}| j                  d	i       j                         D ]  \  }}	 |||	         |d
| j                  d      xs i        |||t        | ddt        hf      t        t        | d      d      ddS )Nre  r$  rs  zExtracting from video info: )rc  rd  .media_url_https	media_urlc           
          j                  | t        d| i      t        |j                  d      xs |j                  d            t        |j                  d      xs |j                  d            d       y )Nr  wr   hr   r$  r[   r   r   )r   r   r   re   )r  sizer  
thumbnailss     rh   add_thumbnailzOTwitterIE._real_extract.<locals>.extract_from_video_info.<locals>.add_thumbnailw  sc    %%"/	FD>J!,TXXc]-Odhhw>O!P"-dhhsm.Qtxx?Q"R	' rj   sizesorigoriginal_info
mediaStats	viewCount)rc  duration_millisrm   )resz
proto:m3u8brr  )r$  r   r   r  rT  r-  _format_sort_fields)
r   r   write_debugr}   r   r   re   r  r   r   )rf  r  r   r   rv   ry   rz   r  r  r  r  r  ru   r3  s             @@rh   extract_from_video_infoz8TwitterIE._real_extract.<locals>.extract_from_video_infoi  s6   #E8TUH;H:FGGI'/NO %!::7DI
d 11)TB	t$%
 J		"34N		+8NI #())GR"8">">"@ .JD$!$-.feii&@&FBG "&(*5<{m2\]),u>_*`bfg'J	 	rj   c              3     K   | sy j                  d| j                  d              | d   fd}| d   j                  d      d   }|dk(  rd |d	      d
 y |dk(  r+d |d      xs  |d	      t        j                         d y |dk(  r!d |d      t
        j	                         d y |dk(  r$dd |d       t        j	                         d y |dk(  rd |d      d
 y |dk(  r=j                   |d            }t        t        |dt                    E d {    y |dk(  }|r |d      n |d      } |d|r|ndz        }j                  ||xs       \  }}g }	dD ]v  }
 |d|
z         xs i }|j                  d      }|rd|v r*|	j                  |
r|
dd  nd|t        |j                  d             t        |j                  d!            d"       x |||	t         |d#            d$ y 7 ڭw)%NzExtracting from card info: r[   r0  c                 H    j                  |       xs i }t        |d       S )Nc                 4    | | d   j                         dz      S )Ntype_value)lowerr  s    rh   ri   zdTwitterIE._real_extract.<locals>.extract_from_card_info.<locals>.get_binding_value.<locals>.<lambda>  s    Aaioo.?(.J,K rj   )re   r   )kor0  s     rh   get_binding_valuezRTwitterIE._real_extract.<locals>.extract_from_card_info.<locals>.get_binding_value  s&    "&&q)/Rq"KLLrj   r  rW   player
player_url)_typer[   periscope_broadcast)r  r[   r   	broadcastbroadcast_url
audiospacezhttps://twitter.com/i/spaces/r$  summarycard_urlunified_card)media_entities.rs  amplifyamplify_url_vmapplayer_stream_urlz%s_content_id)_smallr  _large_x_large	_originalplayer_imagez/player-placeholderr   mediumr   r   r  content_duration_seconds)r   r   r  r-  )r  re   splitr   r   TwitterBroadcastIETwitterSpacesIE_parse_jsonmapr   r1  r   r   r   )r(  r  	card_namer  
is_amplifyr   
content_idr   r   r  suffiximage	image_urlr0  r  ru   r3  s                @rh   extract_from_card_infoz7TwitterIE._real_extract.<locals>.extract_from_card_info  s    :488E?:KLM!"23NM V**3/3IH$",\:  33",U3V7H7V)002 
 k)",_=0779 
 l*":;LT;R:ST-446 
 i'",Z8  n,#//0A.0QSWX6 "99O P P P ')3
DN,-?@TefyTz.z)_g/hi
%)%H%HS]Seae%f"
O 
F-nv.EFL"E %		% 0I$(=(J %%,2fQRj(!,UYYw-?!@"-eii.A"B	' 
  '!*", +,=2-4 !5	 1Ps   D)H
-H.CH
)Nr,  rg  rf  c                     |d   dk7  S )Nr  photor   )rf   r   s     rh   ri   z)TwitterIE._real_extract.<locals>.<lambda>  s    PQRXPY]dPd rj   zURL-specified video number)video_labelr(  r   zVideo #z is unavailableTr   r  videozMedia #z is not a videorB  r'  z #r   )r  r   r   expanded_urlrs  z%No video could be found in this tweet)_match_valid_urlrs   rw  r   r   rq   subre   r   r   r   r   r1  _yes_playlistr  r   r
   	enumerater   lenr   raise_no_formatsrg  playlist_result)ru   r[   selected_indexr   r'  r(  r+  r)  r*  infor  videosselected_entriesdesired_objry  entryr   entriesr  r  r3  s   `                  @@rh   rj  zTwitterIE._real_extractK  s   #44S9??gNn%%d+**-K,LMW\^ dac	d  '=r5 IPRSzz&!'R88F#jE7+Ehh}- & *6::l+CD%fjj&?@cKPTPXPXYaPbDc&(d<TU%fjj1A&BC'

?(CD(M)BC%zz*>?Q )NO
 "	HH	T f#%8'Cdgkfl'n o dN@\]s%<f!EsH^_e_i_ijp_qHrs&v')<gs>GZ]^G^ae`f0hqvxK$w~.>o%NY]^^(G3$w~.>o%NY]^^ !*&! 4 u99T?kood&;;A:0?d0K/LD+,v;!#Mr%\1M XdW5kBWLRVWWDTUD7d7d7L$7UU'0WgrsL<3#6%%&MX\%]"4??<IDIDII*9$*E)F
%&w<11:%gq1 	+LE5'N5'l*N	+ $t##G4t44# Vs   :M/N)r  r  r  rl  r   r  rm  r   r   rn  rq   compilerh  rt  r7  r  r\  rj  rw  rj  r   rj   rh   rh  rh    s.   G**  .D  DJAL
&
.
 5
 P	

 0
 [
 +
 )
 ?
 
 
 :
 ?
 S
 C
  #!
" B#
$ != >'
* */ A2 M1&T~0"
 '0#1AN H
&
.
 5
 M	

   c
 *
 :
 )
 
 :
 :
 S
 C
 #
 9
  !
" != >#
MAx N&x H+&#%@ 
& T

 %/wAh J
&
.
 5
 K	

 n
 0
 ,
 +
 <
 
 
 :
 <
 S
 C
  #!
" \N#
$ != >'
* )/gAX N
&
.
 5
 q	

 ~
 +
 +
 )
 
 
 :
 @
 0
 S
 C
  #!
" B#
$ != >'
WAF G! I%*G#0	
 -%EAd K
&
5
   t
   D	

 ,
 1
 =
 
 
 :
 .
 
 =
 0
 B
  C!
" ##
$ !!= >'
aAR E
&
.
 5
 w	

 0
   y
 ,
 /
 ;
 
 
 :
 ;
 S
 C
  #!
" WI#
$ != >'
, T
/QAH J
'
/
 5
 7	

 0
 A
 +
 
 ;
 
 
 :
 ;
 S
 C
  #!
" B#
$ !> ?'
, T
1EA| G
'
/
 5
   S	

 0
 A
 
 3
 
 
 :
 3
 S
 C
 #
  #!
" B#
$ %
( ,-{Al N! B*0"O	
 &&,iAJ R
'
/
 5
 o	

 0
 A
 *
 
 >
 
 
 :
 >
 S
 C
  #!
" B#
$ !> ?'
, T
1GA~ G
'
/
 5
 V	

 A
 :
 +
 
 8
 8
 0
 
 
 S
 C
  #!
" B#
$ !> ?'
* #D)/}An	 N'$9% *?%# 
  "D)'m	AV
 K
'
/
 5
 k	

 0
 A
 ,
 
 <
 <
 
 
 :
 S
 C
  #!
" ^$#
$ !> ?'
U
AF I
'
/
 5
 S	

 3
 /
 
 :
 :
 :
 
 0
 #
 C
 S
  !
" B#
$ !> ?%
( #$CD)1CAx M'$% b) >#
	uA^ L'&(#= J %
]AD M'A$)#%> &'
CAl O!P0+%!+P#&%
 ##"F+#iAP T'q%A ,$J%)A
	MAx T
'
5
 t
 0	

 
 *
 ,
 )
 C
 S
 J
 
 A
 /
 #
  A!
" :#
$ !> ?'
*  &1uAl H
'
/
 5
 ;	

 S
 
 /
 
 9
 9
 :
 
 :
 
 B
  #!
" C#
$ !!> ?'
* *3gA\ R
'
/
 5
 *	

 /
 ;
 #
 ;
 }
 C
 
 S
 :
 
 
  B!
" #
$ @!> ?'
*  &"1[AN N
'
/
 5
 +	

 ?
   F
 }
 
 )
 C
 :
 y
 S
 #
 B
  ?!
" #
$ &!> ?'
MA~ K
'
/
 5
 h	

 A
 (
 ?
 ?
 
 B
 
 
 :
 L
 #
  C!
$ "+{Aj O
'
5
 /
 o	

 A
 *
 
 >
 >
 
 B
 
 
 :
 M
  #!
" C#
$ !!> ?'
gAZ O
'
5
 /
 o	

 A
 *
 
 >
 >
 
 B
 
 
 :
 M
  #!
" C#
$ !> ?%
( $i%(1D%EF/WAJ P!A(,A#%%<%(
 &&,%GAp J'74& &;%% 
  *)mAZ P1
'
5
 v
 A	

 /
 +
 .
 ,
 A
 :
 
 
 M
 [M
 C
  #!
" S#
$ !> ?'
	WAL I1
'
5
 Q
 _	

 /
 
 +
 @
 .
 :
 
 
 B
 S
 C
  #!
" M#
$ !> ?'
	IA~ {AF GCAN GKAV KSA^ K[Af IcAn KkAv PsA~ N{AFF 2::./LD)V 
D\
*X4v5rj   rh  c                   6    e Zd ZdZdZddddddd	d
didZd Zy)TwitterAmplifyIEztwitter:amplifyz1https?://amp\.twimg\.com/v/(?P<id>[0-9a-f\-]{36})z<https://amp.twimg.com/v/0ba0c3c7-0af3-4c0a-bed5-7efd1ffa2951 fec25801d18a4557c5c9f33d2c379ffaz$0ba0c3c7-0af3-4c0a-bed5-7efd1ffa2951r\   Twitter Videozre:^https?://.*)r$  r&  r'  r+  rC  rD  rE  c                 l     j                  |      } j                  ||       j                  dd      } j                  ||      \  }}g } j                  ddd      } fd}|r  |d      \  }	}
|j	                  ||	|
d	        |d
      \  }}|d   j                  ||d       |d||dS )Nztwitter:amplify:vmapzvmap urlztwitter:image:srcr+  Fr`   c                     t        j                  d|  dd            }t        j                  d|  dd            }||fS )Nztwitter:z:widthFr  z:height)r   _html_search_meta)targetr  r  ru   webpages      rh   _find_dimensionz7TwitterAmplifyIE._real_extract.<locals>._find_dimension   sh    D226(&)7% 3 A BAD226('*G5 3 B CAa4Krj   r  )r[   r   r   r  r   r   r  )r$  r'  r   r  )rf  _download_webpager  r   r   r   )ru   r[   rw   r   r   rf   r  r+  r  thumbnail_wthumbnail_hvideo_wvideo_hr  s   `            @rh   rj  zTwitterAmplifyIE._real_extract  s    >>#&((h7))"GZ9888L

**+U + D		 '6w'?$K $%  +84

 	 $$	
 	
rj   N)r  r  r  rl  rm  _TESTrj  r   rj   rh   r  r    s=    GEJ N18$*	
 /0
E&
rj   r  c                      e Zd ZdZej
                  dz   Z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eeddddddddddddddeeddddi ddddd d!d"ed#d$d%dd&d'd(d)d*d+gd,d-d.d/d0d'd1d2d3d4d5d6d7edgZd8 Z	y9):r  ztwitter:broadcastz)i/(?P<type>broadcasts|events)/(?P<id>\w+)z.https://twitter.com/i/broadcasts/1yNGaQLWpejGj1yNGaQLWpejGjr\   z(Andrea May Sahouri - Periscope BroadcastzAndrea May Sahouriandreamsahouriz"https://twitter.com/andreamsahouriiT^20200601z re:^https?://[^?#]+\.jpg\?token=r  )r$  r&  r'  r   r)  r*  r7  r.  r/  r+  rT  r  rX  r  z.https://twitter.com/i/broadcasts/1ZkKzeyrPbaxv1ZkKzeyrPbaxvz+Starship | SN10 | High-Altitude Flight TestSpaceXzhttps://twitter.com/SpaceXi@`20210303z.https://twitter.com/i/broadcasts/1OyKAVQrgzwGb1OyKAVQrgzwGbzStarship Flight Testi0Ad20230420z*https://x.com/i/events/1910629646300762112r$  1LyxBWDRNqyKNr&  r'  u,   #ガンニバル ウォッチパーティーr  r   1910629646300762112rX  r  20250423r  ihr3  u   ガンニバルr+  zre:https?://[^?#]+\.jpg\?token=r.  ihr/  r)  u   ディズニープラス公式r*  DisneyPlusJPr7  z https://twitter.com/DisneyPlusJPrT  c                    | j                  |      j                  dd      \  }}|dk(  r=| j                  d| d|      }t        |dddd	t        ht
        t        d
      hf      }n|}| j                  d|d|i      d   |   }|st        dd      | j                  ||      }|j                  ||j                  d      xs |j                  d      |j                  d      xs |j                  d      t        |ddd       d       |d   dk(  r| j                  dd       |S |d   }| j                  d| |      d   }	|	j                  d      xs |	d   }
d|
v r| j                          t        j                  j!                  t        j                  j#                  |
      j$                        j                  dd g      d    }| j'                  |      \  }}}| j)                  |
|||||      |d!<   |S )"Nr  r$  eventszlive_event/1/z/timeline.jsontwitter_objects
broadcasts.)r$  broadcast_idzbroadcast IDzbroadcasts/show.jsonidsr  Tr   r   r'  twitter_usernamer*  r  )r/  )r   r'  r*  r7  rX  is_upcomingz'This live broadcast has not yet started	media_keylive_video_stream/status/sourcenoRedirectPlaybackUrlr"   z/live_video_stream/geoblocked/r   r   )r  rs   r  r   r   anyr   r
   _parse_broadcast_datar   re   r   r  raise_geo_restrictedr   r   parse_qsurlparser   _extract_common_format_info_extract_pscp_m3u8_formats)ru   r[   broadcast_typer   timeliner  r  r  r
  r  m3u8_urlr_   stater   r   s                  rh   rj  z TwitterBroadcastIE._real_extract  s.   %)%:%:3%?%E%Efd%S"
X%~~
|>:JHH'!<6LsW^4537 8L &LNN"LL!##/11=?	  !=MM)))\B$]]8,A0A$==);<W@W(-/GQUW	
 	 -/!!"KVZ![Kk*	'	{3Y@@HJ::56L&:L+x7%%',,''(=(=)e S$04#??	Juf99lGUE6CYrj   Nrk  r   rj   rh   r  r  =  s   !G**-YYJ @!?),+@#%<%(%
& @!B) #8#%<%(%
$ @!+) #8#%<%(%
$ <
/
5
 C
 $S	

 /
 :
 J
  
 &'
 ;
 
 :
 8
 >
 >
  #!
iHFT(rj   r  c                       e Zd ZdZej
                  dz   Zddddddd	d
ddd	dddddidddddddddddddddddddidd d!dd"d#d$d%dd&d'dd(d&ddd)ddidd*d+d,d-d#d.d/ddd0d1d2d1d3d4ddidgZd5dd6dd7Zd8 Z	d9 Z
y:);r  ztwitter:spacesz i/spaces/(?P<id>[0-9a-zA-Z]{13})z*https://twitter.com/i/spaces/1OwxWwQOPlNxQ1OwxWwQOPlNxQr  zDEverybody in: @mtbarra & @elonmusk discuss the future of EV chargingz'Twitter Space participated by Elon Muskr  20230608if:dz-re:https?://pbs\.twimg\.com/profile_images/.+i2dz
Mary Barramtbarra)r$  r&  r'  r(  rX  r  r  r+  r.  r/  r)  r*  r  r  r  z*https://twitter.com/i/spaces/1vAxRAVQWONJl1vAxRAVQWONJlz Framing Up FinOps: Billing Toolsz5Twitter Space participated by rupa, Alfonso HernandezzGoogle Cloudgooglecloud	post_liveiF8d20230413i>d20230418m4a_dash)r$  r&  r'  r(  r)  r*  rX  r+  r.  r/  r  r  protocol	containerz*https://twitter.com/i/spaces/1eaKbrQbjoRKX1eaKbrQbjoRKXu   あz(Twitter Space participated by nobody yetu   息根とめるtomeru_ikinone20230601i0zxdi.zxd)r$  r&  r'  r(  r)  r*  rX  r  r  r+  r.  r/  r#  r$  z$https://x.com/i/spaces/1DXGydznBYWKM1DXGydznBYWKMr\   u1   America and Israel’s “special relationship”zCandace OwensRealCandaceOif20240817ifr]   )r$  r&  r'  r(  r)  r*  rX  r+  r.  r/  r  r  r#  r	  is_live)
notstartedendedrunningtimedoutc                 4    |ddddddddddddddddddd
dS )NTF)r$  isMetatagsQuerywithDownvotePerspectivewithReactionsMetadatawithReactionsPerspectivewithReplayswithSuperFollowsUserFieldswithSuperFollowsTweetFields)
 dont_mention_me_view_api_enabledinteractive_text_enabledr?  rO  responsive_web_uc_gql_enabledspaces_2022_h2_clipping!spaces_2022_h2_spaces_communitiesrF  rG  vibe_api_enabled)rQ  rR  r   )ru   space_ids     rh   r  z$TwitterSpacesIE._build_graphql_query  sP     #'+0).,1#.2/3	 59,09=8<15+/5:/3[`$(
 	
rj   c                      j                  |      } j                  d|      d   }|st        dd      |d   t         fd      }|dk(  }g }d	d
i}|dk(  r j	                  dd       n|s%j                  d      s j	                  dd       nj                  d      rt         j                  dd    d         ddt        hfd      }|xr d|v }	|r# j                  |d   |	rdnd|	rdnd||d      ng }|	r#|D ]  }
|
j                  ddd       |rd|
d<     d j                  t        |d!            xs d"}|s|d#k(  r j	                  d$d       |d%| |||d&t        d't        hfd(t        d)*      ht        fd+t        d)*      hfd,      t        d-d.d/d0t        hfd1t        hfd2d3 ht        hfd4f      S )5Nz%HPEisOmj1epUNLCWTYhUWw/AudioSpaceById
audioSpacezTwitter Space not foundTr   metadatac                  D    j                    d   j                            S )Nr  )SPACE_STATUSr  )rA  ru   s   rh   ri   z/TwitterSpacesIE._real_extract.<locals>.<lambda>0  s     t'8'8'9J9P9P9R'S rj   r+  r   zhttps://twitter.com/r	  zTwitter Space not started yetis_space_available_for_replayz*Twitter Space ended and replay is disabledr
  r  r  )r  r"   Fr   zaudio-spacer  r\   r  r]   )entry_protocolliver   r`   rc   aac)rb   acodecr"  r$  r  )participantsspeakers.display_namez
nobody yetr  z,Twitter Space ended but not downloadable yetzTwitter Space participated by )r$  r(  r   http_headersrX  r'  )
started_atscheduled_startrm   )scaler  )r'  r  r.  creator_resultsr   r   r  r  profile_image_url_httpsc                 &    | j                  dd      S )N_normal_400x400r~  r  s    rh   ri   z/TwitterSpacesIE._real_extract.<locals>.<lambda>^  s    AIIiYcDd rj   )r)  r*  r+  )rf  r  r
   r   r  re   r   r  r   _extract_m3u8_formatsr   r  r   r   r  r   )ru   r[   r>  
space_datarX  r+  r   r   r  is_audio_spacefmtrI  rA  s   `           @rh   rj  zTwitterSpacesIE._real_extract)  sx   >>#&++,SU]^_kl
 !:TJJj)ST*45-'!!"AD!Q.M!N!!"NY]!^\\+&!!:8K;P:QRT\]hTij@;-PZ_aF $?(?N
 @F	 00-uE)7v]gU	 1 < LN	 
 " 6CJJ&EBC"+5K(6
 yyI"K L \O[ 	 ;+5!!"P[_!` ;L>J#&
 8!C5)&G+\`JaIbdg%h*[t-D,EF	& 
 8&78#cUO -}=7:d9ehsgtuN & 
 	
rj   N)r  r  r  rl  r   r  rm  rn  rC  r  rj  r   rj   rh   r  r    sD   G**-PPJ <![D%&!+I#%$$
 #F+!& <!7R&(&I#%!+&#
  #F+', <!E)+%&!+I#%#
  #F+', 6!HE')%I#%!+&%
 #F+%sLF^ $	L
47
rj   r  c                       e Zd ZdZdZdZd Zy)TwitterShortenerIEztwitter:shortenerz1https?://t\.co/(?P<id>[^?#]+)|tco:(?P<eid>[^?#]+)zhttps://t.co/c                     | j                  |      }|j                  dd      \  }}|r|}| j                  |z   }| j                  ||ddi      j                  }d}|j                  |      r|j                  |d      }| j                  |      S )Neidr$  r^  curl)r   z;https://twitter.com/safety/unsafe_link_warning?unsafe_link=r  )r  rs   	_BASE_URL_request_webpager[   
startswithr  rg  )ru   r[   r|   r\  	shortcodenew_url _TwitterShortenerIE__UNSAFE_LINKs          rh   rj  z TwitterShortenerIE._real_extracth  s    $$S)E40YI..9,C''Yv@V'W[[Um,oomR8Gw''rj   N)r  r  r  rl  rm  r^  rj  r   rj   rh   rZ  rZ  c  s    !GEJI
(rj   rZ  ),r   r   rX  rq   urllib.parser   commonr   	periscoper   r   jsinterpr   networking.exceptionsr	   utilsr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   utils.traversalr   r   r   r#  rh  r  r  r  rZ  r   rj   rh   <module>rk     s       	  ! 3 * -    ( 4kcM kc\	m+M m+`A5 A5H"6
} 6
rv vrj
m j
Z( (rj   