{"id":28749727,"url":"https://github.com/svdc1/mirumoji","last_synced_at":"2025-08-20T23:10:00.707Z","repository":{"id":297091199,"uuid":"995621697","full_name":"svdC1/mirumoji","owner":"svdC1","description":"Self-hosted Japanese immersion player — clickable subs, Whisper transcription \u0026 Anki export","archived":false,"fork":false,"pushed_at":"2025-08-14T19:11:22.000Z","size":22438,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-14T20:36:02.896Z","etag":null,"topics":["anki","docker","fastapi","japanese-language-learners","japanese-learning","japanese-study","language-learning","openai","python","react","self-hosted","subtitles","typescript","video-player","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svdC1.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T19:09:36.000Z","updated_at":"2025-08-14T19:10:30.000Z","dependencies_parsed_at":"2025-06-04T04:30:24.737Z","dependency_job_id":"63f1ef44-2e6c-49ac-bd04-8028aea69ba8","html_url":"https://github.com/svdC1/mirumoji","commit_stats":null,"previous_names":["svdc1/mirumoji"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/svdC1/mirumoji","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svdC1%2Fmirumoji","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svdC1%2Fmirumoji/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svdC1%2Fmirumoji/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svdC1%2Fmirumoji/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svdC1","download_url":"https://codeload.github.com/svdC1/mirumoji/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svdC1%2Fmirumoji/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271400259,"owners_count":24752830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anki","docker","fastapi","japanese-language-learners","japanese-learning","japanese-study","language-learning","openai","python","react","self-hosted","subtitles","typescript","video-player","whisper"],"created_at":"2025-06-16T21:00:39.705Z","updated_at":"2025-08-20T23:10:00.702Z","avatar_url":"https://github.com/svdC1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub Release](https://img.shields.io/github/v/release/svdC1/mirumoji?display_name=release\u0026style=for-the-badge\u0026logoSize=auto\u0026label=Version)\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/svdC1/mirumoji/total?style=for-the-badge\u0026logoSize=auto\u0026label=GitHub%20Downloads\u0026link=https%3A%2F%2Fgithub.com%2FsvdC1%2Fmirumoji%2Freleases)\n![Docker Pulls](https://img.shields.io/docker/pulls/svdc1/mirumoji?style=for-the-badge\u0026logoSize=auto\u0026link=https%3A%2F%2Fhub.docker.com%2Frepository%2Fdocker%2Fsvdc1%2Fmirumoji%2F)\n\n---\n\n# Overview\n\n\u003e Mirumoji is an open-source, self-hosted Japanese immersion toolkit. Drop in any video, anime episode, drama or audio clip and it gives you: clickable tokenized subtitles with dictionary pop-ups, Whisper-powered transcription, instant SRT/clip extraction, and one-click Anki deck export — all in Docker, all running on your own machine.\n\n\u003e Optional [`OpenAI`](https://platform.openai.com/docs/overview) Integration \u0026rarr; Customizable GPT Breakdowns of Subtitles\n\n\u003e Optional [`Modal`](https://modal.com) Integration \u0026rarr; Install a CPU only version and run all GPU tasks on the cloud\n\n---\n\n# Preview\n\n\u003e View a [`Preview`](https://svdc1.github.io/mirumoji) of the frontend _(No backend running)_\n\n# Documentation\n\n\u003e Access full [`Documentantion`](https://svdc1.github.io/mirumoji/docs)\n\n# Features\n\n## **Interactive Video Player**\n\n![alt-text](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/player.png?raw=true)\n\n\u003e Upload your local anime/J-Drama espisodes or any Japanese video and `.SRT` subtitles.\n\n## **Clickable Japanese Subtitles**\n\n![alt-text](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/word_dialog.png?raw=true)\n\n\u003e Subtitles are tokenized ([`kuromoji.js`](https://github.com/takuyaa/kuromoji.js)), allowing you to click individual words for information\n\n## **Dictionary**\n\n![alt-text](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/dictionary.png?raw=true)\n\n\u003e Dictionary ([`kotobase`](https://github.com/svdC1/kotobase)) page allowing wildcard searches.\n\n## **Text Analyzer**\n\n![alt-txt](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/text_analyzer.png?raw=true)\n\n\u003e Copy and paste text for tokenized output with furigana and clickable words.\n\n## **OpenAI Integration**\n\n![alt-text](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/gpt_template.png?raw=true)\n\n\u003e Modify System Message and User Prompt with `{sentence}` and `{word}` variables.\n\n## **Local Media Processing**\n\n### **Video Conversion**\n\n\u003e Upload videos in various formats; they can be converted to MP4 for optimal playback.\n\n### **SRT Generation**\n\n\u003e Generate subtitles for your videos. Runs [`FasterWhisper`](https://github.com/SYSTRAN/faster-whisper) with modified parameters to increase accuracy for longer media such as Anime/ J-Drama episodes.\n\n## **Audio Transcription**\n\n![alt-text](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/transcription.png?raw=true)\n\n\u003e Transcribe Japanese audio from recordings or uploaded files.\n\n## **Profile-Based Data Management**\n\n### **Persistent Storage**\n\n![alt-img](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/profile.png?raw=true)\n\n\u003e Profile configurations and all other profile-related data is stored and managed via SQLite database by the backend.\n\n### **Clip Saving**\n\n![alt-img](https://github.com/svdC1/mirumoji/blob/main/.github/example_imgs/clips.png?raw=true)\n\n\u003e Save important video segments with their associated word breakdowns and export as an Anki Deck\n\n---\n\n# Setup\n\n\u003e Both the [`frontend`](https://github.com/svdC1/mirumoji/tree/main/apps/frontend) and [`backend`](https://github.com/svdC1/mirumoji/tree/main/apps/backend) have pre-built [`Docker`](https://www.docker.com/) images and are set up to work with Docker Compose.\n\n\u003e The easiest setup is to run the [`launcher`](https://github.com/svdC1/mirumoji/tree/main/apps/cli) for your platform. **For detailed instructions please refer to the [`Setup Guide`](https://svdc1.github.io/mirumoji/docs/Setup-Guide)**\n\n\u003e You can also choose to [`build`](https://hub.docker.com/repository/docker/svdc1/mirumoji/general) the images locally with the Dockerfiles provided.\n\n---\n\n# Image Sizes\n\n\u003e Compressed sizes for the Docker Images\n\n\u003e -   ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/svdc1/mirumoji/backend-gpu-latest?style=for-the-badge\u0026\u0026logoSize=auto\u0026label=GPU%20Backend%20Image\u0026link=https%3A%2F%2Fhub.docker.com%2Frepository%2Fdocker%2Fsvdc1%2Fmirumoji%2Ftags%2Fbackend-gpu-latest%2F)\n\u003e -   ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/svdc1/mirumoji/backend-cpu-latest?style=for-the-badge\u0026logoSize=auto\u0026label=CPU%20Backend%20Image\u0026link=https%3A%2F%2Fhub.docker.com%2Frepository%2Fdocker%2Fsvdc1%2Fmirumoji%2Ftags%2Fbackend-cpu-latest%2F)\n\u003e -   ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/svdc1/mirumoji/frontend-latest?style=for-the-badge\u0026logoSize=auto\u0026label=Frontend%20Image\u0026link=https%3A%2F%2Fhub.docker.com%2Frepository%2Fdocker%2Fsvdc1%2Fmirumoji%2Ftags%2Ffrontend-latest%2F)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvdc1%2Fmirumoji","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvdc1%2Fmirumoji","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvdc1%2Fmirumoji/lists"}