Skip to content
/ otoge-db Public

Online DB viewer for songs in Ongeki, Chunithm, maimai

Notifications You must be signed in to change notification settings

zvuc/otoge-db

Repository files navigation

Ongeki DB Logo    Chunithm DB Logo    maimai DB Logo

OTOGE DB (音ゲーDB)

OTOGE DB is an unofficial database for viewing song information served in SEGA's arcade music games 'Ongeki', 'Chunithm', 'maimai DX'. Building on top of the public data provided from the official SEGA websites and extra information available on various different community contributed sites, OTOGE DB allows convenient lookup of latest song information through the thoughtfully designed web interface.

OTOGE DBはSEGAの音ゲー「オンゲキ」「CHUNITHM」「maimaiでらっくす」の非公式収録曲データベースサイトです。公式サイトで公開されているデータを基にして、Wikiなどウェブで入手できる情報を集めて一箇所で楽に見れるようにする目標で作られました。

Setting up dev environment

  • You'll need Python 3.x to run scripts on command line.
  • Install requirements
     pip install -r requirements.txt
    

Run scripts

  • yarn fetch-songs : Download new song and images from server

    Arguments for all scripts:

    Argument Description
    --ongeki
    --chunithm
    --maimai
    (Required) Run script for specified game (Set only one at a time)
    --nocolors Don't print colors to terminal messages
    --markdown Print messages in Github flavored markdown format (for PR messages)
    --escape Escape unsafe characters for git message output (Song titles with symbols, etc)
    --no_timestamp Don't print timestamps on message output
    --no_verbose Only print significant changes and errors
  • yarn fetch-intl : Fetch international version song availability & date info from SilentBlue (remywiki)

    Script specific-arguments:

    Argument Description
    --strict Strict match songs by checking levels for all charts (If not set, script will proceed to update songs by just matching song title and artist names.)
  • yarn fetch-wiki : Fetch extra song data from wiki

    Script specific-arguments:

    Argument Description
    --date Set specific date to target songs. (Example: --date 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_from Set start of date range to target songs. (Example: --date_from 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_until Set end of date range to target songs. (Example: --date_until 20231231)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --id Run script for a single song. Can't be used together with the date target arguments above. (Example: --id 2524)
    --all Run script for all songs. (Warning: may cause heavy traffic load to the wiki sites so may get you banned temporarily. Be careful especially when using with --noskipoption!!)
    --noskip Don't skip items that already have URL
    --overwrite Overwrite keys that already have values
  • yarn fetch-const : Fetch song constants

    Script specific-arguments:

    Argument Description
    --date Set specific date to target songs. (Example: --date 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_from Set start of date range to target songs. (Example: --date_from 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_until Set end of date range to target songs. (Example: --date_until 20231231)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --id Run script for a single song. Can't be used together with the date target arguments above. (Example: --id 2524)
    --overwrite Overwrite keys that already have values
    --clear_cache Clears local cache on run
    --legacy Match with legacy sgimera format
  • yarn fetch-chartguide : Fetch chart guide links from sdvx.in

    Script specific-arguments:

    Argument Description
    --date Set specific date to target songs. (Example: --date 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_from Set start of date range to target songs. (Example: --date_from 20230101)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --date_until Set end of date range to target songs. (Example: --date_until 20231231)
    If unset, script fetches for the latest datestamp in music-ex.json file.
    --id Run script for a single song. Can't be used together with the date target arguments above. (Example: --id 2524)
    --overwrite Overwrite keys that already have values
    --clear_cache Clears local cache on run

Notes for Local Development

Build Scripts

  • yarn build : minify+concat JS files, builds LESS stylesheet, runs PostCSS and minify.
  • yarn watch : watches changes to stylesheet for local development

Local Dev Environment

Just open index.html and refresh manually. Simple as the good old year 2000. Or, you can also do python -m http.server to quickly run a local server. Note: You may need to use python3 instead of python depending on your environment (i.e.: macOS)

Notes

  • This webpage is hosted and run entirely on Github Pages without any additional backend servers attached.
  • {game_name}/data/music.json and maimai/data/maimai_songs.json : Copy of original JSON file provided by SEGA as-is
  • {game_name}/data/music-ex.json: Augmented JSON file containing additional data not provided by the official website
  • {game_name}/data/music-ex-intl.json: Augmented JSON file containing song information for International version
  • {game_name}/data/music-ex-deleted.json: JSON file containing deleted song information for archive purposes

Credits

Main Contributors

  • @mantou1233 : Bug reporting, data contributions, PR reviews, feature development
  • @ssankim : Wiki fetch script & Github Actions workflow help
  • @kiding : Script for updating datestamps after fetch
  • @Ryudnar : Early script foundation for song data downloading

Other Contributors

Data Sources

Ongeki

Chunithm

maimai

Feedback

  • Contact @otoge_db or @zvuc_ for any suggestions or inquiries.
  • お問い合わせなどは上記のアカウントまでお願いします。

Copyright

  • MIT License for all code in this repository.
  • All vector image assets used in this website have been produced independently from scratch, however intellectual rights for the original designs remain to SEGA.
  • ONGEKI, CHUNITHM, maimai でらっくす and the respective logos are trademarks of SEGA.
  • All song jacket images are owned by SEGA and/or their respective owners.
  • OTOGE DB is a fan project. It is not afilliated with nor endorsed by SEGA in any way.
  • OTOGE DBは非公式ファンメイドプロジェクトです。株式会社セガもしくは他の関連会社との関係はありません。