- I will not give any support to your fork, so try learn by yourself!! Don't contact me because of your fault.- [1] About MissKaty
- [2] Framework Tools And Server That Used To Build This Bot
- [3] Support Creator
- [4] Notes
- [5] Features
- [6] Variables
- [7] Deploying Tutorial
- [8] Credits
- [9] Disclaimer
- [10] Changelog
MissKaty is a Telegram Bot built using Python and the Pyrogram library. Many useful features for us to use. I hope that one day this project will be discontinued, someone will continue or develop it again. I gave the name MissKaty because I like cats, a cute animal that likes to be played with and friendly with humans.
π± KuriGram
π± Python 3.13 Support
π± MongoDB as Database
π± PyKeyboard for Building Pagination
π± VS Code
π± VPS/Server With Root and Docker Support (Recommended)
For Indonesian Only and some supported country:
π± QRIS
For International Payment:
π± Paypal
If you want help me fixing some error in my bot, you can make pull request to this repo. I'm very glad if you can help me. You can also give support to me for buying server.
| FEATURE MY BOT | π± |
|---|---|
| Basic Admin Feature (ban, kick, mute, warn, promote, purge, dll) | βοΈ |
| AFK Feature | βοΈ |
| Downloader FB, TikTok and YT-DLP Support (AVC + AAC output) | βοΈ |
| YT Search & Quality Picker (resolution, bitrate, codec) | βοΈ |
| MultiLanguage Support (en-US, id-ID, id-JW, ru-RU) | βοΈ |
| NightMode | βοΈ |
| ChatBot based on OpenAI and Google Bard | βοΈ |
| MissKaty Mata | βοΈ |
| Inline Search | βοΈ |
| Sticker Tools | βοΈ |
| PasteBin Tools | βοΈ |
| WebScraper (Pahe, MelongMovie, LK21, Terbit21, Kusonime, etc) | βοΈ |
| IMDB Search With Rich Message & Multi Language Per User | βοΈ |
| GenSS From Media and MediaInfo Generator (Partial Analysis, no full download) | βοΈ |
| And Many More.. | βοΈ |
BOT_TOKEN: Create a bot using @BotFather, and get the Telegram API token.API_ID: Get this value from telegram.orgAPI_HASH: Get this value from telegram.orgDATABASE_URI: mongoDB URI. Get this value from mongoDB.LOG_CHANNEL: A channel to log the activities of bot. Make sure bot is an admin in the channel.
YT_COOKIES: Get YT cookies using https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc?pli=1 and save cookies value on github gist. Copy raw url and fill in this vars.USER_SESSION: Session string for Userbot.DATABASE_NAME: Name of the database in MongoDBPAYDISINI_KEY: Api Key PayDisiniPAYDISINI_CHANNEL_ID: Channel ID QRIS paydisiniCOMMAND_HANDLER: List of handler bot command splitted by space. Ex:. !> so bot will respond with.cmdor!cmdSUDO: User ID that have access to bot, split by spaceOPENAI_API: Create personal access token from github, and set as this env. Make sure you have access to Github Model.GOOGLEAI_KEY: Learn how to get api key from this https://ai.google.dev/tutorials/python_quickstart?hl=en.CURRENCY_API: Get API Key from https://app.exchangerate-api.com/sign-upNINE_ROUTER_API_KEY: API key for the 9Router gateway used by/aiand/askchatbot commands (OpenAI-compatible API). Required for ChatBot plugin.NINE_ROUTER_BASE_URL: 9Router base URL. Defaulthttps://9router.yasirweb.eu.org/v1(optional).NINE_ROUTER_MODEL_AI: Model used by/ai. Defaultoc/mimo-v2.5-free(optional).NINE_ROUTER_MODEL_ASK: Model used by/ask& guest mode. Defaultoc/deepseek-v4-flash-free(optional).
- Make sure minimum python version is 3.8 and max python 3.12 to prevent some errors. Check it with this command:
python3 --version
- Install all dependency that needed bot to run. (need root access, you can skip this if your server didn't have root access but some plugins will not work)
apt update -y & apt install libjpeg-dev zlib1g-dev libwebp-dev python3-pip python3-lxml git wget curl ffmpeg locales tzdata neofetch mediainfo speedtest-cli -y
- Install requirements.txt, if using python => 3.11, you need use venv when install pip package.
Python < 3.10
pip3 install -r requirements.txt
Python => 3.11
python3 -m venv nama_venv
source nama_venv/bin/activate
pip3 install -r requirements.txt
- Setting your config.env or via environment and dont forget fill all required value.
- Run Bot
bash start.sh
- Start Docker daemon (Skip if already running):
sudo dockerd
- Build Docker image:
sudo docker build . -t misskaty
- Run the image:
sudo docker run misskaty
- To stop the image:
sudo docker ps
sudo docker stop <pid>
- Install docker-compose
sudo apt install docker-compose
- Build and run Docker image or to view current running image:
sudo docker-compose up
- After editing files with nano for example (nano start.sh):
sudo docker-compose up --build
- To stop the running image:
sudo docker ps
sudo docker-compose stop <pid>
- Thanks To Allah Swt.
- Thanks To Dan For Pyrogram Library as founder of pyrogram.
- Thanks To Mayuri For Pyrofork Library as owner of pyrofork library.
- Thanks To TeamDrivecok and SecretGroup TBK in Telegram.
- Thanks To The Hamker Cat For WilliamButcher Code.
- Thanks To Team Yukki For AFK Bot Code.
- Thanks To Wrench For Some Code.
- Thanks To AmanoTeam For MultiLanguage Template.
- And All People Who Help Me In My Life... If your code used in this repo and want to give credit please open issue..
Licensed under GNU AGPL 2.0.
WARNING: Selling The Codes To Other People For Money Is Strictly Prohibited. Or i will stop this project forever.
Built on top of the Kurigram fork (KurimuzonAkuma/pyrogram), which adds rich-message support (InputRichMessage, rich_message on send/edit) and Client.get_file with offset/limit for partial downloads.
Refactor & performance
- Moved root-level
utils.pyandweb/webserver.pyinto themisskatypackage (helper/,core/) so everything lives under one package. - Single shared MongoDB connection (singleton + lazy init) instead of multiple
AsyncMongoClientinstances; removed circular imports betweendatabaseandmisskaty. - Bootstrapping moved to
misskaty/core/bootstrap.py; yt-dlp cookies are fetched asynchronously at startup (no more blockingrequests.geton import).
IMDb
- Results are now delivered as rich messages via edit (
edit_message_text+rich_message) instead of delete-then-send. - Merged duplicated
imdbres_id/imdbres_encallbacks into one builder with per-locale labels; fixed hidden-layout fields and mixed-language labels.
Admin
- Fixed real bugs (
contextlibmissing import,FloodWait e.x,time_converterreturning aMessage, wrong locale key) and hardened edge cases (channel replies, deleted accounts, missingfrom_user). - Messages restyled with emoji + separators in all 4 locales.
YT-DLP
- Progress no longer jumps backwards on merged formats; shows elapsed time, ETA, speed and a monospace progress bar; detects the "Finalizing" phase.
- Captions use monospace blocks and mention the requester; title whitespace is normalized (no more double line breaks).
/ytdownnow requires a URL argument or a replied message containing a URL.- Video output prefers H.264 (AVC) video + AAC audio (fallback to best available), audio extraction uses AAC.
MediaInfo
- Partial analysis: only the first/last 8 MiB are downloaded (
upload.getFileoffset/limit), so 2β4 GB files are analyzed in seconds; falls back to a full download automatically when the partial result is incomplete.
- Fix: use plain emoji on nightmode button (premium-safe).
