Music Module
- class Music(*args: Any, **kwargs: Any)
Bases:
Cog24/7 Discord voice radio for Love Live Radio: connect to the VC, queue, playback, skips, Google Sheet + Drive for the catalog, and presence. This is the in-server radio only.
The public web radio (loveliveradio.ca, HTTP streaming, site queue) is implemented by the
WebRadiocog (cogs/web_radio.py), not this module.See also
Locked to the Love Live Radio (LLR) server.
Attention
Commands assume minimum bot permissions: View Channel, Send Messages, and voice Connect / Speak where applicable.
- async dqueue(ctx, *, song_name: str = None)
Add a song to the queue, or view the current queue.
Aliases: dq
Syntax:
!!dqueue [song name]Example:
!!dq !!dq happy party train
- Parameters:
song_name (str, optional) – The name of the song you wish to add to the queue
- Returns:
A message displaying the current queue or confirmation that a song has been added to the queue.
- Return type:
discord.Message
- async dplay(ctx)
Prepare the bot for continuous playback. Joins the voice channel.
Aliases: dp
Syntax:
!!dplay- Returns:
A message indicating the bot’s playback status or an error if the bot fails to join a voice channel.
- Return type:
discord.Message
- async ikizustaato(ctx)
Ikizu limited: Start the show (IkizuCord host).
Aliases:
ikizulimitedstaato
- async toggle_ikizu_mode(ctx)
Ikizu limited: Turn the Bluebird show on/off in IkizuCord (staff).
Aliases:
toggle_ikizu_limited
- async toggle_ikizu_247(ctx)
IkizuCord: Turn LLR-style 24/7 radio on/off (staff with mod role).
- async toggle_ikizu_test(ctx)
Ikizu: Turn radio on on Emote Radio (staff).
- async ikizuteststaato(ctx)
Ikizu: Start the radio show (Emote Radio host).
- async ikizu_mode_status(ctx)
Ikizu limited / test: Radio connection status (staff).
Aliases:
ikizu_limited_status
- async radio(ctx)
Ikizu: DM the Love Live Bluebird Radio tutorial sheet.
- async skip(ctx, force=None)
Skip to the next song in the queue. Initiates a vote if there are multiple listeners.
Votes required are dependant on users inside the channel. Timeout for skips is 30 second.
See also
LLR Admin can bypass votes and force skip by adding
true.Syntax:
!!skip [force]Example:
!!skip !!skip true
- Parameters:
force (bool, optional) – set
Trueto force skip. Requires LLR Admin.- Returns:
Skip initiation message and details regarding the skip or votes.
- Return type:
discord.Message
- async set_skip_ratio(ctx, ratio: float)
Set the skip ratio for skipping songs. Default is 0.5
Syntax:
!!set_skip_ratio <ratio>Example:
!!set_skip_ratio 0.5- Parameters:
ratio (float, required) – The ratio to set for skipping songs. Must be between 0 and 1.
- Returns:
A confirmation message that the skip ratio has been set or an error message if the ratio is invalid.
- Return type:
discord.Message
- async stop(ctx)
24/7: Stops any songs and exits the voice channel.
Syntax:
!!stop- Returns:
A message indicating the bot has stopped playback and left the voice channel, or an error message if the bot is not in a voice channel.
- Return type:
discord.Message
- async now_playing(ctx)
24/7: Show the currently playing song.
Aliases:
dnpSyntax:
!!now_playing- Returns:
A message displaying the currently playing song or indicating that no song is playing.
- Return type:
discord.Message
- async radio247info(ctx)
Information regarding the 24/7 radio channel.
Aliases: 247info, 24/7, 24/7info, chiitoradio, 24-7-info
Syntax:
!!radio247info- Returns:
Information about the 24/7 radio channel and how to interact with it.
- Return type:
discord.Message
- async toggle_reconnect(ctx)
24/7: Toggle voice reconnection on/off
Syntax:
!!toggle_reconnect- Returns:
Confirmation of reconnection status change
- Return type:
discord.Message
- async message_rate(ctx, cooldown: int = None)
24/7: Control message rate limiting to prevent Discord spam
Syntax:
!!message_rate [cooldown_seconds]- Parameters:
cooldown (int, optional) – Seconds between Discord messages (default: 2)
- Returns:
Current or updated rate limiting settings
- Return type:
discord.Message
- async clean_voice_state(ctx)
24/7: Force clean voice state - disconnect from all channels and reset state
Syntax:
!!clean_voice_state- Returns:
Confirmation of voice state cleanup
- Return type:
discord.Message
- async force_reconnect(ctx)
24/7: Force disconnect from any voice channel and reconnect to radio channel
Syntax:
!!force_reconnect- Returns:
Confirmation of reconnection attempt
- Return type:
discord.Message
- async verify_channel(ctx)
24/7: Verify bot is connecting to correct channel
Syntax:
!!verify_channel- Returns:
Channel verification information
- Return type:
discord.Message
- async voice_health(ctx)
24/7: Check voice connection health and protocol information
Syntax:
!!voice_health- Returns:
Detailed voice connection health information
- Return type:
discord.Message
- async emergency_reset(ctx)
24/7: Emergency voice state reset to break connection loops
Syntax:
!!emergency_reset- Returns:
Confirmation of emergency reset
- Return type:
discord.Message
- async check_discord_version(ctx)
Check discord.py version and verify voice fixes are included
- async update_discord_instructions(ctx)
24/7: Get safe instructions to update discord.py with PR #10210 voice fixes
Syntax:
!!update_discord_instructions- Returns:
Safe update instructions and warnings
- Return type:
discord.Message
- async check_discord_update(ctx)
24/7: Check if a newer version of discord.py is available with voice fixes
Syntax:
!!check_discord_update- Returns:
Update availability and version comparison
- Return type:
discord.Message
- async music_state(ctx)
Check the current state of the music system for debugging
- async prefetch_status(ctx)
Check the status of the prefetch system