Music Module

class Music(*args: Any, **kwargs: Any)

Bases: Cog

24/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 WebRadio cog (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

Permissions

Author: LLR

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

Permissions

Author: LLR Admin

async ikizustaato(ctx)

Ikizu limited: Start the show (IkizuCord host).

Aliases: ikizulimitedstaato

Permissions

Author: LLR Admin or Ikizu server owner

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async toggle_ikizu_mode(ctx)

Ikizu limited: Turn the Bluebird show on/off in IkizuCord (staff).

Aliases: toggle_ikizu_limited

Permissions

Author: Everyone (subject to channel/guild command restrictions)

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async toggle_ikizu_247(ctx)

IkizuCord: Turn LLR-style 24/7 radio on/off (staff with mod role).

Permissions

Author: Everyone (subject to channel/guild command restrictions)

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async toggle_ikizu_test(ctx)

Ikizu: Turn radio on on Emote Radio (staff).

Permissions

Author: Everyone (subject to channel/guild command restrictions)

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async ikizuteststaato(ctx)

Ikizu: Start the radio show (Emote Radio host).

Permissions

Author: LLR Admin or Ikizu server owner

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async ikizu_mode_status(ctx)

Ikizu limited / test: Radio connection status (staff).

Aliases: ikizu_limited_status

Permissions

Author: Everyone (subject to channel/guild command restrictions)

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async radio(ctx)

Ikizu: DM the Love Live Bluebird Radio tutorial sheet.

Permissions

Author: LLR / Ikizu radio guilds

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

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 True to force skip. Requires LLR Admin.

Returns:

Skip initiation message and details regarding the skip or votes.

Return type:

discord.Message

Permissions

Author: LLR

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

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

async now_playing(ctx)

24/7: Show the currently playing song.

Aliases: dnp

Syntax:

!!now_playing
Returns:

A message displaying the currently playing song or indicating that no song is playing.

Return type:

discord.Message

Permissions

Author: LLR

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

Permissions

Author: LLR

async toggle_reconnect(ctx)

24/7: Toggle voice reconnection on/off

Syntax:

!!toggle_reconnect
Returns:

Confirmation of reconnection status change

Return type:

discord.Message

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

async verify_channel(ctx)

24/7: Verify bot is connecting to correct channel

Syntax:

!!verify_channel
Returns:

Channel verification information

Return type:

discord.Message

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

async check_discord_version(ctx)

Check discord.py version and verify voice fixes are included

Permissions

Author: LLR Admin or Ikizu server owner

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

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

Permissions

Author: LLR Admin

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

Permissions

Author: LLR Admin

async music_state(ctx)

Check the current state of the music system for debugging

Permissions

Author: LLR Admin or Ikizu server owner

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)

async prefetch_status(ctx)

Check the status of the prefetch system

Permissions

Author: LLR Admin or Ikizu server owner

Bot: View Channel, Send Messages (plus Connect/Speak for voice commands)