Skip to main content

Automatically sync new DDR simfiles from Zenius-I-Vanisher to your local Stepmania Songs folder

Project description

zenius-auto-download

Automatically sync new DDR simfiles from Zenius-I-Vanisher to your local Stepmania Songs folder.

Run it whenever you want to check for updates — it tracks what you already have and only downloads what's new.


Requirements

  • Python 3.10 or newer

Installation

Option A — Install via pip (recommended)

pip install zenius-downloader

This gives you the zenius-update command globally.

Option B — Run from source

git clone https://github.com/YOUR_USERNAME/zenius-auto-download.git
cd zenius-auto-download
pip install -e .

Setup

Run the interactive setup wizard to pick your games and configure your Songs folder:

zenius-update --init

This fetches the list of official DDR/Dance Stage releases from Zenius, lets you select which ones to sync, and writes config.json for you.

Alternatively, copy and edit the config manually:

cp config.example.json config.json
{
  "category_urls": [
    "https://zenius-i-vanisher.com/v5.2/viewsimfilecategory.php?categoryid=1709"
  ],
  "download_dir": "C:/Games/StepMania 5/Songs",
  "delay_seconds": 2.0,
  "skip_videos": false
}

Run zenius-update from the same folder as your config.json.


Usage

# First-time setup: pick your games interactively
zenius-update --init

# Download all new simfiles
zenius-update

# Preview what would be downloaded (no files touched)
zenius-update --dry-run

# List all simfiles on the site and their download status
zenius-update --list

# Force re-download a specific simfile by ID
zenius-update --force-id 63195

Config options

Key Description Default
category_urls List of Zenius category page URLs to sync DDR WORLD category
download_dir Path to your Stepmania Songs folder (required)
delay_seconds Pause between downloads (be polite to the server) 2.0
skip_videos Skip .avi video files when extracting ZIPs false

To sync multiple categories, add more URLs to the category_urls list:

"category_urls": [
  "https://zenius-i-vanisher.com/v5.2/viewsimfilecategory.php?categoryid=1709",
  "https://zenius-i-vanisher.com/v5.2/viewsimfilecategory.php?categoryid=XXXX"
]

Automatic scheduling (optional)

Windows — Task Scheduler

  1. Open Task Scheduler and click Create Basic Task
  2. Set the trigger (e.g. daily)
  3. Set the action to: zenius-update
  4. Set Start in to the folder containing your config.json

macOS / Linux — cron

crontab -e

Add a line to run daily at 9am:

0 9 * * * cd /path/to/your/config/folder && zenius-update

How it works

  1. Fetches each configured category page and scrapes all simfile IDs
  2. Compares against state.json (tracks what you've already downloaded)
  3. Downloads each new simfile as a ZIP, extracts it into your Songs folder, deletes the ZIP
  4. Updates state.json after each successful download — safe to interrupt at any time

Troubleshooting

"Bad ZIP" error — Some files on Zenius may require a logged-in account to download. Login support is planned for a future version.

Songs folder not updating — Make sure download_dir in config.json points to the correct Stepmania Songs/ subfolder, not the Stepmania root.

zenius-update is not recognized — Python's Scripts folder isn't in your PATH. Either add it (find it with py -c "import sysconfig; print(sysconfig.get_path('scripts'))"), or use the module form instead:

py -m zenius_downloader --init
py -m zenius_downloader
py -m zenius_downloader --dry-run

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zenius_downloader-0.2.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zenius_downloader-0.2.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file zenius_downloader-0.2.0.tar.gz.

File metadata

  • Download URL: zenius_downloader-0.2.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.1

File hashes

Hashes for zenius_downloader-0.2.0.tar.gz
Algorithm Hash digest
SHA256 42f92d77b37d70a43a8c0c7dccf4138e4e7a618b6f57fdd5767dae538a643bad
MD5 c2d7c1cd6d3ee8c6f280752e1d7eb970
BLAKE2b-256 cd909b034cf66c952e4434c9369d131f28ab936273ac10a46b75f1c07191d6c3

See more details on using hashes here.

File details

Details for the file zenius_downloader-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for zenius_downloader-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0143bba858220f2545fe9b86a7b61c54499561fa3d625d9516e97a41b364ee2
MD5 b925be02a6f1ac55991b4c060b4139f8
BLAKE2b-256 6cbcae5b59131744ea953dc3ce788ab8a65f9521954f08a389ca1baf9c3c3691

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page