videosphere
    Preparing search index...

    Interface YouTubeDraftFields

    YouTube-only fields inside the draft document.platforms JSON. Shared copy (title, description, tags) lives at the document root.

    Field names align with YouTube Data API v3 videos.insert snippet / status where applicable.

    interface YouTubeDraftFields {
        titleOverride?: string;
        descriptionOverride?: string;
        tagsOverride?: string[];
        visibilityOverride?: PlatformUploadVisibility;
        thumbnailR2KeyOverride?: string;
        thumbnailContentTypeOverride?: string;
        thumbnailPreviewUrlOverride?: string;
        categoryId?: string;
        madeForKids?: boolean;
        defaultLanguage?: string;
        defaultAudioLanguage?: string;
        embeddable?: boolean;
        license?: "youtube" | "creativeCommon";
        notifySubscribers?: boolean;
        publishAt?: string;
        playlistIds?: string[];
        playlistTitles?: string[];
        recordingDate?: string;
        isShort?: boolean;
    }

    Hierarchy (View Summary)

    Index

    Properties

    titleOverride?: string

    Platform-specific title; maps to each API's title field (e.g. SA fullTitle, YouTube snippet.title).

    descriptionOverride?: string

    Platform-specific description/body text.

    tagsOverride?: string[]

    Platform-specific tags; mapped per API (e.g. YouTube snippet.tags, Vimeo tags).

    visibilityOverride?: PlatformUploadVisibility

    Platform-specific privacy (YouTube and Vimeo only).

    thumbnailR2KeyOverride?: string

    Platform-specific draft thumbnail R2 key when not using the shared draft thumbnail.

    • Omitted/undefined — use the shared draft thumbnail.
    • '' — explicit per-platform “no thumbnail” (do not fall back to shared).
    • null — PATCH/editor clear sentinel; merge removes the override so shared is used again.
    thumbnailContentTypeOverride?: string

    MIME type for thumbnailR2KeyOverride. Uses the same undefined / '' / null semantics as thumbnailR2KeyOverride.

    thumbnailPreviewUrlOverride?: string

    Presigned preview URL for thumbnailR2KeyOverride in the draft editor only. Not persisted in draft document JSON.

    categoryId?: string

    YouTube Data API snippet.categoryId (numeric string, e.g. "22" = People & Blogs).

    madeForKids?: boolean

    Maps to status.selfDeclaredMadeForKids on upload.

    defaultLanguage?: string

    snippet.defaultLanguage (BCP-47, e.g. "en").

    defaultAudioLanguage?: string

    snippet.defaultAudioLanguage (BCP-47). null means explicitly cleared (no language).

    embeddable?: boolean

    status.embeddable.

    license?: "youtube" | "creativeCommon"

    status.license: standard YouTube license vs Creative Commons.

    notifySubscribers?: boolean

    videos.insert query parameter notifySubscribers. When false, subscribers are not notified and the video is omitted from the subscriptions feed. Omitted/true matches YouTube default (notify).

    publishAt?: string

    status.publishAt (ISO 8601). Requires privacyStatus private until publish time.

    playlistIds?: string[]

    After upload, append the video via playlistItems.insert (one call per id). Values are playlist ids from playlist?list=… in the URL.

    playlistTitles?: string[]

    Playlist titles (snippet.title). Same key as porjo/youtubeuploader -metaJSON. The server uses playlists.list (mine=true, paginated), then playlists.insert if no case-insensitive title match, then playlistItems.insert. Duplicate titles in this array are deduped case-insensitively (first wins).

    recordingDate?: string

    Recording date sent to recordingDetails.recordingDate (RFC 3339 full-date, e.g. "2025-06-08"). Omitted from upload unless explicitly set.

    isShort?: boolean

    When true, marks this draft as a YouTube Short (UI icon + shorts URL on success). Classification is automatic from format and duration.