An organization
Bucket(s)
One or more video files
All GraphQL queries and mutations related to file markers require the internal ID of the file(s) being operated on.
You must first obtain the internal file IDs with a query such as filesByLocators, including the file id in the response.
query filesByLocators($locators: [FileLocatorInput!]!) {filesByLocators(locators: $locators) {id}}
{"locators": [{"type": "S3FileLocator","bucket": "my-bucket","key": "example/path/my-file.mov"},{"type": "S3FileLocator","bucket": "my-bucket","key": "example/path/my-other-file.mov"}]}
{"data": {"filesByLocators": [{"id": "f63a3849-3cf3-4835-be33-6743af08747c"},{"id": "6ff1ee7d-d1e6-429b-81cd-0d07ea42bc9b"}]}}
After obtaining the file IDs, you can insert markers one at a time by using the createMarker mutation.
mutation CreateMarker($input: MarkerInput!) {createMarker(input: $input) {idfileIdstartendtypename}}
{"input": {"fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 0,"end": 32,"name": "Marker 1","type": "clip"}}
{"data": {"creatMarker": {"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 0,"end": 32,"name": "Marker 1","type": "clip"},}}
To insert or update multiple markers at once, you can use the bulkUpsertMarkers mutation to either insert or update multiple markers for each file.
mutation BulkUpsertMarkers($input: [MarkerInput!]!) {bulkUpsertMarkers(data: $input) {idfileIdtypenamestartend}}
{"input": [{"fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 0,"end": 61,"name": "Marker 1","type": "clip"},{"fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 62,"end": 125,"name": "Marker 2","type": "clip"},{"fileId": "6ff1ee7d-d1e6-429b-81cd-0d07ea42bc9b","start": 0,"end": 32,"name": "Marker 1","type": "clip"}]}
{"data": {"bulkUpsertMarkers": [{"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 0,"end": 61,"name": "Marker 1","type": "clip"},{"id": "ed033cb2-7ac4-465e-b5f1-067fe473f29e","fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 62,"end": 125,"name": "Marker 2","type": "clip"},{"id": "b24e5c7d-e9de-419f-8aea-2e3be4018c75","fileId": "6ff1ee7d-d1e6-429b-81cd-0d07ea42bc9b","start": 0,"end": 32,"name": "Marker 1","type": "clip"}]}}
You can list the markers for a specific file using the markers query.
query Markers($filters: MarkerFilters) {markers(filters: $filters) {edges {node {idfileIdstartendtypename}}}}
{"filters": {"fileId": {"eq": "f63a3849-3cf3-4835-be33-6743af08747c"}}}
{"data": {"markers": {"edges": [{"node": {"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","fileId": "f63a3849-3cf3-4835-be33-6743af08747c","start": 0,"end": 32,"name": "Marker 1","type": "clip"}}]}}}
You can update the details of an existing marker using the updateMarker mutation.
mutation UpdateMarker($id: ID!, $input: MarkerInput!) {updateMarker(id: $id, input: $input) {idstartend}}
{"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","input": {"start": 20,"end": 45}}
{"data": {"updateMarker": {"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","start": 20,"end": 45}}}
To delete an existing marker, you can use the deleteMarker mutation.
mutation DeleteMarker($id: ID!) {deleteMarker(id: $id) {id}}
{"id": "3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a"}
{"data": {"deleteMarker": null}}
To delete multiple markers at once, you can use the deleteMarkers mutation.
mutation DeleteMarkers($ids: [ID!]!) {deleteMarkers(ids: $ids) {id}}
{"ids": ["3e137ef5-e64a-46ce-9fb8-6d3d6f850a0a","ed033cb2-7ac4-465e-b5f1-067fe473f29e"]}
{"data": {"deleteMarkers": null}}