MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Every word of dialogue in 18,761 films, counted. See what any movie actually says, watch words rise and fall across decades, and compare scripts head to head.
Translation pending
MediaPython · TypeScriptGitHub @beveradbOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Explore words spoken in movies: per-film word frequencies and trends with year/country/genre filters
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Live: https://moviewords.org — explore the words spoken in
two corpora: 25,515 English-original films (default) and 51,624 films of
every original language (translated subtitles, clearly labeled): what any
movie actually says, how words rise and fall across decades, and what makes a
film, a decade, or a genre sound like itself.Read the full README ↗Live: https://moviewords.org — explore the words spoken in two corpora: 34,556 English-original films (default) and 64,046 films of every original language (translated subtitles, clearly labeled): what any movie actually says, how words rise and fall across decades, and what makes a film, a decade, or a genre sound like itself.
Every film's dialogue (from the OPUS OpenSubtitles corpus, subtitles by OpenSubtitles.org) is reduced to a bag of words and compared against the whole corpus with log-odds — which is how you learn that The Godfather Part II's signature words are "corleone, fredo, roth, michael, vito", Horror's are "help, god, please, her, house", and the film that says "dude" the most is, of course, The Big Lebowski (120×).
Only derived word counts are published — no subtitle text is redistributed.
| Path | What it is |
|---|---|
pipeline/ | Python batch pipeline: OPUS + IMDb + TMDB → the published dataset. Runbook in pipeline/README.md |
app/ | The website: Vite + React + Tailwind + DuckDB-WASM, hosted on Cloudflare Pages. Dev guide in app/README.md |
docs/ARCHITECTURE.md | Start here to understand or reproduce the system — architecture, methodology, dataset contract, decisions, toolchain |
docs/FAQ.md | Methodology, limitations, and licensing questions — subtitles vs scripts, corpus bias, copyright position, poster policy |
docs/DATA-QUALITY.md | How bad subtitle files were found and handled — wrong films, commentary tracks, machine-translated and auto-captioned subtitles, and why old films "said" words they never said |
docs/superpowers/ | Original design spec and implementation plan |
docs/sessions/ | Session records (how this was actually built, with gotchas) |
A batch pipeline (Python/DuckDB, fully resumable via per-movie caches) turns the
34GB OPUS corpus into ~2GB of Parquet + JSON + posters on a public Cloudflare R2
bucket. The site is a static SPA on Cloudflare Pages that reads pre-baked JSON
for hot paths and runs real SQL in the browser (DuckDB-WASM over HTTP range
requests) for everything interactive. There are no servers and hosting is free.
Details, decisions, and performance lessons: docs/ARCHITECTURE.md.
pipeline/README.md. Needs
~60GB disk, a free TMDB API key
(TMDB_API_KEY or TMDB_API_TOKEN), and a few hours (we used a throwaway
GCP e2-highmem-4; a laptop works too). A 610-film starter dataset needing
neither is one command: uv run python scripts/build_demo_dataset.py.pipeline/scripts/upload_r2.sh).cd app && npm install && npm run dev, pointing
VITE_DATA_BASE at your data host. Deploy anywhere static
(wrangler pages deploy dist --project-name moviewords).The full published dataset is five Parquet files per corpus on a public bucket
(the all-films corpus under all/ adds a sixth, word_year_lang.parquet) —
download them, or point DuckDB straight at the URLs. Fuller guide with more
example queries: docs/DATA.md.
| File | Size | Contents |
|---|---|---|
| movies.parquet | 0.8 MB | one row per film: title, year, genres, rating, word totals |
| words_by_movie/data.parquet | 88 MB | (imdb_id, word, count), sorted by film |
| words_by_word/data.parquet | 93 MB | same rows, sorted by word |
| word_year.parquet | 6 MB | (word, year, count, movie_count) for trends |
| word_meta.parquet | 3.5 MB | per-word commonness (zipf), part of speech, distinctiveness |
duckdb -c "SELECT title, year, words_per_minute FROM 'https://data.moviewords.org/movies.parquet' ORDER BY words_per_minute DESC LIMIT 10"
Full schema: the dataset contract. Got an analysis idea we haven't thought of? Email [email protected].
Code: MIT (LICENSE). Published dataset: derived word counts, CC BY-NC-SA 4.0 (LICENSE-DATA.md explains why - IMDb's non-commercial dataset terms set the floor). Built from: OPUS OpenSubtitles v2024 (Lison & Tiedemann, 2016) with subtitles from OpenSubtitles.org; IMDb non-commercial datasets (information courtesy of IMDb, used with permission); TMDB (metadata & posters — this product uses the TMDB API but is not endorsed or certified by TMDB). Non-commercial project.
Questions about copyright, methodology, or bias - see the FAQ. Rights holders: takedown requests to [email protected] are honored promptly.