MediaAdvertise
MediaAdvertise is a modern Paper/Spigot/Bukkit 1.20+ plugin designed for Minecraft servers that want to promote YouTube content.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
MediaAdvertise
📢 MediaAdvertise
Paper/Spigot/Bukkit 1.20+ plugin is a modern Paper/Spigot/Bukkit 1.20+ plugin designed for Minecraft servers that want to promote YouTube content (videos and livestreams) directly in-game and on Discord in a stylish, automated, and fully configurable way.
Perfect for content creator servers, communities, and networks that want to boost engagement and promote media professionally.

✨ Key Features
📌 Main Command
```/ad <video|livestream> <youtube_link>```
Allows players to promote a YouTube video or livestream directly into server chat and Discord.
🎬 YouTube Promotion System
- ✔ Supports videos and livestreams - ✔ Automatic content type detection (video or live stream) - ✔ Advanced YouTube link validation - ✔ Duplicate prevention (same video cannot be promoted twice) - ✔ Link normalization (short URLs → full YouTube format) - ✔ Supported formats: - youtube.com/watch?v= - youtu.be/ - youtube.com/live/
💬 In-Game Chat Announcements (Modern & Interactive)
All announcements are displayed using the Adventure API (MiniMessage) with a clean, modern broadcast style.
🔴 Livestream Format
- 🔴 LIVE NOW (bold red header) - Player name - Stream title (auto-fetched if available) - Clickable WATCH NOW link - Player head displayed in message

▶️ Video Format
- ▶️ NEW VIDEO (bold purple header) - Creator name - Video title (auto-fetched via YouTube API / oEmbed) - Clickable WATCH NOW link - Player head displayed in message

🎨 Chat Design
MiniMessage formatting support HEX color customization Hover text: "Click to watch" Clean broadcast-style layout Global server-wide announcements Optional PlaceholderAPI support
🔔 Discord Integration
Automatically sends a Discord webhook embed when content is promoted:
- 📌 Clickable video title - 🎨 Embed colors: - 🔴 red for livestreams - 🟣 purple for videos - 📺 Content type label (LIVE NOW / NEW VIDEO) - 👤 Creator name - 🔗 Watch link button - 🖼 YouTube thumbnail preview (if available) - ⏱ Automatic timestamp

⚙️ Configuration (config.yml)
Fully customizable settings:
- Webhook URL - Cooldowns - HEX colors (video/live) - Chat messages (MiniMessage) - Enable/disable Discord integration - Title fetching toggle - Blocked links list - Sound effects - Global broadcast settings
🌐 Language Support (language.yml)
Fully customizable messages including:
- Success messages - Error messages - Cooldown messages - LIVE NOW / NEW VIDEO labels - WATCH NOW text
🔐 Permissions
- ```media.advertise``` → Allows promoting videos - ```media.bypass.cooldown``` → Bypass cooldown restrictions - ```media.admin``` → Access admin commands
🛠 Admin Commands
```/mediareload``` Reloads configuration files without restarting the server.
Aliases:
- ```/madreload``` - ```/mareload```
🧠 Technical Features
- Async API calls (non-blocking) - Clean modular architecture - Persistent storage (YAML or SQLite) - YouTube metadata fetching (oEmbed / Data API v3) - Input sanitization & validation - Duplicate tracking system - Cooldown system per player - Full logging system
🚀 Requirements
- Minecraft Paper/Spigot/Bukkit 1.20+ - Java 17+ - Optional: PlaceholderAPI
🧩 Extra Features
- Global broadcast system - Player head display in chat - Hover interactions - Configurable sounds - Fully modular & lightweight design - No unnecessary dependencies
❤️ Support
If you need help or want to suggest features, feel free to reach out.
Credits:
Spoiler
Design inspiration: honeysmp.ro