o!rdr open-source ver. API (1)

Download OpenAPI specification:Download

Introduction

Learn how to interact with the o!rdr API on the open-source version of the server in this documentation.

Websocket

It sends 4 events:

  • render_added_json: { renderID: number }
  • render_progress_json: { renderID: number, username: string, progress: string, renderer: string, description: string }
  • render_done_json: { renderID: number }
  • render_failed_json: { renderID: number, errorCode: number, errorMessage: string }

Check this example in NodeJS to communicate with the Websocket.

Error codes


* 0 = no error

Error codes that can be sent to the render_fail event on the Websocket:

  • 1 = emergency stop (triggered manually)
  • 2 = replay download error (bad upload from the sender)
  • 3 = replay download error (bad download from the server), can happen because of invalid characters
  • 4 = all beatmap mirrors are unavailable
  • 14 = beatmap not found on all the beatmap mirrors
  • 18 = unknown error from the renderer
  • 19 = the renderer cannot download the map
  • 20 = beatmap version on the mirror is not the same as the replay
  • 21 = the replay is corrupted (danser cannot process it)
  • 27 = something with the renderer went wrong: it probably has an unstable internet connection (multiple renders at the same time)

Error codes that can be used before the request has been sent (http code 400/500)

  • 2 = replay parsing error (bad upload from the sender)
  • 5 = replay file corrupted
  • 6 = invalid osu! gamemode (not 0 = std)
  • 7 = the replay has no input data
  • 8 = beatmap does not exist on osu! (probably because of custom difficulty or non-submitted map)
  • 9 = audio for the map is unavailable (because of copyright claim)
  • 10 = cannot connect to osu! api
  • 11 = the replay has the autoplay mod
  • 12 = the replay username has invalid characters
  • 13 = the beatmap is longer than the maximum time allowed by the server minutes
  • 23 = server-side problem while preparing the render
  • 24 = the beatmap has no name
  • 25 = the replay is missing input data
  • 26 = the replay has incompatible mods

Render list

Default audio codec is AAC, bitrate is 192kbps
See the default video codecs used here

query Parameters
pageSize
number
Examples:
  • pageSize=5 -

The number of renders the query will return you in the page. If not specified, 50 is the default.

page
number
Examples:
  • page=1 -

The page

ordrUsername
string
Examples:
  • ordrUsername=MasterIO -

Search by o!rdr username, can be used at the same time as replayUsername

replayUsername
string
Examples:
  • replayUsername=MasterIO02 -

Search by replay username, can be used at the same time as ordrUsername

renderID
number
Examples:
  • renderID=4337 -

The renderID of a render

nobots
any

Hide bots from the returned render query.

Responses

Response samples

Content type
application/json
{
  • "renders": [
    ],
  • "maxRenders": 1
}

Send render

Request Body schema: multipart/form-data
replayFile
required
object (file)

The replay file

replayURL
string

The replay URL for the server to download, required if there is no replayFile, non-direct links are supported, redirections are handled

username
required
string

The username that will be displayed on o!rdr

resolution
required
string

Can be 640x480 (30fps), 960x540, 1280x720, 1920x1080, or 3840x2160 (60fps)

globalVolume
number

The global volume for the video. Default: 50

musicVolume
number

The music volume for the video. Default: 50

hitsoundVolume
number

The hitsounds volume for the video. Default: 50

showHitErrorMeter
boolean

Show the hit error meter. Default: true

showUnstableRate
boolean

Show the unstable rate, only takes effect if showHitErrorMeter is set to true. Default: true

showScore
boolean

Show the score. Default: true

showHPBar
boolean

Show the HP bar. Default: true

showComboCounter
boolean

Show the combo counter. Default: true

showPPCounter
boolean

Show the PP Counter or not. Default: true

showScoreboard
boolean

Show the scoreboard or not (requires a client that has an osu! api key). Default: false

showBorders
boolean

Show the playfield borders or not. Default: false

showMods
boolean

Show the mods used during the game or not. Default: true

showResultScreen
boolean

Show the result screen or not. Default: true

skin
required
string

The skin to use. Can be the ID of a skin, or its name

useSkinCursor
boolean

Use the skin cursor or not. If not, danser cursor will be used. Default: true

useSkinColors
boolean

Use the skin combo colors or not. Default: false

useSkinHitsounds
boolean

Use skin hitsounds, if false beatmap hitsounds will be used. Default: true

useBeatmapColors
boolean

Use the beatmap combo colors or not, overrides useSkinColors if true. Default: true

cursorScaleToCS
boolean

Scale cursor to circle size. Does not do anything at the moment. Default: false

cursorRainbow
boolean

Makes the cursor rainbow, only takes effect if useSkinCursor is set to false. Default: false

cursorTrailGlow
boolean

Have a glow with the trail or not. Default: false

drawFollowPoints
boolean

Draw follow points between objects or not. Default: true

scaleToTheBeat
boolean

Scale objects to the beat. Default: false

sliderMerge
boolean

Merge sliders or not. Default: false

objectsRainbow
boolean

Makes the objects rainbow, overrides useSkinColors and useBeatmapColors. Default: false

objectsFlashToTheBeat
boolean

Makes the objects flash to the beat. Default: false

useHitCircleColor
boolean

Makes the slider body have the same color as the hit circles. Default: true

seizureWarning
boolean

Display a 5 second seizure warning before the video. Default: false

loadStoryboard
boolean

Load the background storyboard. Default: true

loadVideo
boolean

Load the background video (loadStoryboard has to be set to true). Default: true

introBGDim
number

Background dim for the intro, in percent, from 0 to 100. Default: 0

inGameBGDim
number

Background dim in game, in percent, from 0 to 100. Default: 75

breakBGDim
number

Background dim in break, in percent, from 0 to 100. Default: 30

BGParallax
boolean

Adds a parallax effect. Default: false

showDanserLogo
boolean

Show danser logo on the intro. Default: true

skip
boolean

Skip the intro or not. Default: true

cursorRipples
boolean

Show cursor ripples when keypress. Default: false

cursorSize
number

Set the cursor size, multiplier from 0.5 to 2. Default: 1

cursorTrail
boolean

Show the cursor trail or not. Default: true

drawComboNumbers
boolean

Show the combo numbers in objects. Default: true

sliderSnakingIn
boolean

Have slider snaking in. Default: true

sliderSnakingOut
boolean

Have slider snaking out. Default: true

showHitCounter
boolean

Shows a hit counter (100, 50, miss) below the PP counter. Default: false

showKeyOverlay
boolean

Show the key overlay or not. Default: true

showAvatarsOnScoreboard
boolean

Show avatars on the left of the username of a player on the scoreboard. May break some skins because the width of the scoreboard increases. Default: false

showAimErrorMeter
boolean

Show the Aim Error Meter or not. Default: false.

motionBlur960fps
boolean

Whether to enable motion blur or not.

Responses

Response samples

Content type
application/json
{
  • "message": "Render added successfully",
  • "renderID": 95,
  • "errorCode": 0
}