Exosphere.Bsky.Video (Exosphere v0.3.0)

Copy Markdown View Source

XRPC client functions for the app.bsky.video namespace.

Generated from vendored lexicons — DO NOT EDIT.

Endpoints

  • abort_upload — procedure: app.bsky.video.abortUpload
  • finish_upload — procedure: app.bsky.video.finishUpload
  • get_job_status — query: app.bsky.video.getJobStatus
  • get_upload_limits — query: app.bsky.video.getUploadLimits
  • get_upload_status — query: app.bsky.video.getUploadStatus
  • start_upload — procedure: app.bsky.video.startUpload
  • upload_part — procedure: app.bsky.video.uploadPart
  • upload_video — procedure: app.bsky.video.uploadVideo

Summary

Functions

Abort an upload only while it is created, releasing its quota reservation immediately. Terminal sessions are unchanged and return their terminal outcome. A finishing session returns UploadNotReady.

Finish an upload. This call is idempotent and safe to retry. On deduplication completedJobId may differ from the input jobId; poll getJobStatus with completedJobId. Probe-based validation failures surface later as JOB_STATE_FAILED from getJobStatus, not as errors from this call.

Get status details for a video processing job.

Get video upload limits for the authenticated user.

Get the authoritative status of the upload phase. Terminal states remain readable. completedJobId and jobStatus are present only for completed sessions; failureReason is present only for failed sessions.

Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.

Upload one part. Parts are idempotent and may be retried or re-sent while the session is created. Each expected length is derived from the upload size and part size, and Content-Length must match exactly. ETags are never exposed to clients.

Upload a video to be processed then stored on the PDS.

Functions

abort_upload(client, body \\ %{})

@spec abort_upload(Exosphere.ATProto.XRPC.Client.t(), map()) ::
  {:ok, map()} | {:error, term()}

Abort an upload only while it is created, releasing its quota reservation immediately. Terminal sessions are unchanged and return their terminal outcome. A finishing session returns UploadNotReady.

finish_upload(client, body \\ %{})

@spec finish_upload(Exosphere.ATProto.XRPC.Client.t(), map()) ::
  {:ok, map()} | {:error, term()}

Finish an upload. This call is idempotent and safe to retry. On deduplication completedJobId may differ from the input jobId; poll getJobStatus with completedJobId. Probe-based validation failures surface later as JOB_STATE_FAILED from getJobStatus, not as errors from this call.

get_job_status(client, params \\ [])

@spec get_job_status(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get status details for a video processing job.

## Parameters

  • jobId (string, required)

get_upload_limits(client)

@spec get_upload_limits(Exosphere.ATProto.XRPC.Client.t()) ::
  {:ok, map()} | {:error, term()}

Get video upload limits for the authenticated user.

get_upload_status(client, params \\ [])

@spec get_upload_status(Exosphere.ATProto.XRPC.Client.t(), map() | keyword()) ::
  {:ok, map()} | {:error, term()}

Get the authoritative status of the upload phase. Terminal states remain readable. completedJobId and jobStatus are present only for completed sessions; failureReason is present only for failed sessions.

## Parameters

  • jobId (string, required)

start_upload(client, body \\ %{})

@spec start_upload(Exosphere.ATProto.XRPC.Client.t(), map()) ::
  {:ok, map()} | {:error, term()}

Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.

upload_part(client, params \\ [], body \\ %{})

@spec upload_part(Exosphere.ATProto.XRPC.Client.t(), map() | keyword(), map()) ::
  {:ok, map()} | {:error, term()}

Upload one part. Parts are idempotent and may be retried or re-sent while the session is created. Each expected length is derived from the upload size and part size, and Content-Length must match exactly. ETags are never exposed to clients.

## Parameters

  • jobId (string, required)
  • partNumber (integer, required)

upload_video(client, body \\ %{})

@spec upload_video(Exosphere.ATProto.XRPC.Client.t(), map()) ::
  {:ok, map()} | {:error, term()}

Upload a video to be processed then stored on the PDS.