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}}