Transsmute (transmute + RSS) is a server written in Go that builds RSS feeds for websites that don't provide them.
Currently, the following feed providers are supported:
- YouTube (channel, playlist)
- Container registries (DockerHub, ghcr.io)
- Kemono
Transsmute can be installed as a container (suggested) or as a compiled binary.
A Docker container is available at ghcr.io/gabe565/transsmute
. The
containerized version of Transsmute will run on port 80 by default,
and accepts all configuration as flags or as environment variables.
See Configuration for more info.
docker run --rm -it -p 80:80 ghcr.io/gabe565/transsmute
Alternatively, an example docker-compose.yml
file
is provided.
A Helm chart is available for Kubernetes deployment. For more information, see charts.gabe565.com or Artifact Hub.
Flag | Environment Variable | Description | Default |
---|---|---|---|
--address |
TRANSSMUTE_ADDRESS |
Listen address | ":3000" (":80" in container) |
--youtube-enabled |
TRANSSMUTE_YOUTUBE_ENABLED |
YouTube API enabled. | true |
--youtube-key |
TRANSSMUTE_YOUTUBE_KEY |
YouTube API key. Required to enable YouTube routes! | "" |
--docker-enabled |
TRANSSMUTE_DOCKER_ENABLED |
Docker API enabled. | true |
--dockerhub-username |
TRANSSMUTE_DOCKERHUB_USERNAME |
DockerHub username for private repos. | "" |
--dockerhub-password |
TRANSSMUTE_DOCKERHUB_PASSWORD |
DockerHub password for private repos. | "" |
--ghcr-username |
TRANSSMUTE_GHCR_USERNAME |
GitHub username for ghcr.io repos. | "" |
--ghcr-password |
TRANSSMUTE_GHCR_PASSWORD |
GitHub PAT for ghcr.io repos. | "" |
--kemono-enabled |
TRANSSMUTE_KEMONO_ENABLED |
Kemono API enabled. | true |
--kemono-hosts |
TRANSSMUTE_KEMONO_HOSTS |
Kemono API hosts, where the key is the URL prefix and the value is the host. | kemono=kemono.su |
Command-line help reference is also available in docs.
DockerHub credentials are only required to access private repositories.
A personal access token is used to authenticate into GitHub's ghcr.io API.
The only required scope is read:packages
.
Click here
to generate a personal access token with the necessary scopes prefilled.
An Atom feed is generated by default, but a file extension of
.json
or .rss
will change the output to the given format.
/youtube/playlist/{playlist_id}
/youtube/channel/{channel_id}
Name | Description | Default |
---|---|---|
no_iframe |
Disables video iframe. Useful for RSS readers that automatically load videos like Miniflux. | false |
/docker/tags/{repo}
/kemono/{service}/user/{id}
/kemono/{service}/podcast/{id}
Name | Description | Default |
---|---|---|
pages |
Maximum number of pages to load. Each page contains 50 posts. | 1 |
q |
Search query. | "" |
tag |
Only include posts that contain the given tag. | "" |