Skip to main content

Overview

The /songs command fetches opening (OP) and ending (ED) theme songs for an anime from MyAnimeList, with Spotify track links when available.

Command Syntax

Parameters

AniList ID (numeric) or anime search term (works with romaji, English, or Japanese titles)

Usage Examples

Returns theme songs for One Piece using its AniList ID.

Response Data

The bot returns an embed with:
The full title of the anime (romaji or English)
List of all opening themes with:
  • Song title and episode range (e.g., “OP1: Episodes 1-50”)
  • Artist name
  • Spotify link (if available)
List of all ending themes with:
  • Song title and episode range (e.g., “ED1: Episodes 1-25”)
  • Artist name
  • Spotify link (if available)
Anime cover image from MyAnimeList
Direct link to the anime’s MyAnimeList page

How It Works

1

Lookup on AniList

The bot first resolves the search term to an anime entry on AniList.
2

Fetch from MyAnimeList

Using the AniList data, the bot queries MyAnimeList for theme song listings.
3

Match with Spotify

For each song, the bot searches Spotify to find a track link.
4

Return embed

All songs are formatted into a Discord embed with clickable links.

Search Tips

The /songs command only works for anime, not manga. If the lookup does not resolve to an anime, the bot returns No such anime.
If the bot returns No such anime, try:
  • Verifying you’re searching for an anime, not a manga
  • Using the anime’s AniList ID instead of a search term
  • Using the exact romaji title from AniList
If Annie Mei finds the anime on AniList but it does not have a MyAnimeList ID, the bot returns:
Annie Mei shows at most the first 10 openings and the first 10 endings to stay within Discord embed limits.

Example Response

For /songs search:Demon Slayer, you might see:

Limitations

  • Only anime openings and endings are supported (no insert songs or OST tracks)
  • Spotify links may be missing if the song isn’t on Spotify
  • Very new or niche anime may not have complete song data on MyAnimeList

Source Code Reference

Implementation: src/commands/songs/command.rs:18 The register() function defines the command structure:
The command fetches data from MyAnimeList and Spotify via the SongFetcher utility at src/commands/songs/fetcher.rs.