@music-league-eras/local-runner
v0.1.5
Published
Music League Eras local runner (npx wrapper around the Python scraper runner).
Readme
Music League Eras Local Runner (npx)
This package runs the Music League scraping flow locally (opens a real browser on your machine), then uploads the
extracted manifest.json to the Music League Eras API using your short-lived sync_token.
Prerequisites (macOS MVP)
- Node.js
>=18.17 - Python
>=3.11installed (runner will trypython3.12,python3.11, thenpython3)
On first run, Playwright may download Chromium (network required).
Usage
Run the commands shown in the web app (recommended), or run manually:
Step A (bootstrap, no secrets)
npx @music-league-eras/local-runner@latest bootstrapStep B (runner, safe default)
npx @music-league-eras/local-runner@latest local-sync \\
--api-base-url https://<deployment-host> \\
--sync-session-id <sync_session_id>The runner will prompt you to paste the sync token (input hidden).
Step B (power users / CI)
Option A: environment variable (recommended for CI)
export ML_ERAS_SYNC_TOKEN='<sync_token>'
npx @music-league-eras/local-runner@latest local-sync \\
--api-base-url https://<deployment-host> \\
--sync-session-id <sync_session_id>Option B: CLI flag (advanced; not recommended)
npx @music-league-eras/local-runner@latest local-sync \\
--api-base-url https://<deployment-host> \\
--sync-session-id <sync_session_id> \\
--sync-token <sync_token>Optional flags:
--music-league-base-url https://app.musicleague.com--capture-headless/--no-capture-headless--scrape-headless/--no-scrape-headless--out-dir /path/to/artifacts--timeout-s 60
Runner home directory
By default, the runner stores its Python virtualenv under:
~/.music-league-eras/local-runner
Override with:
ML_ERAS_LOCAL_RUNNER_HOME=/some/dirML_ERAS_PYTHON=python3.11(or an absolute path to a Python 3.11+ executable)
To reset the runner environment, delete that folder.
