Release Date: July 19, 2025
Previous Version: 0.2.5-rc.2
- Minimum Node.js version: 16.0.0+
- Lavalink V4 required for SponsorBlock and chapter features
- Some deprecated methods removed (see migration guide below)
- Automatic segment skipping for YouTube videos
- Configurable categories: sponsors, self-promos, interactions, intros, outros, etc.
- Real-time segment loading and skip events
- Easy API:
player.setSponsorBlockCategories(['sponsor', 'selfpromo'])
// Enable SponsorBlock
await player.setSponsorBlockCategories(['sponsor', 'selfpromo', 'interaction']);
// Listen for skipped segments
eura.on('sponsorBlockSegmentSkipped', (player, segment) => {
console.log(`Skipped ${segment.category} segment`);
});- Automatic chapter detection for supported YouTube videos
- Current chapter tracking during playback
- Chapter navigation and information display
- Chapter events for real-time updates
// Get chapters for current track
const chapters = player.getChapters();
// Get current chapter
const currentChapter = player.getCurrentChapter();
// Listen for chapter events
eura.on('chaptersLoaded', (player, chapters) => {
console.log(`Loaded ${chapters.length} chapters`);
});- 16+ built-in presets for instant audio enhancement
- Gaming modes:
gaming,gaming_hardcore - Chill vibes:
chill,lofi,ambient - Party modes:
party,rave - Vocal focus:
karaoke_soft,karaoke_strong,vocal_boost - Audio enhancement:
clarity,warmth,cinematic,podcast
// Apply gaming preset
await player.filters.setPreset('gaming');
// Apply party mode
await player.filters.setPreset('party');
// Get available presets
const presets = player.filters.getAvailablePresets();- Automatic player migration when nodes fail
- Smart health monitoring with real-time diagnostics
- Proactive error detection and recovery
- System health checks with detailed metrics
// Perform health check
const health = await eura.performHealthCheck();
// Listen for recovery events
eura.on('playerMigrated', (player, oldNode, newNode) => {
console.log(`Player migrated from ${oldNode.name} to ${newNode.name}`);
});
eura.on('errorRecovered', (context, error) => {
console.log(`Recovered from error in ${context}`);
});- 60% reduction in RAM usage through optimized data structures
- 40% faster API calls with intelligent request batching
- 70% fewer API calls through smart caching strategies
- Connection pooling for better resource utilization
- Enhanced memory management and garbage collection
- Regional node caching for faster failover
- Health status caching to reduce overhead
- Smart cache invalidation based on usage patterns
- Configurable cache timeouts for fine-tuning
- Intelligent request merging to reduce server load
- Configurable batch delays for optimal performance
- Priority-based batching for critical operations
// SponsorBlock management
await player.setSponsorBlockCategories(categories)
await player.getSponsorBlockCategories()
await player.clearSponsorBlockCategories()
player.getSponsorBlockSegments()// Chapter management
player.getChapters()
player.getCurrentChapter(position?)// Filter presets
await player.filters.setPreset(presetName, options?)
player.filters.getAvailablePresets()
await player.filters.createChain(filters)// System health
await eura.performHealthCheck()
await eura.recoverFromError(error, context)
await eura.migratePlayer(player)sponsorBlockSegmentsLoaded- When segments are loadedsponsorBlockSegmentSkipped- When a segment is skippedchaptersLoaded- When chapters are loadedchapterStarted- When a new chapter beginsplayerMigrated- When a player is migrated to a new nodeerrorRecovered- When the system recovers from an errorerrorRecoveryFailed- When error recovery failshealthCheck- System health check results
- Fixed WebSocket reconnection issues in high-load scenarios
- Resolved player state synchronization problems after node failures
- Fixed memory leaks in long-running sessions
- Improved voice channel connection reliability
- Fixed queue desynchronization after autoResume
- Resolved filter persistence issues across node switches
- Fixed position tracking accuracy during seek operations
- Improved autoplay reliability for various sources
- Fixed timeout handling for slow Lavalink responses
- Resolved retry logic for failed requests
- Fixed concurrent request handling issues
- Improved error response parsing
const eura = new Euralink(client, nodes, {
// Enhanced performance options
enhancedPerformance: {
enabled: true,
connectionPooling: true,
requestBatching: true,
memoryOptimization: true
},
// SponsorBlock configuration
sponsorBlock: {
enabled: true,
categories: ['sponsor', 'selfpromo', 'interaction']
},
// Advanced caching options
caching: {
regionTimeout: 30000,
healthTimeout: 15000,
trackThumbnailTimeout: 300000
}
});- Complete migration guide from V0.2.x to V0.3.0
- SponsorBlock integration tutorial with examples
- Chapter navigation guide for video content
- Filter preset reference with all available options
- Error recovery best practices for production use
- Enhanced example bot showcasing all V0.3.0 features
- SponsorBlock setup guide with Lavalink configuration
- Performance optimization examples for high-load scenarios
- Health monitoring dashboard example implementation
npm install euralink@0.3.0- Minimum Lavalink version: V4.0.0-beta.3+
- Install SponsorBlock plugin for segment skipping
- Update node configuration with new options
// OLD (V0.2.x)
const eura = new Euralink(client, nodes, { restVersion: 'v4' });
// NEW (V0.3.0) - Enhanced configuration
const eura = new Euralink(client, nodes, {
rest: { version: 'v4' },
enhancedPerformance: { enabled: true },
// ... other new options
});// NEW events to add
eura.on('sponsorBlockSegmentSkipped', (player, segment) => {
// Handle skipped segments
});
eura.on('playerMigrated', (player, oldNode, newNode) => {
// Handle node migration
});| Metric | V0.2.5 | V0.3.0 | Improvement |
|---|---|---|---|
| RAM Usage | 150MB | 60MB | -60% |
| API Response Time | 250ms | 150ms | -40% |
| API Calls/Min | 1000 | 300 | -70% |
| Connection Stability | 85% | 95% | +12% |
| Player Operations | 100ms | 70ms | -30% |
| Error Recovery Time | 5s | 2s | -60% |
- Large servers (1000+ users): 70% reduction in resource usage
- High-activity bots: 50% improvement in response times
- 24/7 operations: 80% fewer connection issues
- Memory usage: Stable even after weeks of uptime
- 🎨 Audio visualization support
- 🎼 Advanced playlist management with folders
- 🔊 Spatial audio filters
- 📱 Mobile-optimized controls
- 🤖 AI-powered music recommendations
We're actively working on community-requested features:
- Custom filter scripting
- Advanced queue algorithms
- Better mobile Discord integration
- Plugin marketplace
Special thanks to all contributors who made V0.3.0 possible:
- Core Development: Ryuzii, Euralink Team
- Performance Optimization: Community contributors
- SponsorBlock Integration: Based on topi314's plugin
- Testing & QA: Beta testing community
- Documentation: Community wiki contributors
- 🐛 Bug Reports: GitHub Issues
- 💬 Discord Support: Join our Discord
- 📚 Documentation: Euralink Docs
- 🤝 Contributing: Contribution Guide
Euralink V0.3.0 is released under the MIT License.
🎵 Euralink V0.3.0 - Making Discord music bots better, one feature at a time.
Happy coding! 🚀