Skip to content

📰 Build RSS feeds for websites that don't provide them.

License

Notifications You must be signed in to change notification settings

gabe565/transsmute

Repository files navigation

Transsmute

Transsmute Icon

Build Artifact Hub

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

Installation

Transsmute can be installed as a container (suggested) or as a compiled binary.

Docker

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.

Kubernetes

A Helm chart is available for Kubernetes deployment. For more information, see charts.gabe565.com or Artifact Hub.

Configuration

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

DockerHub

DockerHub credentials are only required to access private repositories.

ghcr.io

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.

Routes

Feed Type

An Atom feed is generated by default, but a file extension of .json or .rss will change the output to the given format.

YouTube

  • /youtube/playlist/{playlist_id}
  • /youtube/channel/{channel_id}

Query Parameters

Name Description Default
no_iframe Disables video iframe. Useful for RSS readers that automatically load videos like Miniflux. false

Docker

  • /docker/tags/{repo}

Kemono

  • /kemono/{service}/user/{id}
  • /kemono/{service}/podcast/{id}

Query Parameters

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. ""