{"_id":"@devx-labs/strapi-plugin-video-thumbnail","_rev":"2-daec30574fef766770f8623ce4e13d49","name":"@devx-labs/strapi-plugin-video-thumbnail","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@devx-labs/strapi-plugin-video-thumbnail","version":"1.0.0","keywords":["strapi","strapi-plugin","video","thumbnail","preview"],"author":{"name":"DevX Labs"},"license":"MIT","_id":"@devx-labs/strapi-plugin-video-thumbnail@1.0.0","maintainers":[{"name":"prathambhatia","email":"prathambhatia741@gmail.com"}],"homepage":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail#readme","bugs":{"url":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail/issues"},"dist":{"shasum":"48bd809a577d62ca54150d5f2b53e4558fd7fe32","tarball":"https://registry.npmjs.org/@devx-labs/strapi-plugin-video-thumbnail/-/strapi-plugin-video-thumbnail-1.0.0.tgz","fileCount":7,"integrity":"sha512-mIKonjx23XOkkrgSvV4tapLEX9ESuA5Y+IK6AsBqiJE/k1oBxJw8UJelyOiUKUWynbGJ8bNXI/mwgLgEtYu2ZA==","signatures":[{"sig":"MEUCIQCRp5gxdzC/eJ6V59tImSrX6RCOG64wkBaAzd4j3C8e4QIgSxfS+rA8t3FucOdo3LxM+JYGPvQO9BvV6J0Q6DxQ+qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8791371},"type":"commonjs","strapi":{"kind":"plugin","name":"video-thumbnail","description":"Auto-extracts a thumbnail from uploaded videos and sets it on a configurable preview image field","displayName":"Video Thumbnail"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./dist/admin/index.mjs","source":"./admin/src/index.ts","default":"./dist/admin/index.js","require":"./dist/admin/index.js"},"./strapi-server":{"import":"./dist/server/index.mjs","source":"./server/src/index.ts","default":"./dist/server/index.js","require":"./dist/server/index.js"}},"gitHead":"027bc34dab0af8ef06dc3842045e4fd3fb4ffcfe","scripts":{"build":"strapi-plugin build","watch":"strapi-plugin watch","verify":"strapi-plugin verify"},"_npmUser":{"name":"prathambhatia","email":"prathambhatia741@gmail.com"},"repository":{"url":"git+https://github.com/prathambdevx/strapi-plugin-video-thumbnail.git","type":"git"},"_npmVersion":"11.6.2","description":"Strapi 5 plugin that auto-extracts a thumbnail from uploaded videos and sets it on a configurable preview image field","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.9.3","@types/react":"^18.3.31","@strapi/icons":"^2.2.0","@strapi/strapi":"^5.48.1","@strapi/sdk-plugin":"^5.4.0","@strapi/design-system":"^2.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@strapi/icons":"^2.0.0","@strapi/strapi":"^5.0.0","@strapi/design-system":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-video-thumbnail_1.0.0_1782208295439_0.4455356617381223","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@devx-labs/strapi-plugin-video-thumbnail","version":"1.1.0","description":"Strapi 5 plugin that auto-extracts a thumbnail from uploaded videos and sets it on a configurable preview image field","keywords":["strapi","strapi-plugin","video","thumbnail","preview"],"homepage":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail#readme","repository":{"type":"git","url":"git+https://github.com/prathambdevx/strapi-plugin-video-thumbnail.git"},"license":"MIT","author":{"name":"DevX Labs"},"type":"commonjs","exports":{"./package.json":"./package.json","./strapi-admin":{"source":"./admin/src/index.ts","import":"./dist/admin/index.mjs","require":"./dist/admin/index.js","default":"./dist/admin/index.js"},"./strapi-server":{"source":"./server/src/index.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js","default":"./dist/server/index.js"}},"scripts":{"build":"strapi-plugin build","watch":"strapi-plugin watch","verify":"strapi-plugin verify"},"peerDependencies":{"@strapi/design-system":"^2.0.0","@strapi/icons":"^2.0.0","@strapi/strapi":"^5.0.0","react":"^18.0.0","react-dom":"^18.0.0"},"devDependencies":{"@strapi/design-system":"^2.2.0","@strapi/icons":"^2.2.0","@strapi/sdk-plugin":"^5.4.0","@strapi/strapi":"^5.48.1","@types/react":"^18.3.31","react":"^18.3.1","react-dom":"^18.3.1","typescript":"^5.9.3"},"strapi":{"kind":"plugin","name":"video-thumbnail","displayName":"Video Thumbnail","description":"Auto-extracts a thumbnail from uploaded videos and sets it on a configurable preview image field"},"gitHead":"027bc34dab0af8ef06dc3842045e4fd3fb4ffcfe","_id":"@devx-labs/strapi-plugin-video-thumbnail@1.1.0","bugs":{"url":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-ZYj2/lmhjjHPWGDs8QE8YjR+RFWv0FJW03f4WydX5ANfSiQQFKz8KtjgUBewvqLDAwNfDPW/3uLiqE5OhLJ6/Q==","shasum":"27f6e30efe3d02a17a6637b9b54b7c06d3541fc9","tarball":"https://registry.npmjs.org/@devx-labs/strapi-plugin-video-thumbnail/-/strapi-plugin-video-thumbnail-1.1.0.tgz","fileCount":7,"unpackedSize":8796259,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCD8P3r7RjusJGKGfxfugd4OmQ/nQSkflIEfcSqxQtS8QIhAIMZqdiSOW9LJUimrTBAt0rXEkRUB3yMOAJZm40TUj5n"}]},"_npmUser":{"name":"prathambhatia","email":"prathambhatia741@gmail.com"},"directories":{},"maintainers":[{"name":"prathambhatia","email":"prathambhatia741@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/strapi-plugin-video-thumbnail_1.1.0_1782208738334_0.1297444088908175"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T09:51:35.198Z","modified":"2026-06-23T09:58:58.688Z","1.0.0":"2026-06-23T09:51:35.618Z","1.1.0":"2026-06-23T09:58:58.527Z"},"bugs":{"url":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail/issues"},"author":{"name":"DevX Labs"},"license":"MIT","homepage":"https://github.com/prathambdevx/strapi-plugin-video-thumbnail#readme","keywords":["strapi","strapi-plugin","video","thumbnail","preview"],"repository":{"type":"git","url":"git+https://github.com/prathambdevx/strapi-plugin-video-thumbnail.git"},"description":"Strapi 5 plugin that auto-extracts a thumbnail from uploaded videos and sets it on a configurable preview image field","maintainers":[{"name":"prathambhatia","email":"prathambhatia741@gmail.com"}],"readme":"# @devx-labs/strapi-plugin-video-thumbnail\n\nStrapi 5 plugin that automatically extracts a thumbnail from an uploaded video and sets it on a configurable preview image field — all client-side, no FFmpeg required.\n\n## How it works\n\nWhen an editor opens a content entry that has a video field, the plugin:\n\n1. Seeks to 0.1 s into the video to skip potential black frames\n2. Draws the frame onto a canvas, resizes it to max 240 px wide\n3. Exports it as WebP at 70% quality\n4. Checks the media library for an existing thumbnail with the same name (avoids duplicates)\n5. Uploads it to the same folder as the original video\n6. Sets the result on the configured preview image field automatically\n\nThe editor just has to save the entry.\n\n## Install\n\n```bash\nnpm install @devx-labs/strapi-plugin-video-thumbnail\n# or\nyarn add @devx-labs/strapi-plugin-video-thumbnail\n```\n\n## Configure\n\nIn `config/plugins.ts` (or `config/plugins.js`):\n\n```ts\nexport default {\n  'video-thumbnail': {\n    enabled: true,\n    config: {\n      contentTypes: [\n        {\n          uid: 'api::reel.reel',\n          // optional: only activate when a field equals a value\n          condition: { field: 'type', value: 'VIDEO' },\n          // dot-path to the video media field\n          videoField: 'video.video',\n          // dot-path to the preview image field\n          previewField: 'video.preview_image',\n        },\n      ],\n    },\n  },\n};\n```\n\n### Config options\n\n| Key | Type | Required | Description |\n|---|---|---|---|\n| `uid` | `string` | ✅ | Content type UID |\n| `videoField` | `string` | ✅ | Dot-path to the video media field |\n| `previewField` | `string` | ✅ | Dot-path to the preview image field |\n| `condition.field` | `string` | — | Only activate when this field… |\n| `condition.value` | `any` | — | …equals this value |\n\n### Multiple content types\n\n```ts\ncontentTypes: [\n  {\n    uid: 'api::reel.reel',\n    condition: { field: 'type', value: 'VIDEO' },\n    videoField: 'video.video',\n    previewField: 'video.preview_image',\n  },\n  {\n    uid: 'api::course.course',\n    videoField: 'introVideo',\n    previewField: 'coverImage',\n  },\n],\n```\n\n## Requirements\n\n- Strapi 5\n- The video must be publicly accessible from the browser (same origin or CORS-enabled CDN). If the CDN blocks cross-origin requests the frame extraction will fail with a CORS error.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}