whatisgithub

What is shinkansen-rss-translator?

jimmysu0309/shinkansen-rss-translator — explained in plain English

Analysis updated 2026-05-18

5JavaScriptAudience · generalComplexity · 3/5LicenseSetup · moderate

In one sentence

A self-hosted server that translates any RSS or Atom feed into Traditional Chinese and republishes it for your feed reader.

Mindmap

mindmap
  root((repo))
    What it does
      Translates RSS feeds
      Preserves HTML structure
      Outputs new feed URL
    Tech stack
      Node.js
      Fastify
      SQLite
    Use cases
      Read foreign feeds in Chinese
      Feed into Miniflux
      Track translation cost
    Audience
      Self hosters
      Readers of foreign feeds

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Subscribe to a foreign-language RSS feed and read it translated into Traditional Chinese.

USE CASE 2

Feed a translated output into a reader app like Miniflux or Readwise Reader.

USE CASE 3

Track translation cost and token usage per feed with a built-in dashboard.

USE CASE 4

Fetch full article bodies instead of RSS summaries before translating.

What is it built with?

Node.jsFastifySQLiteGemini API

How does it compare?

jimmysu0309/shinkansen-rss-translator00kaku/wp-rest-playgroundbotpress/documentation-v12
Stars555
LanguageJavaScriptJavaScriptJavaScript
Last pushed2023-02-07
MaintenanceDormant
Setup difficultymoderatehardeasy
Complexity3/53/52/5
Audiencegeneraldeveloperwriter

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Needs Node 20+ with git submodules, and a Gemini API key for the higher quality engine.

You can view, modify, and self-host the code freely, but you cannot resell it as a hosted service.

So what is it?

Shinkansen RSS Translator is a self-hosted server that takes any RSS or Atom feed, translates it into Taiwanese Traditional Chinese, and outputs a new feed that a reader app such as Miniflux or Readwise Reader can subscribe to. It reuses the translation engine from a separate browser extension project called Shinkansen, pulled in as a pinned git submodule, so it inherits that project's tuned prompt, its list of banned mainland Chinese terms to avoid, and its approach to splitting text into segments so nothing gets skipped during translation. The project supports two translation engines: Gemini, which gives higher quality results but needs an API key, and Google Translate, which is free and needs no key. Either can be chosen globally or per feed. When translating an article, only the text is sent for translation while page elements like images and links are held in place with placeholders, so the original HTML structure survives the round trip. Everything is managed through a web interface in the browser: adding and editing feeds, importing and exporting OPML lists, a usage dashboard showing cost and token counts per model, and a log of fetch, translate, and error events that can be filtered and exported to CSV. Feeds can optionally fetch the full article body instead of just the RSS summary before translating it. A cron based schedule handles automatic fetching and translation on a timer, and conditional GET requests mean unchanged feeds are not re-downloaded. Under the hood it runs on Node.js with a Fastify web server and a single SQLite database file for storage. The service can self-maintain by trimming old articles per feed, rotating log retention, and taking a daily automatic backup of the database with the last seven kept. An optional password can be set to protect the web interface and API while the translated RSS output itself stays open so reader apps can fetch it. The project is released under the Elastic License 2.0, which allows viewing, learning from, modifying, and self-hosting the code but forbids repackaging it as a paid hosted service.

Copy-paste prompts

Prompt 1
Help me deploy this project with Docker Compose and set up my Gemini API key.
Prompt 2
Explain how the segment mapping prevents missed translations in this feed translator.
Prompt 3
Show me how to connect this to an existing Miniflux Docker setup.
Prompt 4
Walk me through setting up the banned-terms blacklist for translation style.

Frequently asked questions

What is shinkansen-rss-translator?

A self-hosted server that translates any RSS or Atom feed into Traditional Chinese and republishes it for your feed reader.

What language is shinkansen-rss-translator written in?

Mainly JavaScript. The stack also includes Node.js, Fastify, SQLite.

What license does shinkansen-rss-translator use?

You can view, modify, and self-host the code freely, but you cannot resell it as a hosted service.

How hard is shinkansen-rss-translator to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is shinkansen-rss-translator for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.