Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (peertube-plugin-transposer-connector) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Transposer Connector
A multilingual video plugin for PeerTube, developed by fairkom.
Transposer enables automatic transcription and translation of video content using Whisper by OpenAI. It's designed to make video content accessible in multiple languages and supports modern web protocols like ActivityPub and REST.
โจ Features
- Transcribe and translate videos automatically
- Translate transcripts into 26 languages
- Save transcriptions as captions
- Edit captions directly in the UI
- Translate video metadata into 26 languages
- Switch metadata language in the UI
- Change the UI language dynamically
- Access metadata via:
- ActivityPub (JSON-LD)
- REST API endpoint
๐ Supported Languages
Transposer currently supports translation into 26 languages. (A complete list can be added here if desired.)
- ๐ฆ๐ช Arabic (ar)
- ๐ง๐ฆ Bosnian (bs)
- ๐ง๐ฌ Bulgarian (bg)
- ๐ญ๐ท Croatian (hr)
- ๐จ๐ฟ Czech (cs)
- ๐ณ๐ฑ Dutch (nl)
- ๐ฌ๐ง English (en)
- ๐ช๐ช Estonian (et)
- ๐ซ๐ฎ Finnish (fi)
- ๐ซ๐ท French (fr)
- ๐ฉ๐ช German (de)
- ๐ฌ๐ท Greek (el)
- ๐ฎ๐ฑ Hebrew (he)
- ๐ญ๐บ Hungarian (hu)
- ๐ฎ๐น Italian (it)
- ๐ต๐ฑ Polish (pl)
- ๐ต๐น Portuguese (pt)
- ๐ท๐ด Romanian (ro)
- ๐ท๐บ Russian (ru)
- ๐ท๐ธ Serbian (sr)
- ๐ธ๐ฐ Slovak (sk)
- ๐ธ๐ฎ Slovenian (sl)
- ๐ช๐ธ Spanish (es)
- ๐ธ๐ช Swedish (sv)
- ๐น๐ท Turkish (tr)
- ๐บ๐ฆ Ukrainian (uk)
๐ Getting Started
Visit: https://tube.dev.displ.eu/p/transposer
From there, you can:
- Trigger transcription, translation, and metadata translation
- Edit and manage captions
- View and switch between language versions of metadata and UI
Query Parameters
- Switch metadata language:
?metadatalanguage={langcode}
- Switch UI language:
?uilanguage={langcode}
๐ Accessing Metadata
You can access translated metadata using different endpoints:
- REST API (proxied):
https://api.transposer.eu/dev/peertube/metadata/
- REST API (direct PeerTube plugin)
https://
- REST API (direct PeerTube with version of plugin)
https://
- ActivityPub (JSON-LD format)
curl -H "Accept: application/activity+json"
https://
โ๏ธ How It Works
To support high-volume PeerTube instances, Transposer is designed for asynchronous processing using a queuing system.
The architecture includes:
- A dedicated Transposer Engine
- Support for multiple adapters, including one for Whisper
- A Kafka pipeline for distributed processing
- Kong Gateway for exposing APIs and managing routing
This ensures scalable handling of transcription and translation jobs with minimal impact on the PeerTube server.
๐ง Dependencies
! Note: This plugin is still under development.
Youโll need a Language Transposer Service account to enable transcription and translation features.
To request test access, email: support@fairkom.eu After receiving credentials, configure the plugin in the PeerTube admin interface by adding the provided service URL.
๐งโ๐ป Codebase
- Source code available at: https://git.fairkom.net/emb/displ.eu/transposer
- development doc: Development Documentation
๐ฆ Changelog
See here: Changelog
TODOs
- ๐ Restrict Access to Authenticated Users: Ensure the page is only accessible to users who are logged in.
- ๐ Allow Language Change via Query Parameter: Add the ability to change the caption language using a query parameter, for example, &lang=es.
- ๐งช Add GitLab CI Pipeline: Set up a GitLab CI pipeline with SonarQube for automated testing and quality checks.
- ๐ Refactor Code: Refactor the codebase to improve maintainability, performance, and clarity.