尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Find the shortest chain of collaborations linking any two music artists, like the Oracle of Bacon (Six Degrees of Kevin Bacon), but for music.
Live at oracleofmusic.app: currently covers the top 5,000 Spotify artists and everyone they've collaborated with.
Built with: Python · Flask · SQLAlchemy · PostgreSQL · Docker · Gunicorn · Nginx · vanilla JS/HTML/CSS · MusicBrainz · Spotify Web API
flowchart LR
A[MusicBrainz dump] --> B[(PostgreSQL)]
B --> C[Adjacency list]
C --> D[BFS]
D --> E[Spotify Web API]
E --> F[HTML/CSS Path]
Follow deploy_database/instructions.txt to start PostgreSQL in Docker and load the MusicBrainz data dump into it.
Create a .env file in the repo root:
| Variable | Description |
|---|---|
DATABASE_URL | SQLAlchemy URL for the MusicBrainz database, e.g. postgresql+psycopg://postgres:<password>@localhost:5432/musicbrainz |
SPOTIFY_CLIENT_ID | Spotify app client ID |
SPOTIFY_CLIENT_SECRET | Spotify app client secret |
ARTIST_NAMES_FILE_PATH | Text file with one artist name per line, most important first |
ARTISTS_TO_LOAD | How many names to read from that file. The app finds Paths between these artists and everyone they've collaborated with. The live site uses the top 5,000 Spotify artists. |
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cd app
gunicorn app:app # or: flask --app app run
The first start builds the collaboration graph and caches it in the database. Later starts reuse the cache.
The tests don't need a database or Spotify credentials:
pytest