Перейти к содержимому
Mineforgian

URL Custom Discs

A plugin that allows you to create and play custom music discs from YouTube URLs or MP3 files on your Minecraft server with real-time updates for players.

Загрузки
23K
Подписчики
83
Обновлён
3 декабря 2025 г.
Лицензия
CC-BY-NC-4.0

Опубликован 18 марта 2025 г.

Исходный код

THE INSTALLATION INSTRUCTIONS ARE AT THE BOTTOM OF THE PAGE AND TAKE 5 MINUTES.

About

This plugin, along with a server resource pack, allows you to create and play custom music discs from YouTube URLs or MP3 files on your Minecraft server, with real-time updates for players.

Once installed, everything is done in-game, and there's no need to manually edit the resource pack files to add or remove custom discs.

The plugin supports Minecraft's spatial audio for music, but you can also play it in stereo.

Additionally, vanilla commands such as /playsound and /stopsound work with the custom music, so you do not need to use a disc in a jukebox.

Usage

Create a custom disc
1. Use the "create" command and paste your URL 3. All logged-in players receive the updated server resource pack containing the created custom disc
2. Wait for the track to be downloaded, converted, and added to the server resource pack 4. The custom disc is given to you, enjoy the music!
create_custom_disc play_custom_disc

Commands Overview

Display the list of commands:
/customdisc help

Create a custom music disc from a YouTube URL or local MP3 file:
/customdisc create <URL OR audio_name.mp3> <disc_name> <mono/stereo>

  • mono: enables spatial audio (as when played in a jukebox)
  • stereo: plays the audio in the traditional way

Instructions for local MP3 files (admin-only):

  • Place your MP3 file inside the audio_to_send folder in the plugin directory.
  • Rename the MP3 file to a simple name with no spaces and no special characters.
  • Run the create command with the audio_name.mp3.
    • Don't forget to include the .mp3 extension in the audio_name.mp3 field.

Give yourself a custom music disc:
/customdisc give <disc_name>

Show the list of custom music discs (click a disc name to autofill the give command):
/customdisc list

Delete a custom music disc:
/customdisc delete <disc_name>

Show details of the custom music disc you're holding (useful for debugging):
/customdisc info

Update Deno and yt-dlp dependencies:
/customdisc updatedep

Vanilla command to play a custom track (can be used with coordinates):
/playsound minecraft:customdisc.<disc_name> ambient @a ~ ~ ~ 1 1

Vanilla command to stop a custom track:
/stopsound @a * minecraft:customdisc.<disc_name>

Usage Modes

The plugin offers three modes of use, depending on your setup and preferences:

  • API Mode (default):
    Uses a dedicated remote API to manage custom discs, the resource pack, and dependencies. Ideal for quick and easy setup, but with some limitations on the resource pack and audio files.
  • Self-Hosted Mode:
    For advanced users who prefer to host and manage everything themselves. You can bypass the API and configure the plugin manually using your own setup and HTTP server.
  • Edit-Only Mode:
    Allows you to update the resource pack locally and duplicate it to a custom path with a custom name. Useful if you already host another resource pack and want to merge it with the URLCustomDiscsPack.zip.

API Mode Resource Pack Limitations

To minimize storage space and ensure fast downloads, the resource pack has the following limitations:

  • Up to 10 custom discs can be included in the resource pack at the same time.
  • Each custom disc is limited to a maximum duration of 5 minutes.
  • The resource pack size is limited to 80 MB (more than enough).
  • If no activity (adding or deleting a custom disc) occurs for 3 months, the token and resource pack will be automatically deleted to free up space.

Self-Hosted Mode Requirements

You must provide a personal HTTP server to host the resource pack. Depending on whether your Minecraft server and HTTP server are on the same machine or on separate machines, the HTTP server must support:

  • Local access: The plugin can update the resource pack via an absolute path.
  • Online access: The plugin can download and upload the resource pack using HTTP requests.
  • Player access: Players must be able to download the resource pack and receive real-time updates for custom music discs.

Documentation

This Modrinth page focuses on the default API Mode, which is the recommended setup for most users.
You can also find this documentation on the URLCustomDiscs GitHub repository.

If you want to use the Self-Hosted Mode or the Edit-Only Mode instead, please refer to the dedicated documentation from the URLCustomDiscs GitHub repository: Self-Hosted and Edit-Only Modes documentation

For more details, you may explore the API documentation, source code and architecture in the URLCustomDiscsAPI GitHub repository.

Audio Download Options

Warning: YouTube may block my API server in the future (never happened). Please notify me via Discord if this occurs, so I can resolve it.

In the meantime, you have two alternative options:

  • Use the auto-installed yt-dlp dependency (Minecraft server-side download)
    The plugin uses the yt-dlp dependency to download the audio from the YouTube URL into the plugin folder and then send it to the API.

    This method is unlikely to work on shared Minecraft hosting providers, such as Shockbyte, as they often do not allow execution of yt-dlp, or the IP ranges of those servers are likely already banned by YouTube.

  • Manually download the MP3 file (admin-only, 100% reliable)
    If you don't mind downloading the audio as an MP3 file, use a website like noTube to download it manually. Then, place the MP3 file directly into the audio_to_send folder inside the URLCustomDiscs plugin directory.
    After that, use the appropriate command to create a custom disc with this MP3 file.

    This method only works for Minecraft server admins, as it requires access to the server’s file system.

Dependencies

Optional plugin

ProtocolLib [Download]: used to display a custom "Now Playing" toast when a custom disc is inserted into a jukebox

External Tools

License & Attribution

The plugin automatically installs and uses the following tools (Deno and yt-dlp are also kept up to date):

Tool Usage

  • Deno is used by yt-dlp to interpret YouTube’s JavaScript and decrypt its signature cipher, which is required to extract and download audio data from YouTube.
  • yt-dlp downloads MP3 audio files from YouTube URLs.
  • FFmpeg converts MP3 files to Ogg Vorbis format for Minecraft compatibility.

Installation

This plugin requires a brief setup to ensure players automatically download the resource pack when they join the Minecraft server.

Steps to install with the API Mode (default mode):

  1. Download the URLCustomDiscs.jar plugin into your Minecraft server's plugins folder.
  2. Start your Minecraft server so the plugin generates the plugins/URLCustomDiscs folder containing a config.yml file.
  3. Open plugins/URLCustomDiscs/config.yml and set the following field to pluginUsageMode: api
  4. In the same config file, locate the REMOTE API MODE CONFIGURATION section.
    Important fields include:
    • apiBaseURL: the base URL of the remote API
    • token: initially empty, automatically generated after creating your first custom disc
    • apiDownloadResourcePackURL: initially empty, automatically generated after creating your first custom disc
    • localYtDlp: defines whether to use the auto-installed yt-dlp tool in the plugin folder to download audio files from YouTube directly on your own server instead of relying on the external API. This field is set to false by default.
  5. Create your first custom disc in-game using the /customdisc create <URL OR audio_name.mp3> <disc_name> <mono/stereo> command.
    This action will generate your unique token and the apiDownloadResourcePackURL.
  6. Copy the generated apiDownloadResourcePackURL and paste it into your Minecraft server's server.properties file under the resource-pack= filed, for example:
    resource-pack=https://your-generated-apiDownloadResourcePackURL.zip
  7. Restart your Minecraft server to apply the resource pack settings.
  8. (Optional) To force players to download the resource pack, set require-resource-pack=true in server.properties and restart your Minecraft server.
  9. (Optional fallback) In the extremely rare case that the API server gets blocked by YouTube, if you don’t want to manually download MP3 files and would prefer to keep using YouTube URLs, you can configure the plugin to use the auto-installed yt-dlp dependency directly on your Minecraft server.
    To do this, set the following field in the config.yml file: localYtDlp: true, then restart your Minecraft server.

    This option likely won’t work on most shared Minecraft hosting providers. For more details, refer to the Audio Download Options section.

  10. (Optional) Download the ProtocolLib.jar plugin into your Minecraft server's plugins folder for custom "Now Playing" toasts, then restart your Minecraft server.

Support & Community

This plugin relies on a remote API and resource pack hosting maintained by me.
If you'd like to support the project and help cover server and storage costs, please consider contributing via Ko-fi. Thank you! ❤️

For any questions, help, or suggestions, feel free to join the Discord server!

Disclaimer

Please note that it is the sole responsibility of each user to comply with applicable copyright laws and the terms of service of any music provider when using this plugin. The developer of this plugin does not assume any liability for unauthorized use or violations of such laws and regulations.

Ченджлог

2.7.2Релиз26.1.1, 26.1.2, 26.2 · 3 декабря 2025 г.

Update

Bug fixed: The sound from custom discs now correctly stops when they are removed from jukeboxes in Vanilla and custom dimensions.
It now retrieves the internal name of the world.

To Update

If you already have the plugin installed on your server, just replace it with the new version.

2.7.1Релиз1.21.8, 1.21.9, 1.21.10 · 2 декабря 2025 г.

Update

Bug fixed: The sound from custom discs now correctly stops when they are removed from jukeboxes in the Nether and End dimensions.

To Update

If you already have the plugin installed on your server, just replace it with the new version.

2.7.0Релиз1.21.8, 1.21.9, 1.21.10 · 26 ноября 2025 г.

Updates

Improved platform detection and system compatibility for Self-Hosted and Edit-Only modes:
The plugin now detects the exact OS, CPU architecture and C library (musl libc or glibc) and downloads matching binaries (Deno, yt-dlp, FFmpeg).

Currently supported platforms:

  • Windows x64
  • Windows ARM64
  • Linux x64 (glibc)
  • Linux ARM64 (glibc)
  • Linux ARMv7 (glibc)
  • Linux x64 (musl libc)
  • Linux ARM64 (musl libc)

Deno requirement for YouTube URL downloads:
yt-dlp now requires Deno to interpret YouTube's JavaScript and decrypt its signature cipher, which is necessary to extract and download audio data from YouTube. The plugin will automatically download the Deno binary and keep it up to date.

The README and SELF-HOSTED_AND_EDIT-ONLY_MODES_INSTALLATION files have also been updated with new instructions.

To Update

If you already have the plugin installed on your server, just replace it with the new version.

2.6.1Релиз1.21.6, 1.21.7, 1.21.8 · 8 сентября 2025 г.

Updates

Bug fixed: Playlist downloading is disabled. If you provide a URL that is part of a playlist, only the specific video you linked will be downloaded, not the entire playlist.

The Self-Hosted Mode has been entirely rebuilt and comes with new features:

  • Bug fixed: There are no more restrictions on the resource pack and audio files.
  • yt-dlp and FFmpeg are now automatically installed (yt-dlp is also kept up to date).
  • This usage mode is now fully compatible with Minecraft versions 1.21 to 1.21.8 (latest available).

The disc management system with jukeboxes has been entirely rebuilt to simulate vanilla-like usage of custom discs and now allows:

  • Bug fixed: Extracting vanilla discs from jukeboxes.
  • Inserting and "physically" (drop) removing custom discs from jukeboxes
  • Dropping the custom disc when the jukebox is broken
  • Placing blocks on a jukebox containing a custom disc while sneaking, without extracting the disc
  • Preventing a custom disc from being removed if the player sneaks and right-clicks the jukebox while holding an item
  • Displaying a custom "Now Playing" toast when a custom disc is inserted into a jukebox (requires the ProtocolLib plugin, but not mandatory for the URLCustomDiscs plugin to work)

Note: A vanilla behavior workaround was required to avoid playing the Disc 13 sound that serves as the model for custom discs. Inserting a custom disc into a jukebox is only a functional illusion and may not be compatible with mods that, for example, display the physically inserted disc.

For users who already have an HTTP server serving another resource pack and a plugin that can merge it, a third usage mode has been added. The Edit-Only Mode allows you to create and delete custom discs in a local URLCustomDiscsPack.zip resource pack, which will be duplicated in a custom path and renamed with a custom name.

The README and plugin's config.yml files have also been updated with new instructions.

Warning

If you already have installed the plugin on your server and want to use this new version, please make sure to back up your token and apiDownloadResourcePackURL from config.yml.
Then, delete config.yml, install the new version of the plugin, start your Minecraft server so it regenerates the file, and paste your saved token and apiDownloadResourcePackURL back into it.
Restart your server to apply changes. Your previously created discs will not be deleted!

2.3.0Релиз1.21.6, 1.21.7, 1.21.8 · 7 августа 2025 г.

Updates

The plugin is now fully compatible with Minecraft versions 1.21 to 1.21.8 (latest available).
It now automatically handles resource pack generation for both the old format (1.21–1.21.3) and the new format introduced in 1.21.4+.

The README.md file has also been updated with the latest compatibility notes.

Warning

Resource packs generated for Minecraft 1.21 to 1.21.3 are not compatible with versions 1.21.4 and above due to internal changes in how Minecraft handles assets.

If you're updating your server from 1.21-1.21.3 to 1.21.4 or later, your current resource pack will no longer work properly.

There’s no need to save your old token or downloadPackURL.
Instead, reinstall the plugin from scratch: delete its folder, install the latest version, and follow the setup steps again.

2.2.0Релиз1.21, 1.21.1 · 4 августа 2025 г.

Updates

YouTube has started blocking audio downloads via yt-dlp by banning the server where the API is hosted.
To continue creating custom discs, two new options are now available:

  • Use yt-dlp locally on your Minecraft server: Set localYtDlp: true in config.yml to enable this option.
    The plugin will automatically download and keep yt-dlp up to date.

    When using this method:

    • The audio will be downloaded as an .mp3 file to the audio_to_send folder.
    • Then, the audio is sent to the API server to be processed and added to your server resource pack.
    • A new command /customdisc update is now available to manually force an update of yt-dlp without restarting the server.

This method is unlikely to work on shared Minecraft hosting providers (like Shockbyte), as they often block external tool execution (like yt-dlp) or their IP ranges are already banned by YouTube (just like my API server currently is).

  • Manually upload .mp3 files to the audio_to_send folder: You can now manually download your audio as .mp3 and place it in the audio_to_send folder.
    Make sure the file name is simple (no spaces or special characters).

    When creating a custom disc, instead of providing a URL, simply use the file name of your .mp3 (including the ".mp3" extension).

This method only works for Minecraft server admins, as it requires access to the server file system.

The README.md file has been updated with new instructions.

Warning

If you have already installed the plugin on your server and want to use this new version, please make sure to back up your token and downloadPackURL from config.yml.
Then, delete config.yml, install the new version of the plugin, start your Minecraft server so it regenerates the file, and paste your saved token and downloadPackURL back into it.
Your previously created discs will not be deleted!

2.0.0Релиз1.21, 1.21.1 · 2 августа 2025 г.

Updates

This update makes setting up and using the plugin much... MUCH easier, whether you're running a local Minecraft server or using a shared Minecraft hosting provider.

The plugin now links your Minecraft server to a remote API and to your resource pack stored on a storage space via a token.

Your Minecraft server simply sends requests to the API with parameters such as your token, the URL of your audio, and so on.

All operations such as installing and updating yt-dlp and FFmpeg dependencies, downloading, modifying, and uploading your resource pack are now fully handled by the API.

You no longer need to install and configure an HTTP server or be limited by shared Minecraft hosting providers that block the execution of dependencies.

The README.md documentation has been revamped. The installation now takes just 10 lines and less than 5 minutes!
However, you can still use your own custom setup if you prefer the old way. The documentation for self-hosted installation is now available here: SELFHOSTEDINSTALLATION.md

Warning

If you have already installed the plugin on your server and want to use this new version, please delete the URLCustomDiscs plugin folder before starting your server with the new version.

1.0.2Релиз1.21, 1.21.1 · 30 марта 2025 г.

Updates

  • Online-hosted Minecraft servers now supported for Windows and Linux
  • README updated
  • Fixed bug where yt-dlp and FFmpeg could start simultaneously
  • Improved log management

Warning

  • yt-dlp and FFmpeg must now be installed in your_mc_server_folder/plugins/URLCustomDiscs/
  • If you have already installed the plugin and want to update it with this new version, delete the your_mc_server_folder/plugins/URLCustomDiscs folder that contains the plugin files.

Комментарии

Загружаем…