sanity-plugin-mux-input
Version:
An input component that integrates Sanity Studio with Mux video encoding/hosting service.
29 lines (23 loc) • 763 B
text/typescript
import type {SanityClient} from 'sanity'
import {createUrlParamsObject} from './createUrlParamsObject'
import type {MuxThumbnailUrl, ThumbnailOptions} from './types'
import {AssetThumbnailOptions} from './types'
export interface PosterSrcOptions extends ThumbnailOptions {
asset: AssetThumbnailOptions['asset']
client: SanityClient
}
export function getPosterSrc({
asset,
client,
fit_mode,
height,
time = asset.thumbTime ?? undefined,
width,
}: PosterSrcOptions): MuxThumbnailUrl {
const params = {fit_mode, height, width}
if (time) {
;(params as any).time = time
}
const {playbackId, searchParams} = createUrlParamsObject(client, asset, params, 't')
return `https://image.mux.com/${playbackId}/thumbnail.png?${searchParams}`
}