iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Language: English | Русский
Telegram bot for TikTok, Instagram, and YouTube (including Shorts). Send a link in a private chat, a group, or a group with topics, and it returns the file. TikTok and Instagram come without watermarks when the source allows it.
Live bot: t.me/next_downloader_bot
| Platform | Media | Notes |
|---|---|---|
| TikTok | Video, photo posts | Short links (vt / vm) and full URLs |
| Reels, posts, IGTV, stories URLs | Video or image carousels | |
| YouTube | Videos and Shorts | Via yt-dlp, up to 180 seconds |
Redis caches repeat URLs. There is rate limiting, English and Russian i18n, optional Sentry, and Docker Compose for the bot, Redis, and a local Telegram Bot API.
https://vt.tiktok.com/...https://www.instagram.com/reel/... or /p/...https://www.youtube.com/watch?v=... or /shorts/...Add the bot to a group or a forum (topics). Same rules in both.
To see every link, turn off Group Privacy in @BotFather or make the bot an admin. Otherwise Telegram only sends it @mentions and replies to its own messages.
If the bot is an admin with Delete messages, it removes the original link (and your @mention message, when you used one) and posts the media with a short credit: by @user from TikTok / Прислал @user из TikTok. That is the usual setup for groups and topics.
Without delete rights, it replies to the link and leaves the message in place. There is no credit line on the media, and platform post text is private-chat only.
You can also reply to a link message and @mention the bot; it downloads that link.
Support: @vchikalkin
packageManager in root package.json)yt-dlp on PATH (or set YTDLP_PATH)git clone https://github.com/vchikalkin/next-downloader-bot.git
cd next-downloader-bot
pnpm install
Create .env in the repo root (the dev script also loads .env.local):
BOT_TOKEN=
TELEGRAM_API_ROOT=https://api.telegram.org
DONATE_LINK=https://example.com
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# Optional
RATE_LIMIT=2
RATE_LIMIT_TIME=3000
SENTRY_DSN=
YTDLP_PATH=
COOKIES_FILE=
pnpm dev # apps/bot with tsx watch
pnpm build
pnpm start
Other scripts: pnpm lint, pnpm format.
| Variable | Required | Default | Description |
|---|---|---|---|
BOT_TOKEN | yes | Token from @BotFather | |
TELEGRAM_API_ROOT | yes | API base URL (https://api.telegram.org or local Bot API) | |
DONATE_LINK | yes | Shown in bot description / donate text | |
REDIS_PASSWORD | yes | Redis password | |
REDIS_HOST | no | redis | Redis host |
REDIS_PORT | no | 6379 | Redis port |
RATE_LIMIT | no | 2 | Max requests per timeframe (per user) |
RATE_LIMIT_TIME | no | 3000 | Rate-limit window in ms |
SENTRY_DSN | no | Sentry DSN | |
YTDLP_PATH | no | Path to yt-dlp binary if not on PATH | |
COOKIES_FILE | no | Path to Netscape cookies.txt (Instagram login-wall) |
Compose always mounts ./cookies.txt:/cookies.txt:ro and production deploy sets COOKIES_FILE=/cookies.txt. An empty placeholder is created on the VPS only if the file is missing — your real cookies are never overwritten by CI. Without session cookies, public Instagram still works. YouTube does not use this file.
instagram.com.cookies.txt next to compose on the server (gitignored). Local pnpm dev: set COOKIES_FILE in .env.local to your file path.When the session dies, re-export and replace the file on disk (no image rebuild).
For Compose with aiogram/telegram-bot-api, also set TELEGRAM_API_ID and TELEGRAM_API_HASH from my.telegram.org.
Local / self-host stack (builds the bot image):
# .env as above, plus TELEGRAM_API_ID / TELEGRAM_API_HASH for the Bot API container
docker compose -f docker-compose.dev.yml up -d
Production compose (docker-compose.yml) pulls ${DOCKERHUB_USERNAME}/next-downloader-bot:${BOT_IMAGE_TAG} and runs Redis, the bot, and Telegram Bot API. CI on master builds, pushes to Docker Hub, and deploys via .github/workflows/deploy.yml.
apps/bot/ Telegram bot (grammY)
src/bot/features/ welcome, download, unhandled
src/utils/ tiktok, instagram, youtube / yt-dlp, redis, extract
locales/ en.ftl, ru.ftl
packages/ shared eslint / typescript / lint-staged configs
docker-compose.yml production stack
docker-compose.dev.yml local build + ports for Redis / Bot API
Download flow: validate URL → detect platform → Redis cache hit or fetch → send media → cache file ids for the next request with the same URL.
Fluent files live in apps/bot/locales/:
en.ftl — Englishru.ftl — RussianTo add a language, add a .ftl file, wire it in apps/bot/src/bot/i18n.ts, and update the bot name / descriptions through the settings helpers if you need them on Telegram’s side.
masterIssues: github.com/vchikalkin/next-downloader-bot/issues
You are responsible for how you use downloaded media. Respect platform terms and copyright. Do not use this for content you are not allowed to copy or redistribute.
| Bot | t.me/next_downloader_bot |
| Source | github.com/vchikalkin/next-downloader-bot |
| Support | t.me/vchikalkin |
| grammY | grammy.dev |
| Telegram Bot API | core.telegram.org/bots/api |
| yt-dlp | github.com/yt-dlp/yt-dlp |
| Redis | redis.io/docs |