interface Plus {
    artist: string;
    artist_unicode: string;
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    };
    beatmaps: WithFailtimes[];
    bpm: number;
    can_be_hyped: boolean;
    converts: WithFailtimes[];
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    };
    creator: string;
    current_nominations: {
        beatmapset_id: number;
        reset: boolean;
        rulesets: null | Ruleset[];
        user_id: number;
    }[];
    deleted_at: null | Date;
    description: {
        description: string;
    };
    discussion_locked: boolean;
    favourite_count: number;
    genre: {
        id: Genre;
        name:
            | "Any"
            | "Unspecified"
            | "Video Game"
            | "Anime"
            | "Rock"
            | "Pop"
            | "Other"
            | "Novelty"
            | "Hip Hop"
            | "Electronic"
            | "Metal"
            | "Classical"
            | "Folk"
            | "Jazz";
    };
    has_favourited?: boolean;
    hype: null | {
        current: number;
        required: number;
    };
    id: number;
    is_scoreable: boolean;
    language: {
        id: Language;
        name:
            | "Any"
            | "Unspecified"
            | "Other"
            | "English"
            | "Japanese"
            | "Chinese"
            | "Instrumental"
            | "Korean"
            | "French"
            | "German"
            | "Swedish"
            | "Spanish"
            | "Italian"
            | "Russian"
            | "Polish";
    };
    last_updated: Date;
    legacy_thread_url: string;
    nominations_summary: {
        current: number;
        eligible_main_rulesets: null | [
            | "osu"
            | "taiko"
            | "fruits"
            | "mania"];
        required_meta: {
            main_ruleset: number;
            non_main_ruleset: number;
        };
    };
    nsfw: boolean;
    offset: number;
    pack_tags: string[];
    play_count: number;
    preview_url: string;
    ranked: RankStatus;
    ranked_date: null | Date;
    ratings: number[];
    recent_favourites: User[];
    related_users: User[];
    source: string;
    spotlight: boolean;
    status: string;
    storyboard: boolean;
    submitted_date: null | Date;
    tags: string;
    title: string;
    title_unicode: string;
    track_id: null | number;
    user: User;
    user_id: number;
    video: boolean;
}

Hierarchy (view full)

Properties

artist: string
artist_unicode: string
availability: {
    download_disabled: boolean;
    more_information: null | string;
}

Type declaration

  • download_disabled: boolean

    So it's false if you can download it

  • more_information: null | string
beatmaps: WithFailtimes[]

The different beatmaps/difficulties this beatmapset has

bpm: number
can_be_hyped: boolean
converts: WithFailtimes[]

The different beatmaps made for osu!, but converted to the other Rulesets

covers: {
    card: string;
    card@2x: string;
    cover: string;
    cover@2x: string;
    list: string;
    list@2x: string;
    slimcover: string;
    slimcover@2x: string;
}
creator: string
current_nominations: {
    beatmapset_id: number;
    reset: boolean;
    rulesets: null | Ruleset[];
    user_id: number;
}[]
deleted_at: null | Date
description: {
    description: string;
}

Type declaration

  • description: string

    In HTML

discussion_locked: boolean
favourite_count: number
genre: {
    id: Genre;
    name:
        | "Any"
        | "Unspecified"
        | "Video Game"
        | "Anime"
        | "Rock"
        | "Pop"
        | "Other"
        | "Novelty"
        | "Hip Hop"
        | "Electronic"
        | "Metal"
        | "Classical"
        | "Folk"
        | "Jazz";
}
has_favourited?: boolean

Only exists if authorized user

hype: null | {
    current: number;
    required: number;
}
id: number
is_scoreable: boolean
language: {
    id: Language;
    name:
        | "Any"
        | "Unspecified"
        | "Other"
        | "English"
        | "Japanese"
        | "Chinese"
        | "Instrumental"
        | "Korean"
        | "French"
        | "German"
        | "Swedish"
        | "Spanish"
        | "Italian"
        | "Russian"
        | "Polish";
}
last_updated: Date
legacy_thread_url: string
nominations_summary: {
    current: number;
    eligible_main_rulesets: null | [
        | "osu"
        | "taiko"
        | "fruits"
        | "mania"];
    required_meta: {
        main_ruleset: number;
        non_main_ruleset: number;
    };
}

Type declaration

  • current: number
  • eligible_main_rulesets: null | [
        | "osu"
        | "taiko"
        | "fruits"
        | "mania"]
  • required_meta: {
        main_ruleset: number;
        non_main_ruleset: number;
    }

    Required nominations

    • main_ruleset: number
    • non_main_ruleset: number
nsfw: boolean
offset: number
pack_tags: string[]
play_count: number
preview_url: string

A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

ranked: RankStatus
ranked_date: null | Date
ratings: number[]
recent_favourites: User[]
related_users: User[]
source: string
spotlight: boolean
status: string

Is it ranked, is it graveyarded, etc

storyboard: boolean
submitted_date: null | Date
tags: string
title: string

A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

title_unicode: string

Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

track_id: null | number

If the song exists on a featured artist's page, then it has a track_id

https://osu.ppy.sh/beatmaps/artists/tracks/<track_id> redirects to the page of said featured artist

user: User
user_id: number
video: boolean