From 58be66ca90b9b13c08245b29f00fa1aee6611388 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 10 Sep 2022 20:08:27 +0000 Subject: [PATCH] Add changes for 20b1eee6a1a6e6d8ab235b70a7708d78a668e9c8 --- .doctrees/api/exceptions.doctree | Bin 51998 -> 55877 bytes .doctrees/api/methods/index.doctree | Bin 27439 -> 27495 bytes .doctrees/environment.pickle | Bin 399249 -> 399598 bytes _sources/api/exceptions.rst.txt | 2 ++ _sources/api/methods/index.rst.txt | 1 + api/client.html | 1 + api/custom_api.html | 1 + api/decorators.html | 1 + api/exceptions.html | 13 +++++++++ api/media_devices.html | 1 + api/methods/change_stream.html | 1 + api/methods/change_volume_call.html | 1 + api/methods/get_active_call.html | 1 + api/methods/get_call.html | 1 + api/methods/get_max_voice_chat.html | 1 + api/methods/get_participants.html | 1 + api/methods/idle.html | 1 + api/methods/index.html | 1 + api/methods/join_group_call.html | 5 ++-- api/methods/leave_group_call.html | 1 + api/methods/mute_stream.html | 1 + api/methods/pause_stream.html | 1 + api/methods/played_time.html | 29 +++++++++++++++++---- api/methods/resume_stream.html | 7 ++--- api/methods/run.html | 1 + api/methods/start.html | 1 + api/methods/start_custom_api.html | 7 ++--- api/methods/unmute_stream.html | 1 + api/stream_type.html | 1 + api/types/AudioImagePiped.html | 1 + api/types/AudioParameters.html | 1 + api/types/AudioPiped.html | 1 + api/types/AudioVideoPiped.html | 1 + api/types/CaptureAVDesktop.html | 1 + api/types/CaptureAVDeviceDesktop.html | 1 + api/types/CaptureAudioDevice.html | 1 + api/types/CaptureVideoDesktop.html | 1 + api/types/ChangedStream.html | 1 + api/types/ErrorDuringJoin.html | 1 + api/types/GroupCall.html | 1 + api/types/GroupCallParticipant.html | 1 + api/types/HighQualityAudio.html | 1 + api/types/HighQualityVideo.html | 1 + api/types/InputAudioStream.html | 1 + api/types/InputStream.html | 1 + api/types/InputVideoStream.html | 1 + api/types/JoinedGroupCallParticipant.html | 1 + api/types/LeftGroupCallParticipant.html | 1 + api/types/LeftVoiceChat.html | 1 + api/types/LowQualityAudio.html | 1 + api/types/LowQualityVideo.html | 1 + api/types/MediumQualityAudio.html | 1 + api/types/MediumQualityVideo.html | 1 + api/types/MutedStream.html | 1 + api/types/PausedStream.html | 1 + api/types/ResumedStream.html | 1 + api/types/StreamAudioEnded.html | 1 + api/types/StreamDeleted.html | 1 + api/types/StreamVideoEnded.html | 1 + api/types/UnMutedStream.html | 1 + api/types/Update.html | 1 + api/types/UpdatedGroupCallParticipant.html | 1 + api/types/VideoParameters.html | 1 + api/types/VideoPiped.html | 1 + api/types/index.html | 1 + genindex.html | 5 ++++ index.html | 1 + intro/install.html | 1 + intro/quickstart.html | 1 + objects.inv | Bin 3174 -> 3197 bytes releases/index.html | 1 + releases/v.0.0.9.html | 1 + releases/v.0.1.0.html | 1 + releases/v.0.2.0.html | 1 + releases/v.0.3.0.html | 1 + releases/v.0.4.0.html | 1 + releases/v.0.6.0.html | 1 + releases/v.0.7.0.html | 1 + releases/v.0.8.0.html | 1 + releases/v.0.9.0.html | 1 + search.html | 1 + searchindex.js | 2 +- start/examples.html | 1 + start/invoking.html | 1 + start/updates.html | 1 + 85 files changed, 129 insertions(+), 14 deletions(-) diff --git a/.doctrees/api/exceptions.doctree b/.doctrees/api/exceptions.doctree index 5684cdaee7ace6c95f7dc944c0452ff4038bd72a..4e3c8a7505f0e62c3143bdc88476229d76e4aa8e 100644 GIT binary patch delta 5147 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 delta 3987 zcmZvfe^6A{6~}#7k$t=GJ#at-+$Dlk1Iy1~R0JBdlVofN;F4%+kqW71`%nXdKhRL2 z8E5=KLgXx@+Tf2wVcN7-x{MHNGg6bP(fVVYOfsoS%w#&4pPK0mbUNDhoOAc#TjD== z?%uuUd(ZoR-nsX_cl#$F?3x_W644oRp)X?Vv*4)haR|qxN&cDUBuM^+r=vJJHVS{- zjl?mxf3n}>&+sQbkqXNe6u?94mW#WQ!9DA86_M(IW$(>XGAIaII%d#7Ze|i3U!y6r zVE4Lq_<5C2S&V-t!RlO3@+?|}1>G<_;x;5^Le=#+fMb&Bk2aHvFsuuGXY$9-0_>08FSb z?hTTvC8?v-TPJ(ax+~Vf?s-f%TyEG)j#W1PKoM_C$No0%7!FvD4Z%+vce7*vupCPn zy0_p*)Sc*9&;hB<-5me~WOW&P5!Ack9(SyK4C187+)lx@8vCaJJEAs^bdMuWd8 zT5&;BlUL{}oKAX7s4Dw6LuLQ&(4(?{xO|S!gE3JF0Tef#`22|EWGGeCN7c)TZYl1D zk!|yp97x)pDjt%;SyH%=g{RwvafxhHYjZ>Wws@HPLbM*PnwvStK5|zA8laUWppO{P zDiwtoP!;tUP?c&2bP@qAfmO{*5fW53HiG+?ePXLhZ?ZP@!&kksdZ1rnSb14Jy6b3F|S|;$-QdkM-!# z;OyXUS`!s9M5KNKp6xD}+m#GUwhwA2>ERd&E|cS1sMm#3z)+k{2sp|OfAsxOe5t}M zpI3Y>8Qhc%MkU-ZrB5pIyh-j|WFAlp@Ifx9T!1A_ha3}CCXfG$h zr=3MgA$YpH(E0L3Sm?`vj`r)8=!g^g4y{sB;k)7_$UL0w*zUpYny#F~$r6`60O|v=0$hx%1EVcmmJ+7k-2djCE`1TU-&kE#TH{HVeas~U72n)_d(Y7kjE9a9;) zKE7%ubtfX2N`sNB0=Ub^!FT;LqR01n|5UW4Q0L<-Ooh2b>db}0EiRTmhB@_M_25!P zser!Tl}Z)lp74s*l<{LqB`o{XB4O%GqzuC)k*PWn(bQ0ms8Ip!y~(WLAs)($u(~Hr z?3604tkQlT6~bXxA#>)~b<1IK(5pLXAxR@sXBsCc7pBoiJ*Ls8+bcuWnZ}*J*ec`n z+kN7KL~`vO5*)Eg<1C7CX|$YPBW^O36dDUHK0@7zP)_UcqhYTYmF9=dX7h)o`KK|~ zGT+icM}=;1ZNwY2zlcPGZ+USBZ7{ewSD%`vsfI-Y7pK}d z6G{vPF`8ZQEk{poCep%J9a~uhDrG_jauq4jatJ_ zRPKE8l@}Epv#v6S08-X&3Xvd4p>vY&K&H7*sRyfUy=fO9%6Q z6;=!@j@{OhTiLo;V%v#CwpP`!RlV^iIl z2Kq)cNu$(kzz>5`^S^@HM(e}7OU z#v)a^{|9VAnVbLs diff --git a/.doctrees/api/methods/index.doctree b/.doctrees/api/methods/index.doctree index 89b030127f4dc1bf7c3cf61df2c8858e85ba1b24..1a3b2ae298c92e654b1bb6dfcd5f51f8e4e87ffe 100644 GIT binary patch delta 542 zcmZ2~jq&+4MwSNFsWBT_6r!|y_!WSlASbahH6^|zGdFcgk9cB1rhaZ}Nk)E3u|AT_ zWW^{|wybCD3=FB0^AyY`*G5S(Wj&odCF(clU!Y)ybk=Y7$sdJuCMVdli2MMF$Yd~Q z$Y$td$a$xgCS{zM>}aDgd4WAQkF_H#tC1g2|g>@`F&l$u`bBlaI!= z0S$9>6=Sjj$*Zx%0gag)9j`UnL7aopWb(oIB+dem$Y z$%-zTOeP$YKj>>R8G;N@V*3M>06Hu|UY|*vWAa3K9VTIj&3EOw`LYmx%M#+4d@mw! z^0`Daru7_?vlXlu*G+az5@yQ-8n6(gQ+V=$C>f?7?33?BNljjwWY3tk`Ds!i6XWa6 z;i+Gk*^U7nl681;V5UUW$drmYw*6uZ=k;j|@)0VWMxAuTm?#zBG&8ilDxmS(tHeeBLk45H={l1&;zBr?110gTU|wobmjPrgdWpti8rI?jDhro#}^~%2akC(i#Z;z45Uvy yj(H^mhZEL5j%cE;iK-@Qny6^Aq?&!IFcMkl$kC6>VElD0aCL?Yv*`jljJ^S0F`2CZ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 66f2e74a3624e519b146957380c01a6b995ff799..d3a7f01b9280e7c1327acf040a18d2231a8ce301 100644 GIT binary patch literal 399598 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 (O(jZmm8RZHn=MU9t$rYg|;#N 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 literal 399249 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 diff --git a/_sources/api/exceptions.rst.txt b/_sources/api/exceptions.rst.txt index c76b1e0..e28691c 100644 --- a/_sources/api/exceptions.rst.txt +++ b/_sources/api/exceptions.rst.txt @@ -31,6 +31,7 @@ MtProto Errors .. autoexception:: pytgcalls.exceptions.InvalidMtProtoClient() .. autoexception:: pytgcalls.exceptions.NoMtProtoClientSet() .. autoexception:: pytgcalls.exceptions.TelegramServerError() +.. autoexception:: pytgcalls.exceptions.RTMPStreamNeeded() PyTgCalls Errors ---------------- @@ -39,6 +40,7 @@ PyTgCalls Errors .. autoexception:: pytgcalls.exceptions.NoActiveGroupCall() .. autoexception:: pytgcalls.exceptions.NotInGroupCallError() .. autoexception:: pytgcalls.exceptions.AlreadyJoinedError() +.. autoexception:: pytgcalls.exceptions.UnMuteNeeded() Stream Errors ------------- diff --git a/_sources/api/methods/index.rst.txt b/_sources/api/methods/index.rst.txt index c164742..4e07fdd 100644 --- a/_sources/api/methods/index.rst.txt +++ b/_sources/api/methods/index.rst.txt @@ -94,6 +94,7 @@ Audio/Video Stream unmute_stream pause_stream resume_stream + played_time .. currentmodule:: pytgcalls.CustomApi diff --git a/api/client.html b/api/client.html index a68a037..2648cd8 100644 --- a/api/client.html +++ b/api/client.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/custom_api.html b/api/custom_api.html index 970bab4..e066a7b 100644 --- a/api/custom_api.html +++ b/api/custom_api.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/decorators.html b/api/decorators.html index eae9616..2218ee0 100644 --- a/api/decorators.html +++ b/api/decorators.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/exceptions.html b/api/exceptions.html index 0094005..f9cdb3e 100644 --- a/api/exceptions.html +++ b/api/exceptions.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • @@ -362,6 +363,12 @@

    MtProto Errorsjoin_group_call()

    +
    +
    +exception pytgcalls.exceptions.RTMPStreamNeeded#
    +

    Needed an RTMP Stream, raised by +join_group_call()

    +

    PyTgCalls Errors#

    @@ -398,6 +405,12 @@

    PyTgCalls Errorsjoin_group_call()

    +
    +
    +exception pytgcalls.exceptions.UnMuteNeeded#
    +

    Needed to unmute the userbot, raised by +join_group_call()

    +

    Stream Errors#

    diff --git a/api/media_devices.html b/api/media_devices.html index 16a5deb..71a9bac 100644 --- a/api/media_devices.html +++ b/api/media_devices.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/change_stream.html b/api/methods/change_stream.html index 9ba029c..101e15c 100644 --- a/api/methods/change_stream.html +++ b/api/methods/change_stream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/change_volume_call.html b/api/methods/change_volume_call.html index 8af806d..fcd309c 100644 --- a/api/methods/change_volume_call.html +++ b/api/methods/change_volume_call.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/get_active_call.html b/api/methods/get_active_call.html index 4b203f6..25f0a26 100644 --- a/api/methods/get_active_call.html +++ b/api/methods/get_active_call.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/get_call.html b/api/methods/get_call.html index ddaa5b2..eae2358 100644 --- a/api/methods/get_call.html +++ b/api/methods/get_call.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/get_max_voice_chat.html b/api/methods/get_max_voice_chat.html index e9ef257..d51292a 100644 --- a/api/methods/get_max_voice_chat.html +++ b/api/methods/get_max_voice_chat.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/get_participants.html b/api/methods/get_participants.html index fb16057..d665531 100644 --- a/api/methods/get_participants.html +++ b/api/methods/get_participants.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/idle.html b/api/methods/idle.html index c99dad3..67eb6be 100644 --- a/api/methods/idle.html +++ b/api/methods/idle.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/index.html b/api/methods/index.html index 7c9357b..63f72fd 100644 --- a/api/methods/index.html +++ b/api/methods/index.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/join_group_call.html b/api/methods/join_group_call.html index 1190f83..79a6e19 100644 --- a/api/methods/join_group_call.html +++ b/api/methods/join_group_call.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • @@ -329,10 +330,10 @@

    join_group_call()TelegramServerError – Error occurred when joining to a group call ( Telegram Server Side)

    -
  • RTMPStreamNeeded – In case you try +

  • RTMPStreamNeeded – In case you try to join a group call without a RTMP stream

  • -
  • UnMuteNeeded – In case you try +

  • UnMuteNeeded – In case you try to play on a muted group call

  • diff --git a/api/methods/leave_group_call.html b/api/methods/leave_group_call.html index c4dbb4b..f447d56 100644 --- a/api/methods/leave_group_call.html +++ b/api/methods/leave_group_call.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/mute_stream.html b/api/methods/mute_stream.html index f4f508a..208467d 100644 --- a/api/methods/mute_stream.html +++ b/api/methods/mute_stream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/pause_stream.html b/api/methods/pause_stream.html index eedd7b9..2892f14 100644 --- a/api/methods/pause_stream.html +++ b/api/methods/pause_stream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/methods/played_time.html b/api/methods/played_time.html index 4e008f7..75149c5 100644 --- a/api/methods/played_time.html +++ b/api/methods/played_time.html @@ -3,7 +3,7 @@ - + played_time() - PyTgCalls Documentation @@ -168,11 +168,11 @@
  • Examples
  • API Reference

    - diff --git a/api/methods/start_custom_api.html b/api/methods/start_custom_api.html index 5b02f01..5161b92 100644 --- a/api/methods/start_custom_api.html +++ b/api/methods/start_custom_api.html @@ -3,7 +3,7 @@ - + start() - PyTgCalls Documentation @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • @@ -309,14 +310,14 @@

    start() - +
    Previous
    -
    resume_stream()
    +
    played_time()
    diff --git a/api/methods/unmute_stream.html b/api/methods/unmute_stream.html index eac7538..5459d31 100644 --- a/api/methods/unmute_stream.html +++ b/api/methods/unmute_stream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/stream_type.html b/api/stream_type.html index 26b114e..8797424 100644 --- a/api/stream_type.html +++ b/api/stream_type.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/AudioImagePiped.html b/api/types/AudioImagePiped.html index de82842..c3428bb 100644 --- a/api/types/AudioImagePiped.html +++ b/api/types/AudioImagePiped.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/AudioParameters.html b/api/types/AudioParameters.html index 6560907..c238c5c 100644 --- a/api/types/AudioParameters.html +++ b/api/types/AudioParameters.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/AudioPiped.html b/api/types/AudioPiped.html index 714c0b7..6c9d123 100644 --- a/api/types/AudioPiped.html +++ b/api/types/AudioPiped.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/AudioVideoPiped.html b/api/types/AudioVideoPiped.html index 40b1785..7f9e157 100644 --- a/api/types/AudioVideoPiped.html +++ b/api/types/AudioVideoPiped.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/CaptureAVDesktop.html b/api/types/CaptureAVDesktop.html index b2016d1..4d64a18 100644 --- a/api/types/CaptureAVDesktop.html +++ b/api/types/CaptureAVDesktop.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/CaptureAVDeviceDesktop.html b/api/types/CaptureAVDeviceDesktop.html index 266be14..83d6530 100644 --- a/api/types/CaptureAVDeviceDesktop.html +++ b/api/types/CaptureAVDeviceDesktop.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/CaptureAudioDevice.html b/api/types/CaptureAudioDevice.html index 6d17c36..f2269e6 100644 --- a/api/types/CaptureAudioDevice.html +++ b/api/types/CaptureAudioDevice.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/CaptureVideoDesktop.html b/api/types/CaptureVideoDesktop.html index dfb7317..cbb9999 100644 --- a/api/types/CaptureVideoDesktop.html +++ b/api/types/CaptureVideoDesktop.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/ChangedStream.html b/api/types/ChangedStream.html index 6fc5871..ead69e9 100644 --- a/api/types/ChangedStream.html +++ b/api/types/ChangedStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/ErrorDuringJoin.html b/api/types/ErrorDuringJoin.html index e011609..8fa1fb4 100644 --- a/api/types/ErrorDuringJoin.html +++ b/api/types/ErrorDuringJoin.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/GroupCall.html b/api/types/GroupCall.html index e0d9fc2..4f16dc7 100644 --- a/api/types/GroupCall.html +++ b/api/types/GroupCall.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/GroupCallParticipant.html b/api/types/GroupCallParticipant.html index da67517..25bdae9 100644 --- a/api/types/GroupCallParticipant.html +++ b/api/types/GroupCallParticipant.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/HighQualityAudio.html b/api/types/HighQualityAudio.html index 93c8aba..360fd68 100644 --- a/api/types/HighQualityAudio.html +++ b/api/types/HighQualityAudio.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/HighQualityVideo.html b/api/types/HighQualityVideo.html index 23a1d27..5af32ba 100644 --- a/api/types/HighQualityVideo.html +++ b/api/types/HighQualityVideo.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/InputAudioStream.html b/api/types/InputAudioStream.html index 858a70b..f613201 100644 --- a/api/types/InputAudioStream.html +++ b/api/types/InputAudioStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/InputStream.html b/api/types/InputStream.html index 0383386..bbd709e 100644 --- a/api/types/InputStream.html +++ b/api/types/InputStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/InputVideoStream.html b/api/types/InputVideoStream.html index 09276bd..1750119 100644 --- a/api/types/InputVideoStream.html +++ b/api/types/InputVideoStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/JoinedGroupCallParticipant.html b/api/types/JoinedGroupCallParticipant.html index 28801e5..c2b19ff 100644 --- a/api/types/JoinedGroupCallParticipant.html +++ b/api/types/JoinedGroupCallParticipant.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/LeftGroupCallParticipant.html b/api/types/LeftGroupCallParticipant.html index 0768fb4..5b1ad91 100644 --- a/api/types/LeftGroupCallParticipant.html +++ b/api/types/LeftGroupCallParticipant.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/LeftVoiceChat.html b/api/types/LeftVoiceChat.html index e70a69a..5d6dd3b 100644 --- a/api/types/LeftVoiceChat.html +++ b/api/types/LeftVoiceChat.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/LowQualityAudio.html b/api/types/LowQualityAudio.html index 1d7bf5c..7bb2a32 100644 --- a/api/types/LowQualityAudio.html +++ b/api/types/LowQualityAudio.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/LowQualityVideo.html b/api/types/LowQualityVideo.html index 58e24d3..c60b3bd 100644 --- a/api/types/LowQualityVideo.html +++ b/api/types/LowQualityVideo.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/MediumQualityAudio.html b/api/types/MediumQualityAudio.html index 9322cfd..ddba02f 100644 --- a/api/types/MediumQualityAudio.html +++ b/api/types/MediumQualityAudio.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/MediumQualityVideo.html b/api/types/MediumQualityVideo.html index 694500d..0377233 100644 --- a/api/types/MediumQualityVideo.html +++ b/api/types/MediumQualityVideo.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/MutedStream.html b/api/types/MutedStream.html index f94844d..d2c168d 100644 --- a/api/types/MutedStream.html +++ b/api/types/MutedStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/PausedStream.html b/api/types/PausedStream.html index 6975ab2..13b23aa 100644 --- a/api/types/PausedStream.html +++ b/api/types/PausedStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/ResumedStream.html b/api/types/ResumedStream.html index e216274..6843771 100644 --- a/api/types/ResumedStream.html +++ b/api/types/ResumedStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/StreamAudioEnded.html b/api/types/StreamAudioEnded.html index 6bed891..a3eb81f 100644 --- a/api/types/StreamAudioEnded.html +++ b/api/types/StreamAudioEnded.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/StreamDeleted.html b/api/types/StreamDeleted.html index 5bf328c..0b09e1f 100644 --- a/api/types/StreamDeleted.html +++ b/api/types/StreamDeleted.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/StreamVideoEnded.html b/api/types/StreamVideoEnded.html index 125733f..02b1591 100644 --- a/api/types/StreamVideoEnded.html +++ b/api/types/StreamVideoEnded.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/UnMutedStream.html b/api/types/UnMutedStream.html index 9720ff3..6e33e16 100644 --- a/api/types/UnMutedStream.html +++ b/api/types/UnMutedStream.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/Update.html b/api/types/Update.html index 696ad0d..fbb768f 100644 --- a/api/types/Update.html +++ b/api/types/Update.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/UpdatedGroupCallParticipant.html b/api/types/UpdatedGroupCallParticipant.html index 13b356a..c901376 100644 --- a/api/types/UpdatedGroupCallParticipant.html +++ b/api/types/UpdatedGroupCallParticipant.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/VideoParameters.html b/api/types/VideoParameters.html index 4d466a2..97c06cf 100644 --- a/api/types/VideoParameters.html +++ b/api/types/VideoParameters.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/VideoPiped.html b/api/types/VideoPiped.html index ebe3256..595f075 100644 --- a/api/types/VideoPiped.html +++ b/api/types/VideoPiped.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/api/types/index.html b/api/types/index.html index 460474e..ffd574c 100644 --- a/api/types/index.html +++ b/api/types/index.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/genindex.html b/genindex.html index 6f7c052..add64c1 100644 --- a/genindex.html +++ b/genindex.html @@ -186,6 +186,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • @@ -682,6 +683,8 @@

    R

  • resume_stream() (pytgcalls.PyTgCalls method)
  • ResumedStream (class in pytgcalls.types) +
  • +
  • RTMPStreamNeeded
  • run() (pytgcalls.PyTgCalls method)
  • @@ -786,6 +789,8 @@

    U

  • unmute_stream() (pytgcalls.PyTgCalls method)
  • UnMutedStream (class in pytgcalls.types) +
  • +
  • UnMuteNeeded
  • diff --git a/intro/install.html b/intro/install.html index 21f6761..9c19a94 100644 --- a/intro/install.html +++ b/intro/install.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/intro/quickstart.html b/intro/quickstart.html index d71a641..846fb14 100644 --- a/intro/quickstart.html +++ b/intro/quickstart.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/objects.inv b/objects.inv index ee413071358016fa51f5252b64b6bad58f17d270..7a1ffd82da4d1a659d97c52682f39d7e39a079eb 100644 GIT binary patch delta 3101 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 T#+83kW unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.0.9.html b/releases/v.0.0.9.html index bfed9e3..1c8ccae 100644 --- a/releases/v.0.0.9.html +++ b/releases/v.0.0.9.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.1.0.html b/releases/v.0.1.0.html index bea75b8..fd6828f 100644 --- a/releases/v.0.1.0.html +++ b/releases/v.0.1.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.2.0.html b/releases/v.0.2.0.html index 608c2b5..913858e 100644 --- a/releases/v.0.2.0.html +++ b/releases/v.0.2.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.3.0.html b/releases/v.0.3.0.html index 5893e10..524ef40 100644 --- a/releases/v.0.3.0.html +++ b/releases/v.0.3.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.4.0.html b/releases/v.0.4.0.html index e2e037c..f883b8a 100644 --- a/releases/v.0.4.0.html +++ b/releases/v.0.4.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.6.0.html b/releases/v.0.6.0.html index 909dcc9..9c22019 100644 --- a/releases/v.0.6.0.html +++ b/releases/v.0.6.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.7.0.html b/releases/v.0.7.0.html index 34a4384..2732c33 100644 --- a/releases/v.0.7.0.html +++ b/releases/v.0.7.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.8.0.html b/releases/v.0.8.0.html index 9495b54..720e486 100644 --- a/releases/v.0.8.0.html +++ b/releases/v.0.8.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/releases/v.0.9.0.html b/releases/v.0.9.0.html index c207365..59687d4 100644 --- a/releases/v.0.9.0.html +++ b/releases/v.0.9.0.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/search.html b/search.html index 0b5402c..ee8ad3a 100644 --- a/search.html +++ b/search.html @@ -185,6 +185,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/searchindex.js b/searchindex.js index 361f81b..e96bef4 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/client", "api/custom_api", "api/decorators", "api/exceptions", "api/media_devices", "api/methods/change_stream", "api/methods/change_volume_call", "api/methods/get_active_call", "api/methods/get_call", "api/methods/get_max_voice_chat", "api/methods/get_participants", "api/methods/idle", "api/methods/index", "api/methods/join_group_call", "api/methods/leave_group_call", "api/methods/mute_stream", "api/methods/pause_stream", "api/methods/played_time", "api/methods/resume_stream", "api/methods/run", "api/methods/start", "api/methods/start_custom_api", "api/methods/unmute_stream", "api/stream_type", "api/types/AudioImagePiped", "api/types/AudioParameters", "api/types/AudioPiped", "api/types/AudioVideoPiped", "api/types/CaptureAVDesktop", "api/types/CaptureAVDeviceDesktop", "api/types/CaptureAudioDevice", "api/types/CaptureVideoDesktop", "api/types/ChangedStream", "api/types/ErrorDuringJoin", "api/types/GroupCall", "api/types/GroupCallParticipant", "api/types/HighQualityAudio", "api/types/HighQualityVideo", "api/types/InputAudioStream", "api/types/InputStream", "api/types/InputVideoStream", "api/types/JoinedGroupCallParticipant", "api/types/LeftGroupCallParticipant", "api/types/LeftVoiceChat", "api/types/LowQualityAudio", "api/types/LowQualityVideo", "api/types/MediumQualityAudio", "api/types/MediumQualityVideo", "api/types/MutedStream", "api/types/PausedStream", "api/types/ResumedStream", "api/types/StreamAudioEnded", "api/types/StreamDeleted", "api/types/StreamVideoEnded", "api/types/UnMutedStream", "api/types/Update", "api/types/UpdatedGroupCallParticipant", "api/types/VideoParameters", "api/types/VideoPiped", "api/types/index", "index", "intro/install", "intro/quickstart", "releases/index", "releases/v.0.0.9", "releases/v.0.1.0", "releases/v.0.2.0", "releases/v.0.3.0", "releases/v.0.4.0", "releases/v.0.6.0", "releases/v.0.7.0", "releases/v.0.8.0", "releases/v.0.9.0", "start/examples", "start/invoking", "start/updates"], "filenames": ["api/client.rst", "api/custom_api.rst", "api/decorators.rst", "api/exceptions.rst", "api/media_devices.rst", "api/methods/change_stream.rst", "api/methods/change_volume_call.rst", "api/methods/get_active_call.rst", "api/methods/get_call.rst", "api/methods/get_max_voice_chat.rst", "api/methods/get_participants.rst", "api/methods/idle.rst", "api/methods/index.rst", "api/methods/join_group_call.rst", "api/methods/leave_group_call.rst", "api/methods/mute_stream.rst", "api/methods/pause_stream.rst", "api/methods/played_time.rst", "api/methods/resume_stream.rst", "api/methods/run.rst", "api/methods/start.rst", "api/methods/start_custom_api.rst", "api/methods/unmute_stream.rst", "api/stream_type.rst", "api/types/AudioImagePiped.rst", "api/types/AudioParameters.rst", "api/types/AudioPiped.rst", "api/types/AudioVideoPiped.rst", "api/types/CaptureAVDesktop.rst", "api/types/CaptureAVDeviceDesktop.rst", "api/types/CaptureAudioDevice.rst", "api/types/CaptureVideoDesktop.rst", "api/types/ChangedStream.rst", "api/types/ErrorDuringJoin.rst", "api/types/GroupCall.rst", "api/types/GroupCallParticipant.rst", "api/types/HighQualityAudio.rst", "api/types/HighQualityVideo.rst", "api/types/InputAudioStream.rst", "api/types/InputStream.rst", "api/types/InputVideoStream.rst", "api/types/JoinedGroupCallParticipant.rst", "api/types/LeftGroupCallParticipant.rst", "api/types/LeftVoiceChat.rst", "api/types/LowQualityAudio.rst", "api/types/LowQualityVideo.rst", "api/types/MediumQualityAudio.rst", "api/types/MediumQualityVideo.rst", "api/types/MutedStream.rst", "api/types/PausedStream.rst", "api/types/ResumedStream.rst", "api/types/StreamAudioEnded.rst", "api/types/StreamDeleted.rst", "api/types/StreamVideoEnded.rst", "api/types/UnMutedStream.rst", "api/types/Update.rst", "api/types/UpdatedGroupCallParticipant.rst", "api/types/VideoParameters.rst", "api/types/VideoPiped.rst", "api/types/index.rst", "index.rst", "intro/install.rst", "intro/quickstart.rst", "releases/index.rst", "releases/v.0.0.9.rst", "releases/v.0.1.0.rst", "releases/v.0.2.0.rst", "releases/v.0.3.0.rst", "releases/v.0.4.0.rst", "releases/v.0.6.0.rst", "releases/v.0.7.0.rst", "releases/v.0.8.0.rst", "releases/v.0.9.0.rst", "start/examples.rst", "start/invoking.rst", "start/updates.rst"], "titles": ["PyTgCalls Client", "Custom Api", "Decorators", "Exceptions", "Media Devices", "change_stream()", "change_volume_call()", "get_active_call()", "get_call()", "get_max_voice_chat()", "get_participants()", "idle()", "Available Methods", "join_group_call()", "leave_group_call()", "mute_stream()", "pause_stream()", "played_time()", "resume_stream()", "run()", "start()", "start()", "unmute_stream()", "Stream Type", "AudioImagePiped", "AudioParameters", "AudioPiped", "AudioVideoPiped", "CaptureAVDesktop", "CaptureAVDeviceDesktop", "CaptureAudioDevice", "CaptureVideoDesktop", "ChangedStream", "ErrorDuringJoin", "GroupCall", "GroupCallParticipant", "HighQualityAudio", "HighQualityVideo", "InputAudioStream", "InputStream", "InputVideoStream", "JoinedGroupCallParticipant", "LeftGroupCallParticipant", "LeftVoiceChat", "LowQualityAudio", "LowQualityVideo", "MediumQualityAudio", "MediumQualityVideo", "MutedStream", "PausedStream", "ResumedStream", "StreamAudioEnded", "StreamDeleted", "StreamVideoEnded", "UnMutedStream", "Update", "UpdatedGroupCallParticipant", "VideoParameters", "VideoPiped", "Available Types", "Welcome to PyTgCalls!", "Install Guide", "Quick Start", "Release Notes", "PyTgCalls v0.0.9", "PyTgCalls v0.1.0", "PyTgCalls v0.2.0", "PyTgCalls v0.3.0", "PyTgCalls v0.4.0", "PyTgCalls v0.6.0", "PyTgCalls v0.7.0", "PyTgCalls v0.8.0", "PyTgCalls v0.9.0", "Examples", "Calling Methods", "Handling Updates"], "terms": {"you": [0, 1, 2, 3, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 59, 60, 61, 62, 63, 73, 74, 75], "have": [0, 1, 3, 5, 11, 13, 35, 56, 62, 73, 74, 75], "enter": [0, 1], "api": [0, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 19, 20, 21, 22, 34, 35, 73, 74, 75], "refer": [0, 1], "section": [0, 1, 75], "where": [0, 1, 73], "can": [0, 1, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 22, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 61, 62, 68, 73, 74, 75], "find": [0, 1, 63], "inform": [0, 1], "about": [0, 1, 12, 34, 35, 41, 42, 56, 59, 73, 75], "The": [0, 1, 3, 11, 13, 23, 24, 26, 27, 28, 29, 30, 31, 38, 39, 40, 43, 58, 61, 62, 73, 75], "main": [0, 1, 11, 12, 19, 23, 62, 74], "class": [0, 1, 2, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 74], "all": [0, 1, 2, 3, 12, 59, 62, 63, 71], "avail": [0, 1], "method": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 59, 60, 62, 71, 75], "type": [0, 1, 2, 13, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 74, 75], "attribut": [0, 1, 33], "decor": [0, 1, 3, 19, 71], "descript": [0, 1, 73], "found": [0, 1, 3, 12], "start": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 60, 61, 68, 73, 74], "from": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 28, 29, 30, 31, 59, 60, 61, 62, 68, 73, 74, 75], "thi": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 35, 59, 60, 61, 73, 74, 75], "page": [0, 1, 2, 12, 59, 62, 73, 75], "i": [0, 1, 2, 3, 6, 7, 8, 10, 11, 12, 16, 18, 19, 21, 35, 59, 60, 61, 73, 74, 75], "which": [0, 1, 11, 12, 75], "expos": [0, 1], "high": [0, 1, 36, 37], "level": [0, 1, 35, 74], "an": [0, 1, 3, 5, 7, 8, 9, 13, 19, 20, 21, 74], "easi": [0, 1], "access": [0, 1], "import": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 59, 60, 61, 62, 74, 75], "app": [0, 1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 22, 60, 62, 74, 75], "mean": [0, 1, 23, 59, 61, 73], "interact": 0, "group": [0, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 33, 34, 35, 41, 42, 43, 56, 60, 68, 71, 73, 75], "call": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 34, 35, 41, 42, 43, 56, 60, 62, 71, 73, 75], "active_cal": 0, "get": [0, 7, 8, 9, 10, 17, 23, 60, 61, 68, 71, 75], "list": [0, 2, 10, 12, 59, 71, 73, 75], "activ": [0, 3, 7], "plai": [0, 2, 5, 6, 7, 13, 16, 17, 52, 62, 71, 73, 74], "paus": [0, 7, 16, 18, 49, 70], "groupcal": [0, 7, 8], "exist": [0, 5, 7, 8, 13, 34, 59], "cache_p": 0, "current": [0, 35], "telegram": [0, 3, 6, 13, 25, 35, 60, 62, 73, 74, 75], "user": [0, 71], "inputp": [0, 13], "p": [0, 13], "t": [0, 3, 5, 13, 59, 61, 64, 74], "ping": 0, "nodej": [0, 20, 60, 71, 75], "core": [0, 3, 9, 20, 74], "int": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 23, 25, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "is_connect": 0, "check": [0, 7, 8, 34, 59, 63], "aliv": [0, 11], "connect": [0, 20, 24, 26, 27, 28, 58], "bool": [0, 16, 18, 24, 26, 27, 34, 35, 39, 58], "paramet": [0, 1, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 73], "telegramcli": [0, 74], "pass": 0, "mtproto": [0, 2, 5, 6, 10, 13, 14, 15, 16, 17, 18, 19, 22, 60, 62, 74], "cache_dur": 0, "cach": [0, 68], "durat": 0, "full": [0, 70], "chat": [0, 2, 5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60, 67, 68, 73], "queri": 0, "overload_quiet_mod": 0, "disabl": 0, "overload": 0, "cpu": 0, "messag": [0, 2], "set": [0, 3, 5, 6, 11, 13, 23, 59, 73, 74, 75], "true": [0, 16, 18, 59], "rais": [0, 2, 3, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 32, 35, 48, 49, 50, 51, 52, 53, 54], "invalidmtprotocli": [0, 3], "invalid": [0, 3], "front": 1, "end": [1, 2, 11, 51, 53, 75], "customapi": [1, 21, 69], "pytgcal": [1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 63, 73, 74, 75], "client": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 59, 60, 62, 74, 75], "host": 1, "local": [1, 23], "http": [1, 2, 21, 23, 24, 26, 27, 28, 58, 60, 61, 62, 74, 75], "server": [1, 3, 13, 68, 70, 73], "port": 1, "option": [1, 9, 13, 24, 26, 27, 28, 39, 58, 59, 71], "bind": [1, 70, 73], "while": [2, 11], "still": [2, 11, 75], "being": 2, "bound": [2, 12], "ar": [2, 11, 12, 59, 61, 73, 74, 75], "special": [2, 12], "kind": [2, 75], "thu": 2, "deserv": 2, "dedic": 2, "abl": 2, "regist": 2, "callback": [2, 75], "function": [2, 11, 12, 74, 75], "handl": [2, 60], "updat": [2, 59, 60, 61, 70], "much": [2, 62, 75], "easier": 2, "cleaner": 2, "wai": [2, 11, 61, 75], "need": [2, 21, 59, 63, 64, 74, 75], "do": [2, 3, 5, 6, 13, 14, 15, 16, 17, 18, 22, 59], "ad": [2, 61, 63, 64, 65, 66, 67, 68, 72], "top": [2, 74], "your": [2, 11, 59, 60, 61, 62, 63, 68, 73, 74, 75], "here": [2, 12, 59, 60, 74], "on_raw_upd": 2, "async": [2, 63, 70, 74, 75], "def": [2, 74, 75], "my_handl": [2, 75], "print": [2, 59], "run": [2, 3, 9, 11, 62, 73, 74, 75], "on_closed_voice_chat": 2, "close": [2, 67, 68, 74], "voic": [2, 60, 68], "event": [2, 64, 75], "when": [2, 3, 13, 32, 48, 49, 50, 51, 52, 53, 54, 59, 61, 63, 68, 71, 75], "video": [2, 3, 5, 13, 23, 24, 26, 27, 28, 29, 30, 31, 35, 37, 39, 40, 45, 47, 53, 57, 58, 71, 73, 75], "exampl": [2, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 59, 60, 74, 75], "handler": [2, 11], "chat_id": [2, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 62], "on_group_call_invit": 2, "invit": [2, 13, 68], "userbot": [2, 3, 6, 15, 22, 43], "service_msg": 2, "on_kick": 2, "kick": [2, 64, 68], "channel": [2, 13, 60], "on_left": 2, "left": [2, 42, 43], "leav": [2, 5, 14, 15, 16, 18, 22], "on_participants_chang": 2, "particip": [2, 10, 35, 41, 42, 56, 59, 71, 75], "chang": [2, 5, 6, 32, 56, 61, 63, 71, 73, 75], "raw": [2, 38, 40, 55, 70], "receiv": [2, 11], "on_stream_end": [2, 75], "stream": [2, 5, 6, 13, 16, 17, 18, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 57, 58, 67, 68, 73, 74, 75], "on_update_custom_api": [2, 3], "backend": 2, "toomanycustomapidecor": [2, 3], "In": [2, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61, 62, 74], "case": [2, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61, 74], "try": [2, 3, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61], "add": [2, 63, 74], "singl": [2, 9, 19], "instanc": [2, 12, 63, 69, 73, 74], "webserv": [2, 21], "request": 2, "dict": [2, 24, 26, 27, 28, 58], "code": [2, 63, 64, 74], "switch": 2, "etc": [2, 27, 75], "return": [2, 7, 8, 9, 10, 16, 18, 59], "result": [2, 70], "ok": 2, "idl": [2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 60, 62, 74], "live": [3, 23, 67, 73], "insid": [3, 59, 74], "sub": 3, "packag": [3, 12, 59, 61], "groupcallnotfound": [3, 7, 8], "e": [3, 11], "nodejsnotinstal": 3, "node": 3, "j": [3, 64, 70], "isn": 3, "instal": [3, 5, 13, 62, 63, 66, 74], "nodejsnotrun": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "befor": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "join_group_cal": [3, 60, 62, 74], "leave_group_cal": 3, "change_volume_cal": 3, "change_stream": [3, 75], "pause_stream": 3, "resume_stream": 3, "toooldnodejsvers": 3, "version": [3, 61, 63], "too": [3, 61], "old": 3, "toooldpyrogramvers": 3, "pyrogram": [3, 62, 71, 74], "toooldtelethonvers": 3, "telethon": [3, 62, 71, 73, 74], "nomtprotoclientset": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "telegramservererror": [3, 13], "some": [3, 6, 62], "intern": [3, 21, 70, 71], "problem": 3, "pytgcallsalreadyrun": [3, 19, 20], "alreadi": [3, 13, 19, 20, 75], "get_active_cal": 3, "get_cal": 3, "noactivegroupcal": [3, 5, 6, 13, 14, 17], "No": 3, "notingroupcallerror": [3, 5, 14, 15, 16, 18, 22], "alreadyjoinederror": [3, 13], "join": [3, 5, 13, 14, 15, 16, 18, 22, 33, 41, 62, 73, 75], "invalidstreammod": [3, 5, 13], "mode": [3, 5, 13, 23, 24, 26, 27, 39, 58, 65, 74], "novideosourcefound": [3, 5, 13], "doe": 3, "invalidvideoproport": [3, 5, 13], "ffmpeg": [3, 5, 13, 24, 26, 27, 31, 58, 71, 72, 73], "sent": 3, "measur": 3, "respons": [3, 71], "noaudiosourcefound": [3, 5, 13], "audio": [3, 5, 13, 24, 25, 26, 27, 28, 29, 30, 31, 36, 38, 39, 44, 46, 51, 58, 62, 67, 71, 73], "mani": 3, "custom": [3, 21, 70, 73], "file": [5, 13, 16, 18, 24, 26, 27, 28, 38, 39, 40, 52, 58, 62], "allow": [5, 13, 14, 15, 16, 17, 18, 22, 25, 60], "str": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22, 24, 26, 27, 28, 31, 34, 38, 40, 58], "uniqu": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 35, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56], "identifi": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 35, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56], "target": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 73], "direct": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "id": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "usernam": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "inputstream": [5, 13], "input": [5, 13, 24, 26, 27, 28, 29, 30, 31, 39, 58], "descriptor": [5, 13, 24, 26, 27, 28, 29, 30, 31, 38, 39, 40, 58], "us": [5, 6, 10, 13, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 59, 60, 61, 62, 70, 73, 74], "also": [5, 13, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 59, 63], "audiopip": [5, 13, 60, 62, 74], "audioimagepip": [5, 13, 59], "audiovideopip": [5, 13, 75], "videopip": [5, 13], "without": [5, 6, 13, 14, 15, 16, 17, 18, 22, 73], "ani": [5, 6, 13, 14, 15, 16, 17, 18, 22, 34, 63, 74], "edit": [5, 6, 13, 14, 17], "filenotfounderror": [5, 13], "non": [5, 7, 8, 13, 14, 15, 16, 18, 22], "void": [5, 13], "ffmpegnotinstal": [5, 13], "pipe": [5, 13, 24, 26, 27, 58, 71], "don": [5, 13, 59], "sound": [5, 13], "correct": [5, 13], "proport": [5, 13], "1001185324811": [5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 22, 60, 62, 74, 75], "test": [5, 13], "mp4": [5, 13, 27, 60, 62, 74, 75], "featur": [6, 61, 63], "ha": [6, 75], "bug": [6, 63, 65], "sometim": 6, "volum": [6, 35], "appli": 6, "side": [6, 13], "output": 6, "175": 6, "error": [7, 8, 13, 33, 61], "On": [7, 8, 10, 16, 18], "success": [7, 8, 10, 16, 18], "client1": [7, 8, 11], "static": 9, "max": [9, 25, 68], "number": 9, "estim": 9, "consumpt": 9, "x": 9, "groupcallparticip": [10, 41, 42, 56], "block": [11, 19, 73, 74], "script": [11, 19, 62, 73, 74], "execut": [11, 74, 75], "until": 11, "signal": 11, "indefinit": 11, "order": [11, 63], "prevent": 11, "exit": 11, "": [11, 60, 62, 63, 74, 75], "background": 11, "work": [11, 73, 75], "keep": 11, "pool": 11, "worker": 11, "thread": 11, "concurr": [11, 75], "outsid": 11, "ensur": 11, "kept": [11, 61], "let": [11, 62, 74, 75], "decid": 11, "quit": 11, "onc": [11, 75], "g": 11, "ctrl": 11, "c": 11, "termin": [11, 62], "continu": [11, 62], "app1": 11, "app2": 11, "client2": 11, "app3": 11, "client3": 11, "up": [11, 61, 73, 75], "except": [12, 63, 70], "directli": [12, 73], "invite_hash": 13, "form": 13, "me": 13, "link": [13, 61, 73], "join_a": 13, "profil": 13, "stream_typ": 13, "streamtyp": [13, 23], "occur": 13, "rtmpstreamneed": 13, "rtmp": 13, "unmuteneed": 13, "mute": [13, 15, 35, 48, 71], "via": [15, 22], "wa": [16, 18, 52, 62], "time": [17, 67, 68, 71, 74, 75], "resum": [18, 50, 70], "final": 19, "stop": 19, "conveni": 19, "sequenc": 19, "It": [19, 74], "make": [19, 60, 63, 74], "less": 19, "verbos": 19, "suitabl": 19, "want": [19, 59, 62, 74], "more": [19, 62, 63, 75], "than": 19, "one": [19, 74, 75], "sinc": 19, "after": 19, "own": [19, 62, 73], "help": 21, "interfac": 21, "unmut": [22, 54, 71], "stream_mod": 23, "local_stream": 23, "live_stream": 23, "onlin": 23, "self": 23, "download": [23, 61], "pulse_stream": 23, "valu": [23, 59, 62], "imag": [24, 71, 73], "ffmpeg_paramet": [24, 26, 27, 31, 58], "addit": [24, 26, 27, 31, 58, 72, 73], "lip_sync": [24, 26, 27, 39, 58], "lip": [24, 26, 27, 39, 58], "sync": [24, 26, 27, 39, 58], "raw_head": [24, 26, 27, 58], "header": [24, 26, 27, 28, 58, 73], "stream_audio": [24, 26, 27, 28, 29, 30, 31, 39, 58], "inputaudiostream": [24, 26, 27, 28, 29, 30, 31, 39, 58], "stream_video": [24, 26, 27, 28, 29, 30, 31, 39, 58], "inputvideostream": [24, 26, 27, 28, 29, 30, 31, 39, 58], "audio_path": [24, 28], "path": [24, 26, 27, 28, 38, 40, 58], "image_path": 24, "audio_paramet": [24, 26, 27, 28, 29, 30], "audioparamet": [24, 26, 27, 28, 29, 30, 38], "highqualityaudio": [24, 26, 27, 28, 29, 30, 38], "mediumqualityaudio": [24, 26, 27, 28, 29, 30, 38], "lowqualityaudio": [24, 26, 27, 28, 29, 30, 38], "video_paramet": [24, 27, 28, 29, 31, 58], "videoparamet": [24, 27, 28, 29, 31, 40, 58], "highqualityvideo": [24, 27, 28, 29, 31, 40, 58], "mediumqualityvideo": [24, 27, 28, 29, 31, 40, 58], "lowqualityvideo": [24, 27, 28, 29, 31, 40, 58], "additional_ffmpeg_paramet": [24, 26, 27, 58, 73], "bitrat": [25, 36, 44, 46], "0": [25, 61, 63], "48000": 25, "onli": [26, 31, 38, 40, 58, 59, 61, 73], "like": [27, 61, 73, 74], "captur": [28, 29, 30, 31, 73], "screen": [28, 29, 30, 31, 35, 72, 73], "screen_info": [28, 29, 31], "obj": [28, 29, 30, 31], "media_devic": [28, 29, 30, 31], "screenmanag": [28, 29, 31], "param": [28, 29, 30, 31], "devic": [29, 30], "audio_info": [29, 30], "deviceinfo": [29, 30], "successfulli": [32, 48, 49, 50, 54, 74], "dure": [33, 52], "info": [34, 35, 41, 42, 56], "is_plai": 34, "sort": 34, "statu": [34, 56], "binary_statu": 34, "user_id": 35, "whether": [35, 59], "muted_by_admin": 35, "admin": 35, "broadcast": 35, "screen_shar": [35, 73], "share": [35, 63, 72, 73, 75], "video_camera": 35, "camera": 35, "raised_hand": 35, "hand": 35, "qualiti": [36, 37, 44, 45, 46, 47], "48k": 36, "1280x720": 37, "width": [37, 45, 47, 57], "height": [37, 45, 47, 57], "frame_r": [37, 45, 47, 57], "framer": [37, 45, 47, 57], "pcm16l": [38, 73], "format": [38, 40], "raw_video": [40, 73], "A": [41, 42, 55, 56, 60, 70, 73], "low": [44, 45], "24k": 44, "640x360": 45, "medium": [46, 47], "36k": 46, "854x480": 47, "delet": 52, "him": 56, "through": 59, "unless": 59, "requir": [59, 61, 74], "argument": [59, 75], "most": [59, 75], "manual": 59, "instanti": 59, "becaus": [59, 74], "thei": [59, 74, 75], "other": [59, 63, 73, 75], "them": [59, 75], "hint": [59, 75], "variabl": 59, "errorduringjoin": 59, "field": 59, "alwai": [59, 61], "object": 59, "could": 59, "empti": 59, "contain": [59, 73], "none": 59, "aren": 59, "shown": 59, "hasattr": 59, "To": [59, 61, 74, 75], "tell": [59, 74], "simpl": [59, 60, 73, 74], "boolean": 59, "eleg": [60, 75], "quickli": 60, "easili": 60, "document": 60, "pypi": [60, 61, 63, 66], "doc": [60, 62, 74, 75], "evostream": [60, 62, 74, 75], "com": [60, 61, 62, 74, 75], "sample_cont": [60, 62, 74, 75], "asset": [60, 62, 74, 75], "sintel1m720p": [60, 62, 74, 75], "project": 60, "webrtc": 60, "possibl": [60, 62, 68], "thank": [60, 70], "power": 60, "librari": [60, 61, 74], "evgeni": 60, "nadymov": 60, "quick": 60, "overview": [60, 62], "how": [60, 73, 75], "Being": 61, "modern": 61, "python": [61, 62], "3": [61, 63], "6": [61, 63], "system": 61, "we": [61, 62, 74], "recommend": 61, "latest": 61, "both": 61, "pip": 61, "www": 61, "org": [61, 62, 74], "manag": 61, "follow": [61, 62], "instruct": [61, 62], "pypa": 61, "io": 61, "en": 61, "support": [61, 63, 67, 68, 69, 70, 71, 72], "easiest": 61, "upgrad": [61, 63], "its": [61, 75], "stabl": 61, "pip3": [61, 62], "u": [61, 62], "py": [61, 62], "tgcall": [61, 62], "evolv": 61, "although": 61, "new": [61, 62, 63, 75], "releas": [61, 64, 65, 66, 67, 68, 69, 70, 71, 72], "publish": 61, "enough": [61, 73], "doesn": 61, "right": [61, 73], "now": [61, 74], "d": 61, "out": 61, "github": 61, "repo": 61, "develop": 61, "straight": 61, "master": 61, "branch": 61, "command": [61, 72], "note": 61, "zip": 61, "git": 61, "correctli": [61, 73], "open": [61, 62], "shell": 61, "If": [61, 74], "show": [61, 73], "good": 61, "go": [61, 62, 74], "__version__": 61, "9": [61, 63], "2": [61, 63], "next": 62, "few": 62, "step": 62, "serv": 62, "see": 62, "action": 62, "choos": [62, 75], "between": 62, "kei": 62, "my": [62, 74], "best": 62, "text": 62, "editor": 62, "replac": 62, "save": 62, "python3": 62, "login": 62, "watch": 62, "our": [62, 74], "commun": 62, "That": 62, "just": 62, "bare": 62, "scratch": 62, "surfac": 62, "introduct": 62, "ll": 62, "take": [62, 63], "depth": 62, "look": [62, 73, 75], "what": [62, 63, 75], "done": 62, "abov": 62, "feel": 62, "eager": 62, "shortcut": 62, "come": 62, "back": [62, 75], "later": 62, "learn": [62, 75], "detail": 62, "describ": 63, "each": [63, 75], "awar": 63, "backward": 63, "incompat": 63, "made": [63, 71], "break": 63, "applic": [63, 73], "advantag": 63, "improv": [63, 72], "content": 63, "v0": 63, "fix": [63, 65, 68], "1": 63, "4": 63, "bugfix": 63, "multi": 63, "7": 63, "fulli": 63, "8": 63, "For": 63, "videocal": 63, "stabil": 63, "mediadevic": 63, "febr": 64, "23": 64, "2021": [64, 65, 66, 67, 68, 69, 70, 71], "remov": 64, "browser": 64, "compil": 64, "listen": [64, 67], "mar": [65, 66, 67, 68], "10": [65, 69], "log": 65, "12": 66, "14": 67, "long": 67, "schema": 67, "126": 67, "25": 68, "hash": 68, "puls": 68, "beta": 68, "secur": 68, "customiz": 68, "get_full_chat": 68, "aug": [69, 70], "multipl": [69, 73], "modul": 69, "renew": 69, "21": 70, "stdin": 70, "stdout": 70, "instead": 70, "defin": [70, 74], "linux": [70, 72], "arm64v8": 70, "littl": 70, "nick": 70, "arm64": 70, "window": [70, 72], "maco": 70, "sept": 71, "07": 71, "same": [71, 75], "fifo": [71, 73], "remot": [71, 73], "pre": 71, "agent": 71, "asyncio": [71, 74], "futur": 71, "wait": [71, 73], "mai": 72, "01": 72, "2022": 72, "desktop": 72, "microphon": [72, 73], "udp": 72, "everi": [73, 75], "awai": 73, "provid": 73, "credenti": 73, "simpli": [73, 75], "copi": 73, "past": 73, "thing": 73, "session": 73, "name": 73, "below": 73, "treat": 73, "build": 73, "meant": [73, 75], "give": 73, "basic": 73, "idea": 73, "append": 73, "calls_with_modul": 73, "capture_m": 73, "custom_api": 73, "php": 73, "fifo_convers": 73, "multiple_cal": 73, "differ": 73, "account": 73, "piped_audio_cal": 73, "convers": 73, "With": 73, "integr": 73, "piped_image_cal": 73, "piped_video_cal": 73, "remote_piped_plai": 73, "remote_stream_with_head": 73, "screen_sharing_m": 73, "simple_cal": 73, "telethon_exampl": 73, "video_cal": 73, "disk": 73, "youtube_dl": 73, "usag": 73, "youtubedl": 73, "At": 74, "point": 74, "aim": 74, "toward": 74, "veri": 74, "examin": [74, 75], "api_id": 74, "12345": 74, "api_hash": 74, "0123456789abcdef0123456789abcdef": 74, "begin": 74, "taken": 74, "initi": 74, "test_sess": 74, "avoid": 74, "await": [74, 75], "get_event_loop": 74, "run_until_complet": 74, "creat": 74, "normal": 74, "must": 74, "put": 74, "keyword": 74, "Then": 74, "sequenti": 75, "cool": 75, "react": 75, "deal": 75, "first": 75, "As": 75, "happen": 75, "notifi": 75, "specif": 75, "state": 75, "These": 75, "match": 75, "arriv": 75, "framework": 75, "bodi": 75, "explain": 75, "charg": 75, "streamvideoend": 75, "setup": 75, "logic": 75, "should": 75, "troubl": 75, "isinst": 75, "accept": 75, "two": 75, "mix": 75, "effici": 75, "regardless": 75}, "objects": {"pytgcalls": [[1, 0, 1, "", "CustomApi"], [0, 0, 1, "", "PyTgCalls"], [23, 0, 1, "", "StreamType"], [11, 1, 1, "", "idle"]], "pytgcalls.CustomApi": [[2, 1, 1, "", "on_update_custom_api"], [21, 2, 1, "", "start"]], "pytgcalls.PyTgCalls": [[0, 3, 1, "", "active_calls"], [0, 3, 1, "", "cache_peer"], [0, 3, 1, "", "calls"], [5, 2, 1, "", "change_stream"], [6, 2, 1, "", "change_volume_call"], [7, 2, 1, "", "get_active_call"], [8, 2, 1, "", "get_call"], [9, 2, 1, "", "get_max_voice_chat"], [10, 2, 1, "", "get_participants"], [0, 3, 1, "", "is_connected"], [13, 2, 1, "", "join_group_call"], [14, 2, 1, "", "leave_group_call"], [15, 2, 1, "", "mute_stream"], [2, 1, 1, "", "on_closed_voice_chat"], [2, 1, 1, "", "on_group_call_invite"], [2, 1, 1, "", "on_kicked"], [2, 1, 1, "", "on_left"], [2, 1, 1, "", "on_participants_change"], [2, 1, 1, "", "on_raw_update"], [2, 1, 1, "", "on_stream_end"], [16, 2, 1, "", "pause_stream"], [0, 3, 1, "", "ping"], [17, 2, 1, "", "played_time"], [18, 2, 1, "", "resume_stream"], [19, 2, 1, "", "run"], [20, 2, 1, "", "start"], [22, 2, 1, "", "unmute_stream"]], "pytgcalls.StreamType": [[23, 3, 1, "", "live_stream"], [23, 3, 1, "", "local_stream"], [23, 3, 1, "", "pulse_stream"], [23, 3, 1, "", "stream_mode"]], "pytgcalls.exceptions": [[3, 4, 1, "", "AlreadyJoinedError"], [3, 4, 1, "", "GroupCallNotFound"], [3, 4, 1, "", "InvalidMtProtoClient"], [3, 4, 1, "", "InvalidStreamMode"], [3, 4, 1, "", "InvalidVideoProportion"], [3, 4, 1, "", "NoActiveGroupCall"], [3, 4, 1, "", "NoAudioSourceFound"], [3, 4, 1, "", "NoMtProtoClientSet"], [3, 4, 1, "", "NoVideoSourceFound"], [3, 4, 1, "", "NodeJSNotInstalled"], [3, 4, 1, "", "NodeJSNotRunning"], [3, 4, 1, "", "NotInGroupCallError"], [3, 4, 1, "", "PyTgCallsAlreadyRunning"], [3, 4, 1, "", "TelegramServerError"], [3, 4, 1, "", "TooManyCustomApiDecorators"], [3, 4, 1, "", "TooOldNodeJSVersion"], [3, 4, 1, "", "TooOldPyrogramVersion"], [3, 4, 1, "", "TooOldTelethonVersion"]], "pytgcalls.types": [[24, 0, 1, "", "AudioImagePiped"], [25, 0, 1, "", "AudioParameters"], [26, 0, 1, "", "AudioPiped"], [27, 0, 1, "", "AudioVideoPiped"], [28, 0, 1, "", "CaptureAVDesktop"], [29, 0, 1, "", "CaptureAVDeviceDesktop"], [30, 0, 1, "", "CaptureAudioDevice"], [31, 0, 1, "", "CaptureVideoDesktop"], [32, 0, 1, "", "ChangedStream"], [33, 0, 1, "", "ErrorDuringJoin"], [34, 0, 1, "", "GroupCall"], [35, 0, 1, "", "GroupCallParticipant"], [36, 0, 1, "", "HighQualityAudio"], [37, 0, 1, "", "HighQualityVideo"], [38, 0, 1, "", "InputAudioStream"], [39, 0, 1, "", "InputStream"], [40, 0, 1, "", "InputVideoStream"], [41, 0, 1, "", "JoinedGroupCallParticipant"], [42, 0, 1, "", "LeftGroupCallParticipant"], [43, 0, 1, "", "LeftVoiceChat"], [44, 0, 1, "", "LowQualityAudio"], [45, 0, 1, "", "LowQualityVideo"], [46, 0, 1, "", "MediumQualityAudio"], [47, 0, 1, "", "MediumQualityVideo"], [48, 0, 1, "", "MutedStream"], [49, 0, 1, "", "PausedStream"], [50, 0, 1, "", "ResumedStream"], [51, 0, 1, "", "StreamAudioEnded"], [52, 0, 1, "", "StreamDeleted"], [53, 0, 1, "", "StreamVideoEnded"], [54, 0, 1, "", "UnMutedStream"], [55, 0, 1, "", "Update"], [56, 0, 1, "", "UpdatedGroupCallParticipant"], [57, 0, 1, "", "VideoParameters"], [58, 0, 1, "", "VideoPiped"]], "pytgcalls.types.AudioImagePiped": [[24, 3, 1, "", "ffmpeg_parameters"], [24, 3, 1, "", "lip_sync"], [24, 3, 1, "", "raw_headers"], [24, 3, 1, "", "stream_audio"], [24, 3, 1, "", "stream_video"]], "pytgcalls.types.AudioParameters": [[25, 3, 1, "", "bitrate"]], "pytgcalls.types.AudioPiped": [[26, 3, 1, "", "ffmpeg_parameters"], [26, 3, 1, "", "lip_sync"], [26, 3, 1, "", "raw_headers"], [26, 3, 1, "", "stream_audio"], [26, 3, 1, "", "stream_video"]], "pytgcalls.types.AudioVideoPiped": [[27, 3, 1, "", "ffmpeg_parameters"], [27, 3, 1, "", "lip_sync"], [27, 3, 1, "", "raw_headers"], [27, 3, 1, "", "stream_audio"], [27, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAVDesktop": [[28, 3, 1, "", "stream_audio"], [28, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAVDeviceDesktop": [[29, 3, 1, "", "stream_audio"], [29, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAudioDevice": [[30, 3, 1, "", "stream_audio"], [30, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureVideoDesktop": [[31, 3, 1, "", "ffmpeg_parameters"], [31, 3, 1, "", "stream_audio"], [31, 3, 1, "", "stream_video"]], "pytgcalls.types.ChangedStream": [[32, 3, 1, "", "chat_id"]], "pytgcalls.types.GroupCall": [[34, 3, 1, "", "chat_id"], [34, 3, 1, "", "is_playing"], [34, 3, 1, "", "status"]], "pytgcalls.types.GroupCallParticipant": [[35, 3, 1, "", "muted"], [35, 3, 1, "", "muted_by_admin"], [35, 3, 1, "", "raised_hand"], [35, 3, 1, "", "screen_sharing"], [35, 3, 1, "", "user_id"], [35, 3, 1, "", "video"], [35, 3, 1, "", "video_camera"], [35, 3, 1, "", "volume"]], "pytgcalls.types.HighQualityAudio": [[36, 3, 1, "", "bitrate"]], "pytgcalls.types.HighQualityVideo": [[37, 3, 1, "", "frame_rate"], [37, 3, 1, "", "height"], [37, 3, 1, "", "width"]], "pytgcalls.types.InputAudioStream": [[38, 3, 1, "", "parameters"], [38, 3, 1, "", "path"]], "pytgcalls.types.InputStream": [[39, 3, 1, "", "lip_sync"], [39, 3, 1, "", "stream_audio"], [39, 3, 1, "", "stream_video"]], "pytgcalls.types.InputVideoStream": [[40, 3, 1, "", "parameters"], [40, 3, 1, "", "path"]], "pytgcalls.types.JoinedGroupCallParticipant": [[41, 3, 1, "", "chat_id"], [41, 3, 1, "", "participant"]], "pytgcalls.types.LeftGroupCallParticipant": [[42, 3, 1, "", "chat_id"], [42, 3, 1, "", "participant"]], "pytgcalls.types.LeftVoiceChat": [[43, 3, 1, "", "chat_id"]], "pytgcalls.types.LowQualityAudio": [[44, 3, 1, "", "bitrate"]], "pytgcalls.types.LowQualityVideo": [[45, 3, 1, "", "frame_rate"], [45, 3, 1, "", "height"], [45, 3, 1, "", "width"]], "pytgcalls.types.MediumQualityAudio": [[46, 3, 1, "", "bitrate"]], "pytgcalls.types.MediumQualityVideo": [[47, 3, 1, "", "frame_rate"], [47, 3, 1, "", "height"], [47, 3, 1, "", "width"]], "pytgcalls.types.MutedStream": [[48, 3, 1, "", "chat_id"]], "pytgcalls.types.PausedStream": [[49, 3, 1, "", "chat_id"]], "pytgcalls.types.ResumedStream": [[50, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamAudioEnded": [[51, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamDeleted": [[52, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamVideoEnded": [[53, 3, 1, "", "chat_id"]], "pytgcalls.types.UnMutedStream": [[54, 3, 1, "", "chat_id"]], "pytgcalls.types.Update": [[55, 3, 1, "", "chat_id"]], "pytgcalls.types.UpdatedGroupCallParticipant": [[56, 3, 1, "", "chat_id"], [56, 3, 1, "", "participant"]], "pytgcalls.types.VideoParameters": [[57, 3, 1, "", "frame_rate"], [57, 3, 1, "", "height"], [57, 3, 1, "", "width"]], "pytgcalls.types.VideoPiped": [[58, 3, 1, "", "ffmpeg_parameters"], [58, 3, 1, "", "lip_sync"], [58, 3, 1, "", "raw_headers"], [58, 3, 1, "", "stream_audio"], [58, 3, 1, "", "stream_video"]]}, "objtypes": {"0": "py:class", "1": "py:function", "2": "py:method", "3": "py:attribute", "4": "py:exception"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "function", "Python function"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"]}, "titleterms": {"pytgcal": [0, 2, 3, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72], "client": 0, "detail": [0, 1, 23], "custom": [1, 12], "api": [1, 12, 62], "decor": [2, 75], "customapi": [2, 3], "except": 3, "miss": 3, "librari": 3, "error": 3, "nodej": 3, "deprec": 3, "mtproto": 3, "stream": [3, 12, 23, 59], "media": 4, "devic": 4, "change_stream": 5, "change_volume_cal": 6, "get_active_cal": 7, "get_cal": 8, "get_max_voice_chat": 9, "get_particip": 10, "idl": 11, "avail": [12, 59], "method": [12, 74], "util": 12, "group": [12, 59], "call": [12, 59, 74], "audio": 12, "video": 12, "join_group_cal": 13, "leave_group_cal": 14, "mute_stream": 15, "pause_stream": 16, "played_tim": 17, "resume_stream": 18, "run": 19, "start": [20, 21, 62], "unmute_stream": 22, "type": [23, 59], "audioimagepip": 24, "audioparamet": 25, "audiopip": 26, "audiovideopip": 27, "captureavdesktop": 28, "captureavdevicedesktop": 29, "captureaudiodevic": 30, "capturevideodesktop": 31, "changedstream": 32, "errorduringjoin": 33, "groupcal": 34, "groupcallparticip": 35, "highqualityaudio": 36, "highqualityvideo": 37, "inputaudiostream": 38, "inputstream": 39, "inputvideostream": 40, "joinedgroupcallparticip": 41, "leftgroupcallparticip": 42, "leftvoicechat": 43, "lowqualityaudio": 44, "lowqualityvideo": 45, "mediumqualityaudio": 46, "mediumqualityvideo": 47, "mutedstream": 48, "pausedstream": 49, "resumedstream": 50, "streamaudioend": 51, "streamdelet": 52, "streamvideoend": 53, "unmutedstream": 54, "updat": [55, 75], "updatedgroupcallparticip": 56, "videoparamet": 57, "videopip": 58, "raw": 59, "event": 59, "input": 59, "pipe": 59, "With": 59, "ffmpeg": 59, "paramet": 59, "pre": 59, "made": 59, "welcom": 60, "first": 60, "step": [60, 74], "instal": 61, "guid": 61, "bleed": 61, "edg": 61, "verifi": 61, "quick": 62, "get": 62, "real": 62, "fast": 62, "enjoi": 62, "releas": 63, "note": 63, "v0": [64, 65, 66, 67, 68, 69, 70, 71, 72], "0": [64, 65, 66, 67, 68, 69, 70, 71, 72], "9": [64, 72], "1": 65, "2": 66, "3": 67, "4": 68, "6": 69, "7": 70, "8": 71, "exampl": 73, "basic": 74, "usag": 74, "asynchron": 74, "handl": 75, "defin": 75, "regist": 75, "handler": 75, "us": 75}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/client", "api/custom_api", "api/decorators", "api/exceptions", "api/media_devices", "api/methods/change_stream", "api/methods/change_volume_call", "api/methods/get_active_call", "api/methods/get_call", "api/methods/get_max_voice_chat", "api/methods/get_participants", "api/methods/idle", "api/methods/index", "api/methods/join_group_call", "api/methods/leave_group_call", "api/methods/mute_stream", "api/methods/pause_stream", "api/methods/played_time", "api/methods/resume_stream", "api/methods/run", "api/methods/start", "api/methods/start_custom_api", "api/methods/unmute_stream", "api/stream_type", "api/types/AudioImagePiped", "api/types/AudioParameters", "api/types/AudioPiped", "api/types/AudioVideoPiped", "api/types/CaptureAVDesktop", "api/types/CaptureAVDeviceDesktop", "api/types/CaptureAudioDevice", "api/types/CaptureVideoDesktop", "api/types/ChangedStream", "api/types/ErrorDuringJoin", "api/types/GroupCall", "api/types/GroupCallParticipant", "api/types/HighQualityAudio", "api/types/HighQualityVideo", "api/types/InputAudioStream", "api/types/InputStream", "api/types/InputVideoStream", "api/types/JoinedGroupCallParticipant", "api/types/LeftGroupCallParticipant", "api/types/LeftVoiceChat", "api/types/LowQualityAudio", "api/types/LowQualityVideo", "api/types/MediumQualityAudio", "api/types/MediumQualityVideo", "api/types/MutedStream", "api/types/PausedStream", "api/types/ResumedStream", "api/types/StreamAudioEnded", "api/types/StreamDeleted", "api/types/StreamVideoEnded", "api/types/UnMutedStream", "api/types/Update", "api/types/UpdatedGroupCallParticipant", "api/types/VideoParameters", "api/types/VideoPiped", "api/types/index", "index", "intro/install", "intro/quickstart", "releases/index", "releases/v.0.0.9", "releases/v.0.1.0", "releases/v.0.2.0", "releases/v.0.3.0", "releases/v.0.4.0", "releases/v.0.6.0", "releases/v.0.7.0", "releases/v.0.8.0", "releases/v.0.9.0", "start/examples", "start/invoking", "start/updates"], "filenames": ["api/client.rst", "api/custom_api.rst", "api/decorators.rst", "api/exceptions.rst", "api/media_devices.rst", "api/methods/change_stream.rst", "api/methods/change_volume_call.rst", "api/methods/get_active_call.rst", "api/methods/get_call.rst", "api/methods/get_max_voice_chat.rst", "api/methods/get_participants.rst", "api/methods/idle.rst", "api/methods/index.rst", "api/methods/join_group_call.rst", "api/methods/leave_group_call.rst", "api/methods/mute_stream.rst", "api/methods/pause_stream.rst", "api/methods/played_time.rst", "api/methods/resume_stream.rst", "api/methods/run.rst", "api/methods/start.rst", "api/methods/start_custom_api.rst", "api/methods/unmute_stream.rst", "api/stream_type.rst", "api/types/AudioImagePiped.rst", "api/types/AudioParameters.rst", "api/types/AudioPiped.rst", "api/types/AudioVideoPiped.rst", "api/types/CaptureAVDesktop.rst", "api/types/CaptureAVDeviceDesktop.rst", "api/types/CaptureAudioDevice.rst", "api/types/CaptureVideoDesktop.rst", "api/types/ChangedStream.rst", "api/types/ErrorDuringJoin.rst", "api/types/GroupCall.rst", "api/types/GroupCallParticipant.rst", "api/types/HighQualityAudio.rst", "api/types/HighQualityVideo.rst", "api/types/InputAudioStream.rst", "api/types/InputStream.rst", "api/types/InputVideoStream.rst", "api/types/JoinedGroupCallParticipant.rst", "api/types/LeftGroupCallParticipant.rst", "api/types/LeftVoiceChat.rst", "api/types/LowQualityAudio.rst", "api/types/LowQualityVideo.rst", "api/types/MediumQualityAudio.rst", "api/types/MediumQualityVideo.rst", "api/types/MutedStream.rst", "api/types/PausedStream.rst", "api/types/ResumedStream.rst", "api/types/StreamAudioEnded.rst", "api/types/StreamDeleted.rst", "api/types/StreamVideoEnded.rst", "api/types/UnMutedStream.rst", "api/types/Update.rst", "api/types/UpdatedGroupCallParticipant.rst", "api/types/VideoParameters.rst", "api/types/VideoPiped.rst", "api/types/index.rst", "index.rst", "intro/install.rst", "intro/quickstart.rst", "releases/index.rst", "releases/v.0.0.9.rst", "releases/v.0.1.0.rst", "releases/v.0.2.0.rst", "releases/v.0.3.0.rst", "releases/v.0.4.0.rst", "releases/v.0.6.0.rst", "releases/v.0.7.0.rst", "releases/v.0.8.0.rst", "releases/v.0.9.0.rst", "start/examples.rst", "start/invoking.rst", "start/updates.rst"], "titles": ["PyTgCalls Client", "Custom Api", "Decorators", "Exceptions", "Media Devices", "change_stream()", "change_volume_call()", "get_active_call()", "get_call()", "get_max_voice_chat()", "get_participants()", "idle()", "Available Methods", "join_group_call()", "leave_group_call()", "mute_stream()", "pause_stream()", "played_time()", "resume_stream()", "run()", "start()", "start()", "unmute_stream()", "Stream Type", "AudioImagePiped", "AudioParameters", "AudioPiped", "AudioVideoPiped", "CaptureAVDesktop", "CaptureAVDeviceDesktop", "CaptureAudioDevice", "CaptureVideoDesktop", "ChangedStream", "ErrorDuringJoin", "GroupCall", "GroupCallParticipant", "HighQualityAudio", "HighQualityVideo", "InputAudioStream", "InputStream", "InputVideoStream", "JoinedGroupCallParticipant", "LeftGroupCallParticipant", "LeftVoiceChat", "LowQualityAudio", "LowQualityVideo", "MediumQualityAudio", "MediumQualityVideo", "MutedStream", "PausedStream", "ResumedStream", "StreamAudioEnded", "StreamDeleted", "StreamVideoEnded", "UnMutedStream", "Update", "UpdatedGroupCallParticipant", "VideoParameters", "VideoPiped", "Available Types", "Welcome to PyTgCalls!", "Install Guide", "Quick Start", "Release Notes", "PyTgCalls v0.0.9", "PyTgCalls v0.1.0", "PyTgCalls v0.2.0", "PyTgCalls v0.3.0", "PyTgCalls v0.4.0", "PyTgCalls v0.6.0", "PyTgCalls v0.7.0", "PyTgCalls v0.8.0", "PyTgCalls v0.9.0", "Examples", "Calling Methods", "Handling Updates"], "terms": {"you": [0, 1, 2, 3, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 59, 60, 61, 62, 63, 73, 74, 75], "have": [0, 1, 3, 5, 11, 13, 35, 56, 62, 73, 74, 75], "enter": [0, 1], "api": [0, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 19, 20, 21, 22, 34, 35, 73, 74, 75], "refer": [0, 1], "section": [0, 1, 75], "where": [0, 1, 73], "can": [0, 1, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 22, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 61, 62, 68, 73, 74, 75], "find": [0, 1, 63], "inform": [0, 1], "about": [0, 1, 12, 34, 35, 41, 42, 56, 59, 73, 75], "The": [0, 1, 3, 11, 13, 23, 24, 26, 27, 28, 29, 30, 31, 38, 39, 40, 43, 58, 61, 62, 73, 75], "main": [0, 1, 11, 12, 19, 23, 62, 74], "class": [0, 1, 2, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 74], "all": [0, 1, 2, 3, 12, 59, 62, 63, 71], "avail": [0, 1], "method": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 59, 60, 62, 71, 75], "type": [0, 1, 2, 13, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 74, 75], "attribut": [0, 1, 33], "decor": [0, 1, 3, 19, 71], "descript": [0, 1, 73], "found": [0, 1, 3, 12], "start": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 60, 61, 68, 73, 74], "from": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 28, 29, 30, 31, 59, 60, 61, 62, 68, 73, 74, 75], "thi": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 35, 59, 60, 61, 73, 74, 75], "page": [0, 1, 2, 12, 59, 62, 73, 75], "i": [0, 1, 2, 3, 6, 7, 8, 10, 11, 12, 16, 18, 19, 21, 35, 59, 60, 61, 73, 74, 75], "which": [0, 1, 11, 12, 75], "expos": [0, 1], "high": [0, 1, 36, 37], "level": [0, 1, 35, 74], "an": [0, 1, 3, 5, 7, 8, 9, 13, 19, 20, 21, 74], "easi": [0, 1], "access": [0, 1], "import": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 59, 60, 61, 62, 74, 75], "app": [0, 1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 22, 60, 62, 74, 75], "mean": [0, 1, 23, 59, 61, 73], "interact": 0, "group": [0, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 33, 34, 35, 41, 42, 43, 56, 60, 68, 71, 73, 75], "call": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 34, 35, 41, 42, 43, 56, 60, 62, 71, 73, 75], "active_cal": 0, "get": [0, 7, 8, 9, 10, 17, 23, 60, 61, 68, 71, 75], "list": [0, 2, 10, 12, 59, 71, 73, 75], "activ": [0, 3, 7], "plai": [0, 2, 5, 6, 7, 13, 16, 17, 52, 62, 71, 73, 74], "paus": [0, 7, 16, 18, 49, 70], "groupcal": [0, 7, 8], "exist": [0, 5, 7, 8, 13, 34, 59], "cache_p": 0, "current": [0, 35], "telegram": [0, 3, 6, 13, 25, 35, 60, 62, 73, 74, 75], "user": [0, 71], "inputp": [0, 13], "p": [0, 13], "t": [0, 3, 5, 13, 59, 61, 64, 74], "ping": 0, "nodej": [0, 20, 60, 71, 75], "core": [0, 3, 9, 20, 74], "int": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 23, 25, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "is_connect": 0, "check": [0, 7, 8, 34, 59, 63], "aliv": [0, 11], "connect": [0, 20, 24, 26, 27, 28, 58], "bool": [0, 16, 18, 24, 26, 27, 34, 35, 39, 58], "paramet": [0, 1, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 73], "telegramcli": [0, 74], "pass": 0, "mtproto": [0, 2, 5, 6, 10, 13, 14, 15, 16, 17, 18, 19, 22, 60, 62, 74], "cache_dur": 0, "cach": [0, 68], "durat": 0, "full": [0, 70], "chat": [0, 2, 5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60, 67, 68, 73], "queri": 0, "overload_quiet_mod": 0, "disabl": 0, "overload": 0, "cpu": 0, "messag": [0, 2], "set": [0, 3, 5, 6, 11, 13, 23, 59, 73, 74, 75], "true": [0, 16, 18, 59], "rais": [0, 2, 3, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 32, 35, 48, 49, 50, 51, 52, 53, 54], "invalidmtprotocli": [0, 3], "invalid": [0, 3], "front": 1, "end": [1, 2, 11, 51, 53, 75], "customapi": [1, 21, 69], "pytgcal": [1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 63, 73, 74, 75], "client": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 59, 60, 62, 74, 75], "host": 1, "local": [1, 23], "http": [1, 2, 21, 23, 24, 26, 27, 28, 58, 60, 61, 62, 74, 75], "server": [1, 3, 13, 68, 70, 73], "port": 1, "option": [1, 9, 13, 24, 26, 27, 28, 39, 58, 59, 71], "bind": [1, 70, 73], "while": [2, 11], "still": [2, 11, 75], "being": 2, "bound": [2, 12], "ar": [2, 11, 12, 59, 61, 73, 74, 75], "special": [2, 12], "kind": [2, 75], "thu": 2, "deserv": 2, "dedic": 2, "abl": 2, "regist": 2, "callback": [2, 75], "function": [2, 11, 12, 74, 75], "handl": [2, 60], "updat": [2, 59, 60, 61, 70], "much": [2, 62, 75], "easier": 2, "cleaner": 2, "wai": [2, 11, 61, 75], "need": [2, 3, 21, 59, 63, 64, 74, 75], "do": [2, 3, 5, 6, 13, 14, 15, 16, 17, 18, 22, 59], "ad": [2, 61, 63, 64, 65, 66, 67, 68, 72], "top": [2, 74], "your": [2, 11, 59, 60, 61, 62, 63, 68, 73, 74, 75], "here": [2, 12, 59, 60, 74], "on_raw_upd": 2, "async": [2, 63, 70, 74, 75], "def": [2, 74, 75], "my_handl": [2, 75], "print": [2, 59], "run": [2, 3, 9, 11, 62, 73, 74, 75], "on_closed_voice_chat": 2, "close": [2, 67, 68, 74], "voic": [2, 60, 68], "event": [2, 64, 75], "when": [2, 3, 13, 32, 48, 49, 50, 51, 52, 53, 54, 59, 61, 63, 68, 71, 75], "video": [2, 3, 5, 13, 23, 24, 26, 27, 28, 29, 30, 31, 35, 37, 39, 40, 45, 47, 53, 57, 58, 71, 73, 75], "exampl": [2, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 59, 60, 74, 75], "handler": [2, 11], "chat_id": [2, 5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56, 62], "on_group_call_invit": 2, "invit": [2, 13, 68], "userbot": [2, 3, 6, 15, 22, 43], "service_msg": 2, "on_kick": 2, "kick": [2, 64, 68], "channel": [2, 13, 60], "on_left": 2, "left": [2, 42, 43], "leav": [2, 5, 14, 15, 16, 18, 22], "on_participants_chang": 2, "particip": [2, 10, 35, 41, 42, 56, 59, 71, 75], "chang": [2, 5, 6, 32, 56, 61, 63, 71, 73, 75], "raw": [2, 38, 40, 55, 70], "receiv": [2, 11], "on_stream_end": [2, 75], "stream": [2, 5, 6, 13, 16, 17, 18, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 39, 40, 48, 49, 50, 51, 52, 53, 54, 57, 58, 67, 68, 73, 74, 75], "on_update_custom_api": [2, 3], "backend": 2, "toomanycustomapidecor": [2, 3], "In": [2, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61, 62, 74], "case": [2, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61, 74], "try": [2, 3, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 19, 20, 22, 61], "add": [2, 63, 74], "singl": [2, 9, 19], "instanc": [2, 12, 63, 69, 73, 74], "webserv": [2, 21], "request": 2, "dict": [2, 24, 26, 27, 28, 58], "code": [2, 63, 64, 74], "switch": 2, "etc": [2, 27, 75], "return": [2, 7, 8, 9, 10, 16, 18, 59], "result": [2, 70], "ok": 2, "idl": [2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 60, 62, 74], "live": [3, 23, 67, 73], "insid": [3, 59, 74], "sub": 3, "packag": [3, 12, 59, 61], "groupcallnotfound": [3, 7, 8], "e": [3, 11], "nodejsnotinstal": 3, "node": 3, "j": [3, 64, 70], "isn": 3, "instal": [3, 5, 13, 62, 63, 66, 74], "nodejsnotrun": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "befor": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "join_group_cal": [3, 60, 62, 74], "leave_group_cal": 3, "change_volume_cal": 3, "change_stream": [3, 75], "pause_stream": 3, "resume_stream": 3, "toooldnodejsvers": 3, "version": [3, 61, 63], "too": [3, 61], "old": 3, "toooldpyrogramvers": 3, "pyrogram": [3, 62, 71, 74], "toooldtelethonvers": 3, "telethon": [3, 62, 71, 73, 74], "nomtprotoclientset": [3, 5, 6, 13, 14, 15, 16, 17, 18, 22], "telegramservererror": [3, 13], "some": [3, 6, 62], "intern": [3, 21, 70, 71], "problem": 3, "rtmpstreamneed": [3, 13], "rtmp": [3, 13], "pytgcallsalreadyrun": [3, 19, 20], "alreadi": [3, 13, 19, 20, 75], "get_active_cal": 3, "get_cal": 3, "noactivegroupcal": [3, 5, 6, 13, 14, 17], "No": 3, "notingroupcallerror": [3, 5, 14, 15, 16, 18, 22], "alreadyjoinederror": [3, 13], "join": [3, 5, 13, 14, 15, 16, 18, 22, 33, 41, 62, 73, 75], "unmuteneed": [3, 13], "unmut": [3, 22, 54, 71], "invalidstreammod": [3, 5, 13], "mode": [3, 5, 13, 23, 24, 26, 27, 39, 58, 65, 74], "novideosourcefound": [3, 5, 13], "doe": 3, "invalidvideoproport": [3, 5, 13], "ffmpeg": [3, 5, 13, 24, 26, 27, 31, 58, 71, 72, 73], "sent": 3, "measur": 3, "respons": [3, 71], "noaudiosourcefound": [3, 5, 13], "audio": [3, 5, 13, 24, 25, 26, 27, 28, 29, 30, 31, 36, 38, 39, 44, 46, 51, 58, 62, 67, 71, 73], "mani": 3, "custom": [3, 21, 70, 73], "file": [5, 13, 16, 18, 24, 26, 27, 28, 38, 39, 40, 52, 58, 62], "allow": [5, 13, 14, 15, 16, 17, 18, 22, 25, 60], "str": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22, 24, 26, 27, 28, 31, 34, 38, 40, 58], "uniqu": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 35, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56], "identifi": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 32, 33, 34, 35, 41, 42, 43, 48, 49, 50, 51, 52, 53, 54, 55, 56], "target": [5, 7, 8, 13, 14, 15, 16, 17, 18, 22, 73], "direct": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "id": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "usernam": [5, 6, 7, 8, 10, 13, 14, 15, 16, 17, 18, 22], "inputstream": [5, 13], "input": [5, 13, 24, 26, 27, 28, 29, 30, 31, 39, 58], "descriptor": [5, 13, 24, 26, 27, 28, 29, 30, 31, 38, 39, 40, 58], "us": [5, 6, 10, 13, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 59, 60, 61, 62, 70, 73, 74], "also": [5, 13, 24, 26, 27, 28, 29, 30, 31, 38, 40, 58, 59, 63], "audiopip": [5, 13, 60, 62, 74], "audioimagepip": [5, 13, 59], "audiovideopip": [5, 13, 75], "videopip": [5, 13], "without": [5, 6, 13, 14, 15, 16, 17, 18, 22, 73], "ani": [5, 6, 13, 14, 15, 16, 17, 18, 22, 34, 63, 74], "edit": [5, 6, 13, 14, 17], "filenotfounderror": [5, 13], "non": [5, 7, 8, 13, 14, 15, 16, 18, 22], "void": [5, 13], "ffmpegnotinstal": [5, 13], "pipe": [5, 13, 24, 26, 27, 58, 71], "don": [5, 13, 59], "sound": [5, 13], "correct": [5, 13], "proport": [5, 13], "1001185324811": [5, 6, 7, 8, 10, 13, 14, 15, 16, 18, 22, 60, 62, 74, 75], "test": [5, 13], "mp4": [5, 13, 27, 60, 62, 74, 75], "featur": [6, 61, 63], "ha": [6, 75], "bug": [6, 63, 65], "sometim": 6, "volum": [6, 35], "appli": 6, "side": [6, 13], "output": 6, "175": 6, "error": [7, 8, 13, 33, 61], "On": [7, 8, 10, 16, 18], "success": [7, 8, 10, 16, 18], "client1": [7, 8, 11], "static": 9, "max": [9, 25, 68], "number": 9, "estim": 9, "consumpt": 9, "x": 9, "groupcallparticip": [10, 41, 42, 56], "block": [11, 19, 73, 74], "script": [11, 19, 62, 73, 74], "execut": [11, 74, 75], "until": 11, "signal": 11, "indefinit": 11, "order": [11, 63], "prevent": 11, "exit": 11, "": [11, 60, 62, 63, 74, 75], "background": 11, "work": [11, 73, 75], "keep": 11, "pool": 11, "worker": 11, "thread": 11, "concurr": [11, 75], "outsid": 11, "ensur": 11, "kept": [11, 61], "let": [11, 62, 74, 75], "decid": 11, "quit": 11, "onc": [11, 75], "g": 11, "ctrl": 11, "c": 11, "termin": [11, 62], "continu": [11, 62], "app1": 11, "app2": 11, "client2": 11, "app3": 11, "client3": 11, "up": [11, 61, 73, 75], "except": [12, 63, 70], "directli": [12, 73], "invite_hash": 13, "form": 13, "me": 13, "link": [13, 61, 73], "join_a": 13, "profil": 13, "stream_typ": 13, "streamtyp": [13, 23], "occur": 13, "mute": [13, 15, 35, 48, 71], "via": [15, 22], "wa": [16, 18, 52, 62], "time": [17, 67, 68, 71, 74, 75], "resum": [18, 50, 70], "final": 19, "stop": 19, "conveni": 19, "sequenc": 19, "It": [19, 74], "make": [19, 60, 63, 74], "less": 19, "verbos": 19, "suitabl": 19, "want": [19, 59, 62, 74], "more": [19, 62, 63, 75], "than": 19, "one": [19, 74, 75], "sinc": 19, "after": 19, "own": [19, 62, 73], "help": 21, "interfac": 21, "stream_mod": 23, "local_stream": 23, "live_stream": 23, "onlin": 23, "self": 23, "download": [23, 61], "pulse_stream": 23, "valu": [23, 59, 62], "imag": [24, 71, 73], "ffmpeg_paramet": [24, 26, 27, 31, 58], "addit": [24, 26, 27, 31, 58, 72, 73], "lip_sync": [24, 26, 27, 39, 58], "lip": [24, 26, 27, 39, 58], "sync": [24, 26, 27, 39, 58], "raw_head": [24, 26, 27, 58], "header": [24, 26, 27, 28, 58, 73], "stream_audio": [24, 26, 27, 28, 29, 30, 31, 39, 58], "inputaudiostream": [24, 26, 27, 28, 29, 30, 31, 39, 58], "stream_video": [24, 26, 27, 28, 29, 30, 31, 39, 58], "inputvideostream": [24, 26, 27, 28, 29, 30, 31, 39, 58], "audio_path": [24, 28], "path": [24, 26, 27, 28, 38, 40, 58], "image_path": 24, "audio_paramet": [24, 26, 27, 28, 29, 30], "audioparamet": [24, 26, 27, 28, 29, 30, 38], "highqualityaudio": [24, 26, 27, 28, 29, 30, 38], "mediumqualityaudio": [24, 26, 27, 28, 29, 30, 38], "lowqualityaudio": [24, 26, 27, 28, 29, 30, 38], "video_paramet": [24, 27, 28, 29, 31, 58], "videoparamet": [24, 27, 28, 29, 31, 40, 58], "highqualityvideo": [24, 27, 28, 29, 31, 40, 58], "mediumqualityvideo": [24, 27, 28, 29, 31, 40, 58], "lowqualityvideo": [24, 27, 28, 29, 31, 40, 58], "additional_ffmpeg_paramet": [24, 26, 27, 58, 73], "bitrat": [25, 36, 44, 46], "0": [25, 61, 63], "48000": 25, "onli": [26, 31, 38, 40, 58, 59, 61, 73], "like": [27, 61, 73, 74], "captur": [28, 29, 30, 31, 73], "screen": [28, 29, 30, 31, 35, 72, 73], "screen_info": [28, 29, 31], "obj": [28, 29, 30, 31], "media_devic": [28, 29, 30, 31], "screenmanag": [28, 29, 31], "param": [28, 29, 30, 31], "devic": [29, 30], "audio_info": [29, 30], "deviceinfo": [29, 30], "successfulli": [32, 48, 49, 50, 54, 74], "dure": [33, 52], "info": [34, 35, 41, 42, 56], "is_plai": 34, "sort": 34, "statu": [34, 56], "binary_statu": 34, "user_id": 35, "whether": [35, 59], "muted_by_admin": 35, "admin": 35, "broadcast": 35, "screen_shar": [35, 73], "share": [35, 63, 72, 73, 75], "video_camera": 35, "camera": 35, "raised_hand": 35, "hand": 35, "qualiti": [36, 37, 44, 45, 46, 47], "48k": 36, "1280x720": 37, "width": [37, 45, 47, 57], "height": [37, 45, 47, 57], "frame_r": [37, 45, 47, 57], "framer": [37, 45, 47, 57], "pcm16l": [38, 73], "format": [38, 40], "raw_video": [40, 73], "A": [41, 42, 55, 56, 60, 70, 73], "low": [44, 45], "24k": 44, "640x360": 45, "medium": [46, 47], "36k": 46, "854x480": 47, "delet": 52, "him": 56, "through": 59, "unless": 59, "requir": [59, 61, 74], "argument": [59, 75], "most": [59, 75], "manual": 59, "instanti": 59, "becaus": [59, 74], "thei": [59, 74, 75], "other": [59, 63, 73, 75], "them": [59, 75], "hint": [59, 75], "variabl": 59, "errorduringjoin": 59, "field": 59, "alwai": [59, 61], "object": 59, "could": 59, "empti": 59, "contain": [59, 73], "none": 59, "aren": 59, "shown": 59, "hasattr": 59, "To": [59, 61, 74, 75], "tell": [59, 74], "simpl": [59, 60, 73, 74], "boolean": 59, "eleg": [60, 75], "quickli": 60, "easili": 60, "document": 60, "pypi": [60, 61, 63, 66], "doc": [60, 62, 74, 75], "evostream": [60, 62, 74, 75], "com": [60, 61, 62, 74, 75], "sample_cont": [60, 62, 74, 75], "asset": [60, 62, 74, 75], "sintel1m720p": [60, 62, 74, 75], "project": 60, "webrtc": 60, "possibl": [60, 62, 68], "thank": [60, 70], "power": 60, "librari": [60, 61, 74], "evgeni": 60, "nadymov": 60, "quick": 60, "overview": [60, 62], "how": [60, 73, 75], "Being": 61, "modern": 61, "python": [61, 62], "3": [61, 63], "6": [61, 63], "system": 61, "we": [61, 62, 74], "recommend": 61, "latest": 61, "both": 61, "pip": 61, "www": 61, "org": [61, 62, 74], "manag": 61, "follow": [61, 62], "instruct": [61, 62], "pypa": 61, "io": 61, "en": 61, "support": [61, 63, 67, 68, 69, 70, 71, 72], "easiest": 61, "upgrad": [61, 63], "its": [61, 75], "stabl": 61, "pip3": [61, 62], "u": [61, 62], "py": [61, 62], "tgcall": [61, 62], "evolv": 61, "although": 61, "new": [61, 62, 63, 75], "releas": [61, 64, 65, 66, 67, 68, 69, 70, 71, 72], "publish": 61, "enough": [61, 73], "doesn": 61, "right": [61, 73], "now": [61, 74], "d": 61, "out": 61, "github": 61, "repo": 61, "develop": 61, "straight": 61, "master": 61, "branch": 61, "command": [61, 72], "note": 61, "zip": 61, "git": 61, "correctli": [61, 73], "open": [61, 62], "shell": 61, "If": [61, 74], "show": [61, 73], "good": 61, "go": [61, 62, 74], "__version__": 61, "9": [61, 63], "2": [61, 63], "next": 62, "few": 62, "step": 62, "serv": 62, "see": 62, "action": 62, "choos": [62, 75], "between": 62, "kei": 62, "my": [62, 74], "best": 62, "text": 62, "editor": 62, "replac": 62, "save": 62, "python3": 62, "login": 62, "watch": 62, "our": [62, 74], "commun": 62, "That": 62, "just": 62, "bare": 62, "scratch": 62, "surfac": 62, "introduct": 62, "ll": 62, "take": [62, 63], "depth": 62, "look": [62, 73, 75], "what": [62, 63, 75], "done": 62, "abov": 62, "feel": 62, "eager": 62, "shortcut": 62, "come": 62, "back": [62, 75], "later": 62, "learn": [62, 75], "detail": 62, "describ": 63, "each": [63, 75], "awar": 63, "backward": 63, "incompat": 63, "made": [63, 71], "break": 63, "applic": [63, 73], "advantag": 63, "improv": [63, 72], "content": 63, "v0": 63, "fix": [63, 65, 68], "1": 63, "4": 63, "bugfix": 63, "multi": 63, "7": 63, "fulli": 63, "8": 63, "For": 63, "videocal": 63, "stabil": 63, "mediadevic": 63, "febr": 64, "23": 64, "2021": [64, 65, 66, 67, 68, 69, 70, 71], "remov": 64, "browser": 64, "compil": 64, "listen": [64, 67], "mar": [65, 66, 67, 68], "10": [65, 69], "log": 65, "12": 66, "14": 67, "long": 67, "schema": 67, "126": 67, "25": 68, "hash": 68, "puls": 68, "beta": 68, "secur": 68, "customiz": 68, "get_full_chat": 68, "aug": [69, 70], "multipl": [69, 73], "modul": 69, "renew": 69, "21": 70, "stdin": 70, "stdout": 70, "instead": 70, "defin": [70, 74], "linux": [70, 72], "arm64v8": 70, "littl": 70, "nick": 70, "arm64": 70, "window": [70, 72], "maco": 70, "sept": 71, "07": 71, "same": [71, 75], "fifo": [71, 73], "remot": [71, 73], "pre": 71, "agent": 71, "asyncio": [71, 74], "futur": 71, "wait": [71, 73], "mai": 72, "01": 72, "2022": 72, "desktop": 72, "microphon": [72, 73], "udp": 72, "everi": [73, 75], "awai": 73, "provid": 73, "credenti": 73, "simpli": [73, 75], "copi": 73, "past": 73, "thing": 73, "session": 73, "name": 73, "below": 73, "treat": 73, "build": 73, "meant": [73, 75], "give": 73, "basic": 73, "idea": 73, "append": 73, "calls_with_modul": 73, "capture_m": 73, "custom_api": 73, "php": 73, "fifo_convers": 73, "multiple_cal": 73, "differ": 73, "account": 73, "piped_audio_cal": 73, "convers": 73, "With": 73, "integr": 73, "piped_image_cal": 73, "piped_video_cal": 73, "remote_piped_plai": 73, "remote_stream_with_head": 73, "screen_sharing_m": 73, "simple_cal": 73, "telethon_exampl": 73, "video_cal": 73, "disk": 73, "youtube_dl": 73, "usag": 73, "youtubedl": 73, "At": 74, "point": 74, "aim": 74, "toward": 74, "veri": 74, "examin": [74, 75], "api_id": 74, "12345": 74, "api_hash": 74, "0123456789abcdef0123456789abcdef": 74, "begin": 74, "taken": 74, "initi": 74, "test_sess": 74, "avoid": 74, "await": [74, 75], "get_event_loop": 74, "run_until_complet": 74, "creat": 74, "normal": 74, "must": 74, "put": 74, "keyword": 74, "Then": 74, "sequenti": 75, "cool": 75, "react": 75, "deal": 75, "first": 75, "As": 75, "happen": 75, "notifi": 75, "specif": 75, "state": 75, "These": 75, "match": 75, "arriv": 75, "framework": 75, "bodi": 75, "explain": 75, "charg": 75, "streamvideoend": 75, "setup": 75, "logic": 75, "should": 75, "troubl": 75, "isinst": 75, "accept": 75, "two": 75, "mix": 75, "effici": 75, "regardless": 75}, "objects": {"pytgcalls": [[1, 0, 1, "", "CustomApi"], [0, 0, 1, "", "PyTgCalls"], [23, 0, 1, "", "StreamType"], [11, 1, 1, "", "idle"]], "pytgcalls.CustomApi": [[2, 1, 1, "", "on_update_custom_api"], [21, 2, 1, "", "start"]], "pytgcalls.PyTgCalls": [[0, 3, 1, "", "active_calls"], [0, 3, 1, "", "cache_peer"], [0, 3, 1, "", "calls"], [5, 2, 1, "", "change_stream"], [6, 2, 1, "", "change_volume_call"], [7, 2, 1, "", "get_active_call"], [8, 2, 1, "", "get_call"], [9, 2, 1, "", "get_max_voice_chat"], [10, 2, 1, "", "get_participants"], [0, 3, 1, "", "is_connected"], [13, 2, 1, "", "join_group_call"], [14, 2, 1, "", "leave_group_call"], [15, 2, 1, "", "mute_stream"], [2, 1, 1, "", "on_closed_voice_chat"], [2, 1, 1, "", "on_group_call_invite"], [2, 1, 1, "", "on_kicked"], [2, 1, 1, "", "on_left"], [2, 1, 1, "", "on_participants_change"], [2, 1, 1, "", "on_raw_update"], [2, 1, 1, "", "on_stream_end"], [16, 2, 1, "", "pause_stream"], [0, 3, 1, "", "ping"], [17, 2, 1, "", "played_time"], [18, 2, 1, "", "resume_stream"], [19, 2, 1, "", "run"], [20, 2, 1, "", "start"], [22, 2, 1, "", "unmute_stream"]], "pytgcalls.StreamType": [[23, 3, 1, "", "live_stream"], [23, 3, 1, "", "local_stream"], [23, 3, 1, "", "pulse_stream"], [23, 3, 1, "", "stream_mode"]], "pytgcalls.exceptions": [[3, 4, 1, "", "AlreadyJoinedError"], [3, 4, 1, "", "GroupCallNotFound"], [3, 4, 1, "", "InvalidMtProtoClient"], [3, 4, 1, "", "InvalidStreamMode"], [3, 4, 1, "", "InvalidVideoProportion"], [3, 4, 1, "", "NoActiveGroupCall"], [3, 4, 1, "", "NoAudioSourceFound"], [3, 4, 1, "", "NoMtProtoClientSet"], [3, 4, 1, "", "NoVideoSourceFound"], [3, 4, 1, "", "NodeJSNotInstalled"], [3, 4, 1, "", "NodeJSNotRunning"], [3, 4, 1, "", "NotInGroupCallError"], [3, 4, 1, "", "PyTgCallsAlreadyRunning"], [3, 4, 1, "", "RTMPStreamNeeded"], [3, 4, 1, "", "TelegramServerError"], [3, 4, 1, "", "TooManyCustomApiDecorators"], [3, 4, 1, "", "TooOldNodeJSVersion"], [3, 4, 1, "", "TooOldPyrogramVersion"], [3, 4, 1, "", "TooOldTelethonVersion"], [3, 4, 1, "", "UnMuteNeeded"]], "pytgcalls.types": [[24, 0, 1, "", "AudioImagePiped"], [25, 0, 1, "", "AudioParameters"], [26, 0, 1, "", "AudioPiped"], [27, 0, 1, "", "AudioVideoPiped"], [28, 0, 1, "", "CaptureAVDesktop"], [29, 0, 1, "", "CaptureAVDeviceDesktop"], [30, 0, 1, "", "CaptureAudioDevice"], [31, 0, 1, "", "CaptureVideoDesktop"], [32, 0, 1, "", "ChangedStream"], [33, 0, 1, "", "ErrorDuringJoin"], [34, 0, 1, "", "GroupCall"], [35, 0, 1, "", "GroupCallParticipant"], [36, 0, 1, "", "HighQualityAudio"], [37, 0, 1, "", "HighQualityVideo"], [38, 0, 1, "", "InputAudioStream"], [39, 0, 1, "", "InputStream"], [40, 0, 1, "", "InputVideoStream"], [41, 0, 1, "", "JoinedGroupCallParticipant"], [42, 0, 1, "", "LeftGroupCallParticipant"], [43, 0, 1, "", "LeftVoiceChat"], [44, 0, 1, "", "LowQualityAudio"], [45, 0, 1, "", "LowQualityVideo"], [46, 0, 1, "", "MediumQualityAudio"], [47, 0, 1, "", "MediumQualityVideo"], [48, 0, 1, "", "MutedStream"], [49, 0, 1, "", "PausedStream"], [50, 0, 1, "", "ResumedStream"], [51, 0, 1, "", "StreamAudioEnded"], [52, 0, 1, "", "StreamDeleted"], [53, 0, 1, "", "StreamVideoEnded"], [54, 0, 1, "", "UnMutedStream"], [55, 0, 1, "", "Update"], [56, 0, 1, "", "UpdatedGroupCallParticipant"], [57, 0, 1, "", "VideoParameters"], [58, 0, 1, "", "VideoPiped"]], "pytgcalls.types.AudioImagePiped": [[24, 3, 1, "", "ffmpeg_parameters"], [24, 3, 1, "", "lip_sync"], [24, 3, 1, "", "raw_headers"], [24, 3, 1, "", "stream_audio"], [24, 3, 1, "", "stream_video"]], "pytgcalls.types.AudioParameters": [[25, 3, 1, "", "bitrate"]], "pytgcalls.types.AudioPiped": [[26, 3, 1, "", "ffmpeg_parameters"], [26, 3, 1, "", "lip_sync"], [26, 3, 1, "", "raw_headers"], [26, 3, 1, "", "stream_audio"], [26, 3, 1, "", "stream_video"]], "pytgcalls.types.AudioVideoPiped": [[27, 3, 1, "", "ffmpeg_parameters"], [27, 3, 1, "", "lip_sync"], [27, 3, 1, "", "raw_headers"], [27, 3, 1, "", "stream_audio"], [27, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAVDesktop": [[28, 3, 1, "", "stream_audio"], [28, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAVDeviceDesktop": [[29, 3, 1, "", "stream_audio"], [29, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureAudioDevice": [[30, 3, 1, "", "stream_audio"], [30, 3, 1, "", "stream_video"]], "pytgcalls.types.CaptureVideoDesktop": [[31, 3, 1, "", "ffmpeg_parameters"], [31, 3, 1, "", "stream_audio"], [31, 3, 1, "", "stream_video"]], "pytgcalls.types.ChangedStream": [[32, 3, 1, "", "chat_id"]], "pytgcalls.types.GroupCall": [[34, 3, 1, "", "chat_id"], [34, 3, 1, "", "is_playing"], [34, 3, 1, "", "status"]], "pytgcalls.types.GroupCallParticipant": [[35, 3, 1, "", "muted"], [35, 3, 1, "", "muted_by_admin"], [35, 3, 1, "", "raised_hand"], [35, 3, 1, "", "screen_sharing"], [35, 3, 1, "", "user_id"], [35, 3, 1, "", "video"], [35, 3, 1, "", "video_camera"], [35, 3, 1, "", "volume"]], "pytgcalls.types.HighQualityAudio": [[36, 3, 1, "", "bitrate"]], "pytgcalls.types.HighQualityVideo": [[37, 3, 1, "", "frame_rate"], [37, 3, 1, "", "height"], [37, 3, 1, "", "width"]], "pytgcalls.types.InputAudioStream": [[38, 3, 1, "", "parameters"], [38, 3, 1, "", "path"]], "pytgcalls.types.InputStream": [[39, 3, 1, "", "lip_sync"], [39, 3, 1, "", "stream_audio"], [39, 3, 1, "", "stream_video"]], "pytgcalls.types.InputVideoStream": [[40, 3, 1, "", "parameters"], [40, 3, 1, "", "path"]], "pytgcalls.types.JoinedGroupCallParticipant": [[41, 3, 1, "", "chat_id"], [41, 3, 1, "", "participant"]], "pytgcalls.types.LeftGroupCallParticipant": [[42, 3, 1, "", "chat_id"], [42, 3, 1, "", "participant"]], "pytgcalls.types.LeftVoiceChat": [[43, 3, 1, "", "chat_id"]], "pytgcalls.types.LowQualityAudio": [[44, 3, 1, "", "bitrate"]], "pytgcalls.types.LowQualityVideo": [[45, 3, 1, "", "frame_rate"], [45, 3, 1, "", "height"], [45, 3, 1, "", "width"]], "pytgcalls.types.MediumQualityAudio": [[46, 3, 1, "", "bitrate"]], "pytgcalls.types.MediumQualityVideo": [[47, 3, 1, "", "frame_rate"], [47, 3, 1, "", "height"], [47, 3, 1, "", "width"]], "pytgcalls.types.MutedStream": [[48, 3, 1, "", "chat_id"]], "pytgcalls.types.PausedStream": [[49, 3, 1, "", "chat_id"]], "pytgcalls.types.ResumedStream": [[50, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamAudioEnded": [[51, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamDeleted": [[52, 3, 1, "", "chat_id"]], "pytgcalls.types.StreamVideoEnded": [[53, 3, 1, "", "chat_id"]], "pytgcalls.types.UnMutedStream": [[54, 3, 1, "", "chat_id"]], "pytgcalls.types.Update": [[55, 3, 1, "", "chat_id"]], "pytgcalls.types.UpdatedGroupCallParticipant": [[56, 3, 1, "", "chat_id"], [56, 3, 1, "", "participant"]], "pytgcalls.types.VideoParameters": [[57, 3, 1, "", "frame_rate"], [57, 3, 1, "", "height"], [57, 3, 1, "", "width"]], "pytgcalls.types.VideoPiped": [[58, 3, 1, "", "ffmpeg_parameters"], [58, 3, 1, "", "lip_sync"], [58, 3, 1, "", "raw_headers"], [58, 3, 1, "", "stream_audio"], [58, 3, 1, "", "stream_video"]]}, "objtypes": {"0": "py:class", "1": "py:function", "2": "py:method", "3": "py:attribute", "4": "py:exception"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "function", "Python function"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"]}, "titleterms": {"pytgcal": [0, 2, 3, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72], "client": 0, "detail": [0, 1, 23], "custom": [1, 12], "api": [1, 12, 62], "decor": [2, 75], "customapi": [2, 3], "except": 3, "miss": 3, "librari": 3, "error": 3, "nodej": 3, "deprec": 3, "mtproto": 3, "stream": [3, 12, 23, 59], "media": 4, "devic": 4, "change_stream": 5, "change_volume_cal": 6, "get_active_cal": 7, "get_cal": 8, "get_max_voice_chat": 9, "get_particip": 10, "idl": 11, "avail": [12, 59], "method": [12, 74], "util": 12, "group": [12, 59], "call": [12, 59, 74], "audio": 12, "video": 12, "join_group_cal": 13, "leave_group_cal": 14, "mute_stream": 15, "pause_stream": 16, "played_tim": 17, "resume_stream": 18, "run": 19, "start": [20, 21, 62], "unmute_stream": 22, "type": [23, 59], "audioimagepip": 24, "audioparamet": 25, "audiopip": 26, "audiovideopip": 27, "captureavdesktop": 28, "captureavdevicedesktop": 29, "captureaudiodevic": 30, "capturevideodesktop": 31, "changedstream": 32, "errorduringjoin": 33, "groupcal": 34, "groupcallparticip": 35, "highqualityaudio": 36, "highqualityvideo": 37, "inputaudiostream": 38, "inputstream": 39, "inputvideostream": 40, "joinedgroupcallparticip": 41, "leftgroupcallparticip": 42, "leftvoicechat": 43, "lowqualityaudio": 44, "lowqualityvideo": 45, "mediumqualityaudio": 46, "mediumqualityvideo": 47, "mutedstream": 48, "pausedstream": 49, "resumedstream": 50, "streamaudioend": 51, "streamdelet": 52, "streamvideoend": 53, "unmutedstream": 54, "updat": [55, 75], "updatedgroupcallparticip": 56, "videoparamet": 57, "videopip": 58, "raw": 59, "event": 59, "input": 59, "pipe": 59, "With": 59, "ffmpeg": 59, "paramet": 59, "pre": 59, "made": 59, "welcom": 60, "first": 60, "step": [60, 74], "instal": 61, "guid": 61, "bleed": 61, "edg": 61, "verifi": 61, "quick": 62, "get": 62, "real": 62, "fast": 62, "enjoi": 62, "releas": 63, "note": 63, "v0": [64, 65, 66, 67, 68, 69, 70, 71, 72], "0": [64, 65, 66, 67, 68, 69, 70, 71, 72], "9": [64, 72], "1": 65, "2": 66, "3": 67, "4": 68, "6": 69, "7": 70, "8": 71, "exampl": 73, "basic": 74, "usag": 74, "asynchron": 74, "handl": 75, "defin": 75, "regist": 75, "handler": 75, "us": 75}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/start/examples.html b/start/examples.html index 69c92ea..436ab0b 100644 --- a/start/examples.html +++ b/start/examples.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/start/invoking.html b/start/invoking.html index 803c51b..1c9a1ec 100644 --- a/start/invoking.html +++ b/start/invoking.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start
  • diff --git a/start/updates.html b/start/updates.html index cb37cec..c9ebfff 100644 --- a/start/updates.html +++ b/start/updates.html @@ -188,6 +188,7 @@
  • unmute_stream
  • pause_stream
  • resume_stream
  • +
  • played_time
  • start