MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Turn written stories into audio stories with AI narration.
AI translation
Biến truyện chữ thành truyện audio với giọng đọc AI
MediaTypeScript · JavaScriptGitHub @mochihatOnlineOwner 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
your own audio story
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Biến truyện chữ trên mạng thành truyện audio đọc bằng giọng nữ AI tiếng Việt. 1. Dán link truyện (link chương 1, hoặc link trang giới thiệu truyện). 2. Chọn số chương muốn tạo. 3. StoryCast tự lấy chữ từng chương, đi theo nút “Chương sau”, rồi đọc bằng giọng Hoài My (Microsoft Edge TTS, miễn phí). 4. Nghe ngay trên web (tự nhớ chỗ đang nghe, chỉnh tốc độ 0.75x–2x, tự chuyển chương), tải từng chương .mp3, hoặc tải cả quyển thành một file .m4b có mục lục chương (mở được bằng các app nghe sách nói). Cần Node.js 22.13 trở lên (dùng SQLite có sẵn trong Node) và ffmpeg (chỉ để ghép cả quyển).Read the full README ↗
StoryCast AI is an open-source tool that automates turning online novels into audiobooks. It scrapes each chapter, cleans up the text, reads it aloud with an expressive AI voice, plays it in a built-in web player, and can export the whole story as a single .m4b audiobook file.
Completely free — no account sign-up and no third-party API key required!
@mozilla/readability and jsdom.Chương sau, 下一章) and strips noise, ads and anti-copy characters.data/dict/./web?url=…&mode=both opens straight in side-by-side mode.script-src 'none', so nothing from the site runs inside StoryCast. Search forms that use POST (like PO18's) are not supported.vi-VN-HoaiMyNeural) voice.zh-CN-XiaoxiaoNeural) voice.。!?;).0.75x to 2.0x)..mp3..m4b file with chapter markers, compatible with Apple Books, Smart AudioBook Player, Voice, and more.node:sqlite) — no database server to install.| Layer | Technology / Library |
|---|---|
| Framework | Next.js 16 (App Router), React 19 |
| Language | TypeScript 5 |
| UI | Tailwind CSS v4, Radix UI, React Icons |
| State management | Zustand |
| Text-to-Speech | msedge-tts |
| Parser & Scraper | @mozilla/readability, jsdom |
| Database | node:sqlite (native SQLite in Node.js) |
| Audio processing | ffmpeg |
You need two things installed before you start:
>= 22.13.0 (required)Node.js provides the node and npm commands used in every step below, and version 22.13+ is required for node:sqlite.
First, check whether you already have it:
node -v
v22.13.0 or higher, you're good — skip to step 2.command not found, or a version lower than v22.13.0, install Node.js first using one of the options below.Linux / macOS — using nvm (recommended, works on any distro):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# close and reopen your terminal, then:
nvm install 22
Ubuntu / Debian — using apt:
sudo apt install nodejs npm -y
node -v # must be v22.13.0 or higher
⚠️ The Node.js version in apt depends on your Ubuntu/Debian release. Older releases (e.g. Ubuntu 22.04 / 24.04) ship a version that is too old — if
node -vshows lower thanv22.13.0, remove it and use nvm instead.
macOS — using Homebrew:
brew install node
Windows:
winget install OpenJS.NodeJS.LTS
Or download the LTS installer from nodejs.org. Reopen your terminal after installing.
Verify the installation before continuing:
node -v # v22.13.0 or higher
npm -v
Needed to merge chapters into a .m4b file.
sudo apt install ffmpeg -ybrew install ffmpegwinget install Gyan.FFmpeg or via Chocolatey.Make sure
node -vworks (see Requirements) before running these steps. Without Node.js, everynpmcommand fails withnpm: command not foundand nothing will be running atlocalhost:3001.
git clone https://github.com/mochihat/storycast-ai.git
cd storycast-ai
npm install
npm run dev
Wait until the terminal shows ✓ Ready, then open http://localhost:3001 in your browser.
Keep this terminal open — closing it (or pressing Ctrl+C) stops the server.
StoryCast always runs on port 3001 (both
npm run devandnpm start). If that port is already taken — usually by an older StoryCast you forgot to stop — it does not move to another port; it stops and printsCổng 3001 đang bị chiếmwith how to free it. See Troubleshooting.
For smoother performance and lower memory usage:
npm run build
npm start
To have StoryCast start by itself when you log in — no terminal needed, just open http://localhost:3001 — install it as a background service:
./scripts/install-service.sh
| What | Command |
|---|---|
| After pulling new code (rebuild + restart) | ./scripts/install-service.sh |
Restart (e.g. after changing .env.local) | systemctl --user restart storycast |
| Stop / start | systemctl --user stop storycast / systemctl --user start storycast |
| Turn off auto-start | systemctl --user disable --now storycast |
| See its log | journalctl --user -u storycast -f |
The service uses port 3001, so
npm run devwill say the port is taken while it runs. Stop the service first (systemctl --user stop storycast) if you want to develop.
| Symptom | Cause & fix |
|---|---|
node: command not found / npm: command not found | Node.js isn't installed. Follow Requirements → Node.js, then run npm install again. |
Browser says "This site can't be reached" at localhost:3001 | The server isn't running. Check the terminal where you ran npm run dev for an error, and make sure it shows ✓ Ready. |
No such built-in module: node:sqlite | Your Node.js is older than 22.13. Upgrade it (e.g. nvm install 22). |
Cổng 3001 đang bị chiếm | StoryCast always runs on port 3001 (two copies would share one database). Another copy is probably still running: press Ctrl+C in its terminal, or run fuser -k 3001/tcp (Linux) / lsof -ti :3001 | xargs kill (macOS). |
ExperimentalWarning: SQLite is an experimental feature | Just a warning, not an error — the app works normally. |
| The first Chinese story takes ~30 s to start | The convert dictionaries (~60 MB) are being downloaded into data/dict/. Later stories start in a few seconds. They also use ~250 MB of RAM while the server runs. |
Weird errors after npm install failed earlier | Delete the node_modules folder and run npm install again. |
truyenfull)..mp3 chapters, or click Tải cả quyển (.m4b) (download the whole book) to listen offline on your phone.storycast-ai/
├── app/ # Next.js App Router (UI & API endpoints)
│ ├── api/ # API routes for stories, audio and downloads
│ └── page.tsx # Main dashboard page
├── components/ # UI components (Player, Sidebar, Cover...)
├── data/ # Local storage (gitignored)
│ ├── storycast.db # SQLite database
│ └── audio/ # Generated mp3 files, grouped by story ID
├── lib/ # Core logic
│ ├── book.ts # Builds the m4b file and chapter metadata with ffmpeg
│ ├── db.ts # node:sqlite connection and queries
│ ├── scraper.ts # Chapter extraction and anti-copy cleanup
│ ├── convert.ts # VietPhrase "convert" with Hán Việt names
│ ├── drm.ts # Sec-MS-GEC v2 token required by Edge TTS
│ ├── translate.ts # Chooses convert or Google Translate
│ ├── webpage.ts # Converts a whole web page and routes its links back through StoryCast
│ ├── tts.ts # Edge TTS connection and text chunking
│ └── worker.ts # Background processing queue
├── types.ts # TypeScript type definitions
└── public/ # Static assets
All data created while using the app lives in the data/ folder:
data/storycast.db: the story list, chapter info and chapter text.data/audio/<story_id>/: the .mp3 audio files for each chapter.💡 Tips:
- To back up: just copy the
data/folder.- To reset everything: stop the server and delete the
data/folder.
Cookie request header..env.local in the project folder containing PO18_COOKIE=<the value you copied>, then restart the server.https://www.po18.tw/books/<id>) or a chapter link (.../books/<id>/articles/<id>).Readability) and automatically looks for "Next chapter" links, so most novel sites with standard HTML structure work well.TSCharacters.txt from OpenCC (Apache-2.0).Both are pinned to a specific commit in lib/convert.ts and downloaded at runtime; they are not part of this repository.
Distributed under the MIT License.