About Hk Bot
Hk Bot is an MCP server in the Other category. It has been installed 0 times through Conduid.
Install
git clone https://github.com/abelski/hk_botThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Hk Bot
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- ·Scoped permissionsNot checked yet.
README
hk_bot
A simple Telegram bot framework for wind/kite sports updates. Commands are auto-discovered plugins — add a file to src/commands/ and it just works.
Commands
| Command | Description |
|---|---|
/woo |
WOO Leaderboard |
/windguru |
Wind Forecast |
/hkr |
HKR Reviews |
/iksurfmag |
IKSurf News |
/youtube |
Latest video from configured YouTube channels |
YouTube Russian Voiceover
When a YouTube video is fetched (via /youtube or embedded in /iksurfmag), the bot automatically:
- Extracts auto-generated English subtitles via yt-dlp
- Falls back to faster-whisper (
tinymodel, ~39 MB) if no subtitles exist - Translates the transcript to Russian via MyMemory (free)
- Generates Russian TTS audio via gTTS (free, requires internet)
- Mixes the TTS audio into the video using ffmpeg
Two messages are sent: the voiceover version (with caption) followed by the original. If any step fails, the original video is sent silently.
Project Structure
hk_bot/
├── src/
│ ├── bot.py # Entry point
│ ├── api/
│ │ ├── abstract_request_command.py # Base class for all commands
│ │ ├── abstract_cron_command.py # Mixin for scheduled commands
│ │ └── abstract_news_command.py # Mixin for news-style commands
│ └── commands/ # Auto-discovered command plugins
│ ├── woo_command.py
│ ├── windguru_command.py
│ ├── hkr_command.py
│ └── iksurfmag_command.py
├── requirements.txt
└── .env.example
Adding a Command
- Create
src/commands/my_command.py - Define a class extending
AbstractRequestCommand - Set
NAME(slash command) andLABEL, implementasync def run() -> str
from api.abstract_request_command import AbstractRequestCommand
class MyCommand(AbstractRequestCommand):
NAME = "mycommand"
LABEL = "My Command"
async def run(self) -> str:
return "Hello!"
The command is picked up automatically — no registration needed.
Setup
# System dependency (required for voiceover)
apt-get install -y ffmpeg # Debian/Ubuntu/Raspberry Pi OS
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your TELEGRAM_BOT_TOKEN
python src/bot.py
Note: On first run,
faster-whisperwill download the Whispertinymodel (~39 MB) to~/.cache/automatically. This only happens once.
Deploy
Push to main — GitHub Actions deploys automatically to the LXC container.
License
MIT
README mirrored from the source repository 5 months ago. The original is authoritative.