dwgx@blog:~$dwgx
> cd ../posts

vrc-mod-guide: A Chinese Resource Library for VRChat Modding

// created

vrc-mod-guide is a Chinese-language resource library for VRChat modding. Base bodies, outfits, upload optimization, guides for getting into popular worlds — this stuff is scattered across Bilibili, reddit, and Booth, and a link that works today is dead tomorrow. I spent two days scraping with AI and organized whatever was still alive into a single page.

It’s a pure static single page — no build, no framework, no npm. A single index.html inlines all the CSS and JS, and the data is pulled in from data.js, covers.js, and guides.js via <script src>. Run it locally with python -m http.server, or open it online directly at https://dwgx.github.io/vrc-mod-guide/. Resources are sorted by type: videos, base bodies, outfits, worlds, platforms, community docs, tools, articles, and advanced. I also packed in 60 Chinese-language guides I wrote myself, embedded in full on the page rather than linked out — external links vanish without warning. Search plus category filtering, all rendered client-side, so it works even offline.

Modding guides online just copy each other, and half the links are dead when you click through. So every entry carries a reliability marker: high means official or confirmed still alive, mid means confirmed to exist but not verified item by item, low means the product ID or author still needs checking. Putting the uncertainty out in the open actually makes it more dependable to use.

Archiving is the core. I wrote two crawlers using only the Python standard library (urllib, json, zero third-party). One goes through Bilibili’s web-interface/view endpoint and snapshots the title, uploader, duration, view count, description, and cover for 1473 videos into archive-bili.json. The other goes through the Wayback Machine’s CDX endpoint, saving one statuscode:200 archive timestamp and URL for each of 1039 reddit posts — storing only pointers, not the body text, so even if the original post is deleted you can trace it back through the archive. Both have rate limiting and resumable runs, so if a crawl dies halfway you pick up where you left off.

The data structure is plain; one entry looks roughly like this:

{ t:"标题", ch:"频道/UP", id:"视频ID", url:"链接", tag:"分类", v:"high" }

Covers are mapped in covers.js — Bilibili uses official thumbnails, Booth gets only a link, and I don’t repost the authors’ images. All content comes from public search and official APIs, and it’s still being maintained bit by bit. Repo: https://github.com/dwgx/vrc-mod-guide.