Service: TAMS Gateway - EyevinnOSC/community GitHub Wiki
TAMS Gateway is an open source REST API gateway that implements the Time-addressable Media Store (TAMS) specification. TAMS defines a standard way to store and retrieve segmented media flows using time-based addressing — each media segment is indexed by its start time, making it easy to seek, splice, and replay content without scanning entire files. Available as an open web service in Eyevinn Open Source Cloud, TAMS Gateway combines a CouchDB metadata store with S3-compatible object storage to give your applications a standards-compliant media index API. This tutorial walks you through the steps to get started.
- If you have not already done so, sign up for an Eyevinn OSC account
- A paid OSC plan (required for database services)
TAMS Gateway uses CouchDB to store the media flow index. Navigate to the CouchDB service in the Eyevinn OSC web console. Click Create couchdb and enter a name and admin password for the instance.
Once running, note the instance URL — the connection string will be in the form:
http://admin:<password>@<IP>:<PORT>
TAMS Gateway stores media segments in S3-compatible object storage. You can use AWS S3 or an OSC-managed MinIO instance.
To use MinIO on OSC:
- Navigate to the MinIO service and create an instance.
- Note the endpoint URL, access key ID, and secret access key from the instance details.
Navigate to the TAMS Gateway service. Go to the Service Secrets tab and create the following secrets:
-
dbpassword— your CouchDB admin password -
awskey— your S3 access key ID -
awssecret— your S3 secret access key
Go to My tams-gateways and click Create tams-gateway. Fill in:
- Name: a name for your instance (alphanumeric and underscores only)
-
DbUrl: the CouchDB connection URL (e.g.
http://admin:{{secrets.dbpassword}}@<IP>:<PORT>) -
DbUsername:
admin -
DbPassword:
{{secrets.dbpassword}} -
AwsAccessKeyId:
{{secrets.awskey}} -
AwsSecretAccessKey:
{{secrets.awssecret}} - S3EndpointUrl (optional): endpoint URL for non-AWS S3 storage (e.g. your MinIO URL)
Click the instance card when the status is green and running. The TAMS API is available at the instance URL on port 8000.
The TAMS Gateway exposes the standard TAMS REST API. Register a media flow and ingest segments:
# Register a new flow
curl -X POST https://<instance-url>/flows \
-H "Content-Type: application/json" \
-d '{"label": "my-stream", "codec": "video/mp4"}'
# List registered flows
curl https://<instance-url>/flowsRefer to the TAMS API specification for the full endpoint reference.
osc create eyevinn-tams-gateway mygw \
-o DbUrl="http://admin:mypassword@<IP>:<PORT>" \
-o DbUsername="admin" \
-o DbPassword="mypassword" \
-o AwsAccessKeyId="myaccesskey" \
-o AwsSecretAccessKey="mysecretkey" \
-o S3EndpointUrl="https://<minio-url>"