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://
- 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
0.2.0 โ Transcription triggered only on video updates
0.3.0 โ Improved UI: transposer page
0.4.0 โ Added metadata language switcher in UI
0.5.0 โ Improved saving metadata
0.6.0 โ
TODOs
Here's a more polished version of your list:
- ๐ Support UUID and Short UUID: Enhance functionality to support requests using both UUID and short UUID formats, in addition to short IDs.
- ๐ 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.
- โณ Provide Feedback on Processing Time: Display a notification indicating that the process may take up to 10 minutes. If it doesn't complete within this time, instruct users to contact support at support@fairkom.eu.
- ๐ Metadata Update Restrictions: Implement authentication for the metadata API, allowing updates only from users who own the respective video.
- ๐ Update README: Revise the README to provide comprehensive and clear information about the tool's features and usage.
- ๐ ๏ธ Create Debugging Documentation: Write detailed documentation on how to debug the Transposer plugin and its related services.
- ๐งช 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.