Projects & export history

Projects group related work: takes, transcripts, dubs and books. An item can belong to several projects, and deleting a project never deletes its items.

Export history records every file VoxStudio writes to your disk: saved takes, transcripts, dubs and books, plus batch outputs. That way you can always find where something went.

Project object

Field Description
id, name, color (#rrggbb), description
item_count, created_at, updated_at
items Detail view only: [{kind, id, title, subtitle, created_at, added_at, missing}]. missing: true means the item was deleted after being added.
exports Detail view only: the export history of the project's items

Endpoints

GET /v1/projects List, most recently updated first
POST /v1/projects {"name": "Launch video", "color": "#ff375f", "description": ""}
GET /v1/projects/{id} With items and exports
PATCH /v1/projects/{id} Any of name, color, description
DELETE /v1/projects/{id} Removes the project; its items are kept
POST /v1/projects/{id}/items {"kind": "take" | "transcript" | "dub" | "book", "id": "…"}. Adding the same item twice is harmless.
DELETE /v1/projects/{id}/items/{kind}/{item_id}
GET /v1/projects/membership?kind=take&id=… Ids of the projects that contain an item

Errors: 404 not_found (unknown project, or an item that doesn't exist), 422 invalid_request (for example a bad colour)

GET /v1/exports

Every exported file, newest first:

[{ "id": "…", "kind": "take", "item_id": "…", "title": "Welcome to VoxStudio…", "format": "wav",
   "path": "/Users/me/Desktop/welcome.wav", "bytes": 173050, "at": 1790600000.0, "exists": true }]

exists is false if the file has since been moved or deleted.

Events

projects.changed ({"id"}) is sent when a project or its items change.