Stations2

Stations2

by bmgjet · updated 18 days ago · 9 downloads · ☆☆☆☆☆ no reviews
Stations2 banner

Stations2 allows players and admins to play custom MP3 streams and YouTube audio through Rust's Boomboxes and cassette recorders.

# Stations2

Stations2 allows players and admins to play custom MP3 streams and YouTube audio through Rust's Boomboxes and cassette recorders.

⚠️ Advanced Users Only
>
Stations2 is intended for server owners who are comfortable managing external dependencies, server permissions, command-line applications and Linux/Windows dedicated servers.
>
Supported operating systems: Windows and Linux/Ubuntu dedicated servers.

Features

* 🎵 Play direct MP3/audio URLs through Rust Boomboxes
* 📺 Download audio from YouTube URLs
* 📼 Automatically convert YouTube audio into Rust cassette tapes
* 🔊 Supports deployed and portable Boomboxes
* 📻 Supports cassette recorders
* 🎛️ In-game UI for entering URLs
* 📦 Automatically manages multi-part cassette sets
* 👤 Per-player cassette limits
* 🔐 Separate permissions for MP3 and YouTube functionality
* 🛠️ RCON/admin console commands
* 🍪 Optional YouTube cookies support
* 🔄 Automatically downloads/updates required yt-dlp
* 🧹 Automatically detects and cleans up incomplete cassette sets
* 🗺️ Custom cassette data is reset on map wipe

Important: YouTube Cassettes

Rust cassette audio is limited to 30 seconds per cassette.

Stations2 works around this limitation by splitting longer YouTube audio into multiple cassette tapes and playing them sequentially. If any cassette belonging to a set is lost or removed, the complete audio will no longer be usable.

The default maximum YouTube video length is 600 seconds (10 minutes) and the default player limit is 3 cassette sets. Both are configurable.

Dependencies

Stations2 requires external applications to process YouTube audio:

* yt-dlp — YouTube/media downloader
* FFmpeg — Audio conversion and processing
* Deno — JavaScript runtime required by yt-dlp to solve YouTube's current signature/challenge system
* Node.js / npm — Required for the plugin's Deno installation process

The plugin automatically downloads yt-dlp and FFmpeg when they are missing. On Linux, it also sets the required executable permissions.

Deno is specifically required because yt-dlp now uses its EJS system to solve YouTube challenges; without it, audio downloads can fail because yt-dlp may only receive formats that do not contain usable audio.

Windows

Stations2 automatically manages:

* yt-dlp.exe
* ffmpeg.exe
* Required FFmpeg DLL files
* Deno

The plugin detects Windows automatically and configures the appropriate binaries.

Linux / Ubuntu

Stations2 supports Linux dedicated servers and automatically uses Linux versions of:

* yt-dlp
* ffmpeg

It also applies executable permissions to the required files and its working directory.

Permissions

| Permission | Description |
| ------------------- | ----------------------------------- |
| Stations2.MP3 | Allows the player to use /mp3 |
| Stations2.YT | Allows the player to use /yt |
| Stations2.NoLimit | Removes the player's cassette limit |

All three permissions are registered automatically when the plugin loads.

Chat Commands

/mp3

Opens the MP3 URL interface.

Players can look at a deployed Boombox or hold a portable Boombox and enter an audio URL. The player must have the Stations2.MP3 permission.

/yt

Opens the YouTube downloader interface.

Enter a YouTube URL and Stations2 will download and convert the audio into cassette parts. Requires Stations2.YT.

Console / RCON Commands

stationsset <NetID> <URL>

Directly changes the audio URL of a Boombox by its NetID.

stationstapes <URL> <NameOrIDorIP>

Creates YouTube cassette audio and gives the resulting cassette set to a player.

stationslist

Lists all stored cassette sets.

stationsremove <Index>

Removes a cassette set and its associated cassette items.

These commands are restricted to admins/RCON as appropriate.

Configuration

Stations2 provides configuration options including:

* CassetteLimit — Maximum cassette sets per player
* MaxVideoLength — Maximum YouTube video length
* AutoClean — Automatically remove incomplete cassette sets
* PublicCookies — Use a remote cookies file
* PublicCookiesURL — Remote cookies file location
* CookiesPath — Local cookies path
* UseExtraArgs — Enable additional yt-dlp arguments
* ExtraArgs — Additional yt-dlp arguments
* TimeOut — YouTube/FFmpeg processing timeout
* MessageTimeout — Queue status message interval
* Cooldown — Command cooldown
* TapeCooldown — Cassette removal cooldown

Installation

1. Install Oxide/uMod on your Rust dedicated server.
2. Place Stations2.cs into your oxide/plugins directory.
3. Start or restart the server.
4. Stations2 will detect whether the server is running Windows or Linux.
5. Required yt-dlp and FFmpeg binaries will be downloaded automatically.
6. Ensure Node.js/npm and Deno are available so the YouTube processing dependency can be installed.
7. Configure permissions and the generated Stations2.json configuration file.
8. Grant players the required permissions.

Stations2 creates its working data under the Oxide data directory in a Stations folder.

⚠️ Advanced Server Setup

This plugin is not intended as a simple plug-and-play plugin for inexperienced server owners.

You should be comfortable with:

* Windows or Ubuntu/Linux dedicated servers
* Command-line applications
* Node.js/npm
* Deno
* yt-dlp
* FFmpeg
* File permissions on Linux
* Oxide/uMod permissions
* RCON/server console commands
* Troubleshooting external media downloads

YouTube frequently changes its delivery and anti-bot systems, so successful YouTube playback can depend on yt-dlp, Deno and/or cookies being correctly configured.

Video