Contains several tools used for various internal/backoffice tasks.
Current tools:
- BMM Upload
- Transcription Editor
- Export
- VB Export
- Shorts generation
- Vault
- Admin
Access to each tool is controlled per-user via permissions (see permissions.json).
Allows uploading localized audio files, with a direct link to BMM. The files are ingested using a Temporal workflow after upload.
The main functionality is the ability to select a track from BMM and upload a file to it.
Allows editing word level timestamped transcriptions of video files in JSON format, and downloading them. It is possible to synchronize the transcription with the preview from Mediabanken.
Trigger export workflows for media items. Supports mass-export to configured destinations as well as timed metadata.
Trigger VB (playout) export workflows to configured destinations.
Generate shorts (short-form vertical videos) from existing videos.
Search Mediabanken and preview items.
Manage users and permissions. Only available to admins.
- Node.js
- pnpm
- Golang
- Temporal dev server (Instructions)
- Docker (if you want to build images)
- ConnectRPC tools (see below)
Install connectrpc tools:
# GO tools
go install github.com/bufbuild/buf/cmd/buf@latest
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest
# TypeScript/JS tools
# This are installed globally, you can also install them locally if you want to mess around
npm install -g @connectrpc/protoc-gen-connect-es @bufbuild/protoc-gen-esIf you get issues where protobuf cannot find the go plugins, ensure your Go bin directory is in your PATH.
export PATH=$PATH:$(go env GOPATH)/binInstall dependencies:
cd frontend
pnpm install
cd ../backend
go mod download
cd ..Update Config:
cp frontend/env.example frontend/.env
vim frontend/.env
cp backend/env.example backend/.env
vim backend/.envUpdate intial permissions:
cp permissions.example.json permissions.json
vim permissions.jsonStart temporal:
temporal server start-devStart the frontend:
cd frontend && pnpm devStart the backend:
cd backend && go run cmd/server/main.goRegenerate api code:
buf generateThe api is defined in api/v1/api.proto (with shared types in api/v1/common.proto).
The definitions are written in protobuf, and the code is generated using buf and protoc-gen-connect-go.
More information can be found at: