Skip to content

msfragala/sanity-plugin-youtube-input

Repository files navigation

sanity-plugin-youtube-input

✨ Enriched YouTube video data for Sanity. ✨

Enrich the YouTube videos in your Sanity studio with metadata pulled from Google's YouTube Data API, along with in-studio embeds so you can preview and play videos right in your studio. Enter any valid YouTube video URL and this plugin populates the video's title, description, published date, and supported thumbnails for you.

Installation

npm install sanity-plugin-youtube-input

Setup

Add it as a plugin in sanity.config.ts:

import { defineConfig } from 'sanity'
import { youtubeInput } from 'sanity-plugin-youtube-input'

export default defineConfig({
  plugins: [
    youtubeInput({ apiKey: '<your-google-api-key>' })
  ],
})

You'll need a Google API token with access to the YouTube Data API. If you don't already have one, you can create an API token in the Google API Console. Follow this guide from the YoutTube Data API docs if you aren't sure how to do so.

Usage

This plugin adds a youtubeVideo type to your schema. Use this type to create a field for YouTube videos with enriched data, like in this example of a content model for YouTube embeds:

defineType({
  name: 'youtubeEmbed,
  type: 'object',
  fields: [
    {
      name: 'video',
      type: 'youtubeVideo',
    },
    {
      name: 'autoplay',
      type: 'boolean',
      initialValue: false,
    },
    {
      name: 'controls',
      type: 'boolean',
      initialValue: true,
    },
  ]
})

Screenshots

License

MIT © Mitchell Fragala