YTND Manager is a web-based management interface for downloading and organising YouTube audio. A built-in first-run setup wizard creates the initial admin account, and the FastAPI backend powers a sleek React frontend with real-time updates.
- Modern Web UI: A feature-rich web interface for managing songs, users, and system status with real-time updates.
- Download Queue: Add multiple URLs, process them in a batch, and see live progress updates.
- Song Management: View your entire library, search, re-download, delete, and download songs directly from the web UI.
- Automatic Tagging: Downloads are automatically tagged with metadata like title, artist, album, and cover art.
- User Management: Admin interface for managing users and their roles.
- Real-time Updates: The web UI uses WebSockets to reflect changes instantly without needing to refresh.
- Secure Authentication: Initial setup wizard plus robust username/password authentication for the web interface.
- Responsive Design: The web manager is fully responsive and works on both desktop and mobile devices.
- Dark Mode: Because your eyes deserve it.
| Area | Technology |
|---|---|
| Backend | Python, FastAPI, yt-dlp, uv |
| Frontend | React 19, TypeScript, Vite, Tailwind CSS, TanStack Query, Framer Motion |
| Database | SQLite |
- Python 3.10+
- uv for Python dependency management.
- Node.js and npm (or yarn/pnpm) for the frontend.
- FFmpeg installed and accessible in your system's
PATH.
-
Clone the repository:
git clone https://github.com/H1ghSyst3m/ytnd-bot.git cd ytnd-bot -
Configure the environment: Create a
.envfile in the root of the project by copying the example:cp .env.example .env
Now, edit the
.envfile with your details:# REQUIRED MANAGER_SECRET="change-me-to-a-random-secret" # OPTIONAL: auto-create first admin if no users exist # INITIAL_ADMIN_USERNAME="admin" # INITIAL_ADMIN_PASSWORD="changeme123" # WEBDAV_ENABLED="false"
-
Install backend dependencies: Use uv to install Python dependencies.
uv sync
-
Build the frontend: Navigate to the frontend directory, install dependencies, and build the static assets.
cd manager-frontend npm install npm run build cd ..
The build output will be placed in
manager-frontend/dist, which the backend server will serve automatically.
Run the manager server directly.
uv run ytnd-managerThis starts the FastAPI web server for the manager UI.
- On first startup, complete the initial setup wizard to create the first admin account.
- Sign in with username and password.
- Explore the dashboard, manage songs, and monitor the download queue. Admins can also manage users and view logs.
.
├── manager-frontend/ # React/Vite frontend application
│ ├── src/
│ └── package.json
├── ytnd/ # Python backend application
│ ├── __init__.py
│ ├── manager_server.py # FastAPI web server
│ ├── downloader.py # yt-dlp wrapper and file processing
│ ├── database.py # SQLite database management
│ ├── config.py # Configuration loader
│ └── ...
├── .env.example # Example environment file
└── pyproject.toml # Python project definition