NodeLink Features
Exclusive NodeLink features and enhancements.
NodeLink Features
Features unique to NodeLink that extend beyond standard Lavalink compatibility.
Enhanced Track Metadata
Overview
When enabled in config.js, NodeLink makes an additional API call to YouTube when a track starts, gathering rich metadata that would normally require multiple separate API calls. The enriched data includes channel information (name, subscribers, verified status), track details (views, publish date, keywords), media quality options, external links from the channel (Spotify, Instagram), and multiple thumbnail resolutions. All data is returned in the pluginInfo object with type: "holo" during the TrackStartEvent.
Configuration
// config.js
enableHoloTracks: true# Docker environment variable
NODELINK_ENABLEHOLOTRACKS=trueUse Cases & Performance
Use Case
Ideal for music bots displaying rich embeds with artist info, applications showing detailed video metadata without extra API calls, and clients wanting comprehensive track information automatically.
Performance Impact
Adds one extra YouTube API request per track start (100-300ms latency). Only works for YouTube/YouTube Music sources. Uses ~5-20 KB extra bandwidth per track.
Example Response
Lyrics & Chapters
Query Parameters
Lyrics Sources
Source Priority
NodeLink automatically tries multiple sources in order until lyrics are found:
- YouTube Captions - Synced, timestamped lyrics from captions
- Musixmatch - Large database of synced lyrics
- LRCLib - Open-source community synced lyrics
- Genius - Community-sourced plain text lyrics
The source field in the response indicates which provider returned the lyrics.
Example Request
curl -X GET "http://your-server.com/v4/loadlyrics?encodedTrack=QAAAjQIAJVJpY2sgQXN0bGV5...&lang=en" \
-H "Authorization: yourPassword"Response
Query Parameters
Example Request
curl -X GET "http://your-server.com/v4/loadchapters?encodedTrack=QAAAAAMAM0hvdyB0byBBZGQgQ2hhcHRlcnMgdG8gWW91ciBWaWRlb3MgVXNpbmcgVGltZXN0YW1wcwAQWW91VHViZSBDcmVhdG9ycwAAAAAAATSYAAtiMUZvX01fdGo2dwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWIxRm9fTV90ajZ3AQA2aHR0cHM6Ly9pLnl0aW1nLmNvbS92aV93ZWJwL2IxRm9fTV90ajZ3L3NkZGVmYXVsdC53ZWJwAAAHeW91dHViZQAAAAAAAAAA" \
-H "Authorization: yourPassword"Response
Direct Streaming
Configuration
Feature Must Be Enabled
This feature must be explicitly enabled in your configuration:
// config.js
enableTrackStreaming: true# Docker environment variable
NODELINK_ENABLETRACKSTREAMING=trueQuery Parameters
Example Request
curl -X GET "http://your-server.com/v4/trackstream?encodedTrack=QAAAAAMAM0hvdyB0byBBZGQgQ2hhcHRlcnMgdG8gWW91ciBWaWRlb3MgVXNpbmcgVGltZXN0YW1wcwAQWW91VHViZSBDcmVhdG9ycwAAAAAAATSYAAtiMUZvX01fdGo2dwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWIxRm9fTV90ajZ3AQA2aHR0cHM6Ly9pLnl0aW1nLmNvbS92aV93ZWJwL2IxRm9fTV90ajZ3L3NkZGVmYXVsdC53ZWJwAAAHeW91dHViZQAAAAAAAAAA&itag=251" \
-H "Authorization: yourPassword"Use Cases
Common Applications
- Radio/streaming applications that need raw audio
- Bot audio recording and archiving systems
- Audio preview functionality
- Custom audio processing pipelines
- Downloading tracks for offline playback
Security Warning
Enable this feature carefully as it allows direct audio downloads. Consider rate limiting and authentication.
Response
Monitoring & Metrics
Example Request
curl -X GET "http://your-server.com/v4/metrics" \
-H "Authorization: yourPassword"Metric Categories
Grafana Dashboard
Pre-configured Dashboard
See the Prometheus page for a complete Grafana dashboard with pre-configured panels for all NodeLink metrics.
Example Request
curl -X GET "http://your-server.com/v4/stats" \
-H "Authorization: yourPassword"Additional Fields
Enhanced Statistics
Beyond standard Lavalink stats, NodeLink includes detailedStats with granular usage metrics.
Response
Use Cases
Useful For
- Identifying most used API endpoints
- Tracking popular audio sources
- Monitoring error rates per endpoint
- Analyzing playback event distribution
Additional Filters
NodeLink includes additional audio filters beyond the standard Lavalink filters, all processed in real-time.
Parameters
Example Usage
{
"filters": {
"echo": {
"delay": 500,
"feedback": 0.3,
"mix": 0.5
}
}
}Parameters
Example Usage
{
"filters": {
"chorus": {
"rate": 1.5,
"depth": 0.5,
"delay": 25,
"mix": 0.6,
"feedback": 0.2
}
}
}Parameters
Example Usage
{
"filters": {
"compressor": {
"threshold": -20,
"ratio": 4,
"attack": 10,
"release": 100,
"gain": 5
}
}
}Parameters
Example Usage
{
"filters": {
"highpass": {
"smoothing": 20
}
}
}Parameters
Example Usage
{
"filters": {
"phaser": {
"stages": 6,
"rate": 0.5,
"depth": 0.7,
"feedback": 0.5,
"mix": 0.5,
"minFrequency": 200,
"maxFrequency": 2000
}
}
}Parameters
Example Usage
{
"filters": {
"spatial": {
"depth": 0.8,
"rate": 0.3
}
}
}Event Behavior
NodeLink modifies when certain events are emitted for better accuracy.
Behavior
Enhanced Accuracy
Unlike Lavalink which emits TrackStartEvent immediately when you call update player, NodeLink waits until the audio stream actually starts flowing. This means you receive the event only when playback truly begins.
This provides more accurate timing for tracking actual playback start times and prevents false positives when tracks fail to load after being queued.