Skip to content
tusar404Public

About

A high-performance, Go-based Telegram music and video streaming bot powered by NTGCalls. The next-generation evolution of ArcTunesBot, featuring smart MongoDB caching, multi-platform support (YouTube, Spotify, SoundCloud), and lightning-fast playback.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

86 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎧 ArcMusic(@ArcTunesBot)

Telegram Group Calls Streaming Bot
Supports YouTube, Spotify, Jio Savan, SoundCloud and M3U8 links.

Go Version Version License: GPLv3 GitHub Stars GitHub Forks

A blazing-fast, reliable, and feature-packed Telegram bot for streaming music in group calls β€” built with Go.


πŸš€ Quick Start

☁️ Deploy to Heroku (One-Click)

Click the button below to deploy ArcMusic instantly on Heroku:

Deploy to Heroku

Prerequisites

  • Go 1.25 or higher
  • MongoDB (Cloud or Local)
  • Telegram Bot Token (from @BotFather)
  • API ID & Hash (from my.telegram.org)
  • Assistant Account Session String

Installation

  1. Clone Repository
git clone https://github.com/tusar404/ArcMusic.git
cd ArcMusic
  1. Install Dependencies
bash install.sh && go mod tidy
  1. Configure Environment
cp sample.env .env
vi .env # Edit .env with your credentials
  1. Get Required Credentials
  1. Start the Bot
go run ./cmd/app

βš™οΈ Configuration

All configuration is managed through environment variables. For detailed configuration instructions, see:

πŸ“– Configuration Guide

Key Variables

Variable Required Purpose
API_ID βœ… Telegram API ID
API_HASH βœ… Telegram API Hash
TOKEN βœ… Bot token from @BotFather
MONGO_DB_URI βœ… MongoDB connection string
STRING_SESSIONS βœ… Assistant account session strings
OWNER_ID ❌ Your Telegram User ID
LOGGER_ID ❌ Log channel ID

See Configuration Reference for complete list of variables with examples.


πŸ“š Commands

User Commands

Command Description
/play <query> Play a song from YouTube or Telegram
/queue Show current queue
/position Show current track position
/help Show command help
/ping Check bot status

Admin Commands

Command Description
/pause [seconds] Pause for playback (optionally auto-resume)
/resume Resume paused track
/mute [seconds] Mute playback (optionally auto-unmute)
/unmute Unmute playback
/seek <seconds> Seek to specific position
/loop <count> Loop track N times
/shuffle Toggle shuffle mode
/playmode Toggle Play command
/speed <speed> Set playback speed (0.5-4.0x)
/skip Skip to next track
/fplay <query> Force play (skip queue)
/clear Clear entire queue
/remove <index> Remove track from queue
/move <from> <to> Move track in queue
/jump <position> Jump to position in current track
/replay Replay current track
/addauth <user> Grant user playback permission
/delauth <user> Revoke user playback permission
/authlist List authorized users
/reload Reload admin cache
/cplay Channel play mode

Owner Commands

Command Description
/addsudo <user> Add sudo user
/delsudo <user> Remove sudo user
/sudolist List all sudo users
/maintenance <on/off> Toggle maintenance mode
/broadcast <message> Broadcast to all chats
/stats Show bot statistics
/restart Restart bot

🎼 Platform System

YukkiMusic uses a modular platform system to support multiple music sources:

Supported Platforms

  1. Telegram (Priority: 100) - Direct Telegram audio/video files
  2. YouTube (Priority: 90) - YouTube videos and playlists
  3. Youtubify API (Priority: 80) - Premium YouTube downloads
  4. Arc API (Priority: 75) - YouTube downloads via Arc API. 🌟 Register and start your free trial now! 🌟
  5. YT-DLP (Priority: 70) - Direct yt-dlp integration

How It Works

  • When you request a song, the bot checks each platform by priority
  • First valid platform handles the request
  • Automatic fallback if one method fails
  • Seamless track fetching and downloading

πŸ“– Platform System Guide - Learn how to add custom platforms


πŸ“– Documentation


πŸ—οΈ Project Structure

ArcMusic/
β”œβ”€β”€ .github/
β”‚   └── README.md              # Main documentation (you are here)
β”œβ”€β”€ cmd/app/
β”‚   └── main.go                # Entry point
β”‚   └──...
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ config/                # Configuration management
β”‚   β”‚   β”œβ”€β”€ config.go
β”‚   β”‚   └── README.md          # Detailed config guide
β”‚   β”œβ”€β”€ core/                  # Core bot logic
β”‚   β”‚   β”œβ”€β”€ clients.go         # Bot & assistant initialization
β”‚   β”‚   β”œβ”€β”€ room_state.go      # Playback state management
β”‚   β”‚   β”œβ”€β”€ chat_state.go      # Chat & assistant state
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ database/              # MongoDB operations
β”‚   β”‚   β”œβ”€β”€ bot_state.go
β”‚   β”‚   β”œβ”€β”€ chat_settings.go
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ modules/               # Command handlers
β”‚   β”‚   β”œβ”€β”€ play.go            # Play command
β”‚   β”‚   β”œβ”€β”€ queue.go           # Queue management
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ platforms/             # Music sources
β”‚   β”‚   β”œβ”€β”€ youtube.go         # YouTube integration
β”‚   β”‚   β”œβ”€β”€ telegram.go        # Telegram media
β”‚   β”‚   β”œβ”€β”€ ytdlp.go           # YT-DLP downloader
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ locales/               # Multi-language support
β”‚   β”‚   β”œβ”€β”€ en.yml            # English
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ utils/                 # Utility functions
β”‚   β”œβ”€β”€ cookies/               # YouTube cookie files
β”‚   └── ...
β”œβ”€β”€ go.mod                     # Go module definition
β”œβ”€β”€ go.sum                     # Dependency checksums

🐍 Python Version (Anon Branch)

Looking for a Python-based alternative? We have an updated version based on the popular AnonXMusic repository. This branch has been enhanced and natively implements the Arc API for downloading YouTube media.

πŸ‘‰ Access the Python (AnonXMusic) source code here!


πŸ› Bug Reports & Features

Facing issue in any feature? or Have a feature request?


🀝 Contributing

Contributions are welcome! Here's how to help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Adding a New Platform

See Platform System Guide for step-by-step instructions.


πŸ“œ License

This project is licensed under the GNU General Public License v1.0 - see the LICENSE file for details.

ArcMusic β€” A Telegram bot that streams music into group voice chats
Copyright (C) 2026 Team Arc

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

πŸ™Œ Credits

  • Maintainer: Tosu
  • Contributors: All amazing developers who contributed to this project
  • Base Repo: YukkiMusic
  • Libraries: Built with gogram, ntgcalls, and more

πŸ“ž Support


⚑ Performance Tips

  1. Use multiple assistant accounts - Distributes load across accounts
  2. Set appropriate limits - Adjust QUEUE_LIMIT and DURATION_LIMIT
  3. Enable auto-leave - Removes bot from inactive chats automatically
  4. Use MongoDB Atlas - Better performance than local MongoDB
  5. Set up logger - Monitor errors and optimize accordingly

Happy Streaming! 🎢

About

A high-performance, Go-based Telegram music and video streaming bot powered by NTGCalls. The next-generation evolution of ArcTunesBot, featuring smart MongoDB caching, multi-platform support (YouTube, Spotify, SoundCloud), and lightning-fast playback.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages