{"id":18487080,"url":"https://github.com/volumenetwork/video-thumbnail-generator","last_synced_at":"2025-04-13T23:47:21.355Z","repository":{"id":49061957,"uuid":"88853716","full_name":"volumenetwork/video-thumbnail-generator","owner":"volumenetwork","description":"node js module to create thumbnails from a video","archived":false,"fork":false,"pushed_at":"2021-06-29T15:27:42.000Z","size":88,"stargazers_count":57,"open_issues_count":8,"forks_count":16,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T13:51:31.192Z","etag":null,"topics":["generating-thumbnails","gif-maker","gif-thumbnail","screenshot","thumbnails","video","video-thumbnail-generator"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/volumenetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-20T10:34:57.000Z","updated_at":"2025-01-25T01:22:18.000Z","dependencies_parsed_at":"2022-09-26T20:22:16.421Z","dependency_job_id":null,"html_url":"https://github.com/volumenetwork/video-thumbnail-generator","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volumenetwork%2Fvideo-thumbnail-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volumenetwork%2Fvideo-thumbnail-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volumenetwork%2Fvideo-thumbnail-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volumenetwork%2Fvideo-thumbnail-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/volumenetwork","download_url":"https://codeload.github.com/volumenetwork/video-thumbnail-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741190,"owners_count":21154255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generating-thumbnails","gif-maker","gif-thumbnail","screenshot","thumbnails","video","video-thumbnail-generator"],"created_at":"2024-11-06T12:50:12.258Z","updated_at":"2025-04-13T23:47:21.328Z","avatar_url":"https://github.com/volumenetwork.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Video Thumbnail Generator\n\n[![Build Status](https://travis-ci.org/volumenetwork/video-thumbnail-generator.svg?branch=master)](https://travis-ci.org/volumenetwork/video-thumbnail-generator)\n![david-dm](https://david-dm.org/volumenetwork/video-thumbnail-generator.svg)\n\n## Quick Start\n\n```js\nimport ThumbnailGenerator from 'video-thumbnail-generator';\n// const ThumbnailGenerator = require('video-thumbnail-generator').default;\n\nconst tg = new ThumbnailGenerator({\n  sourcePath: '/tmp/test.mp4',\n  thumbnailPath: '/tmp/',\n  tmpDir: '/some/writeable/directory' //only required if you can't write to /tmp/ and you need to generate gifs\n});\n\ntg.generate()\n  .then(console.log);\n  // [ 'test-thumbnail-320x240-0001.png',\n  //  'test-thumbnail-320x240-0002.png',\n  //  'test-thumbnail-320x240-0003.png',\n  //  'test-thumbnail-320x240-0004.png',\n  //  'test-thumbnail-320x240-0005.png',\n  //  'test-thumbnail-320x240-0006.png',\n  //  'test-thumbnail-320x240-0007.png',\n  //  'test-thumbnail-320x240-0008.png',\n  //  'test-thumbnail-320x240-0009.png',\n  //  'test-thumbnail-320x240-0010.png' ]  \n\ntg.generateOneByPercent(90)\n  .then(console.log);\n  // 'test-thumbnail-320x240-0001.png'\n \ntg.generateCb((err, result) =\u003e {\n  console.log(result);\n  // [ 'test-thumbnail-320x240-0001.png',\n  //  'test-thumbnail-320x240-0002.png',\n  //  'test-thumbnail-320x240-0003.png',\n  //  'test-thumbnail-320x240-0004.png',\n  //  'test-thumbnail-320x240-0005.png',\n  //  'test-thumbnail-320x240-0006.png',\n  //  'test-thumbnail-320x240-0007.png',\n  //  'test-thumbnail-320x240-0008.png',\n  //  'test-thumbnail-320x240-0009.png',\n  //  'test-thumbnail-320x240-0010.png' ]  \n});\n\ntg.generateOneByPercentCb(90, (err, result) =\u003e {\n  console.log(result);\n  // 'test-thumbnail-320x240-0001.png'\n});\n\ntg.generateGif()\n  .then(console.log();\n  // '/full/path/to/video-1493133602092.gif'\n\ntg.generateGifCb((err, result) =\u003e {\n  console.log(result);\n  // '/full/path/to/video-1493133602092.gif'\n})\n```\n\n## Options\n\nThere are options that can be passed when generating thumbnails. Both `ThumbnailGenerate.generate(opts)` and `ThumbnailGenerate.generateOneByPercent(number, opts)` can take options. See example below to get screenshots at a resolution of 200x200:\n\n### When generating screenshots/thumbnails\n\n```js\ntg.generate({\n  size: '200x200'\n})\n  .then(console.log);\n  // [ 'test-thumbnail-200x200-0001.png',\n  //  'test-thumbnail-200x200-0002.png',\n  //  'test-thumbnail-200x200-0003.png',\n  //  'test-thumbnail-200x200-0004.png',\n  //  'test-thumbnail-200x200-0005.png',\n  //  'test-thumbnail-200x200-0006.png',\n  //  'test-thumbnail-200x200-0007.png',\n  //  'test-thumbnail-200x200-0008.png',\n  //  'test-thumbnail-200x200-0009.png',\n  //  'test-thumbnail-200x200-0010.png' ]\n\n\ntg.generateCb({\n  size: '200x200'\n}, (err, result) =\u003e {\n  console.log(result);\n  // [ 'test-thumbnail-200x200-0001.png',\n  //  'test-thumbnail-200x200-0002.png',\n  //  'test-thumbnail-200x200-0003.png',\n  //  'test-thumbnail-200x200-0004.png',\n  //  'test-thumbnail-200x200-0005.png',\n  //  'test-thumbnail-200x200-0006.png',\n  //  'test-thumbnail-200x200-0007.png',\n  //  'test-thumbnail-200x200-0008.png',\n  //  'test-thumbnail-200x200-0009.png',\n  //  'test-thumbnail-200x200-0010.png' ]    \n});\n```\nThe `opts` above can take anything that options in [fluent-ffmpeg's Screenshots allow](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg#screenshotsoptions-dirname-generate-thumbnails)\n\n\n### When generating gifs\n```js\ntg.generateGif({\n   fps: 0.75, //how many frames per second you want in your gif\n   scale: 180, //the smaller the number, the smaller the thumbnail\n   speedMultiple: 4, //this is 4x speed\n   deletePalette: true //to delete the palettefile that was generated to create the gif once gif is created \n});\n```\n\n## Tests\n\n`./node_modules/.bin/gulp test`\n\nElse, if you want to run with a code coverage report:\n`./node_modules/.bin/gulp test:coverage`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolumenetwork%2Fvideo-thumbnail-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolumenetwork%2Fvideo-thumbnail-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolumenetwork%2Fvideo-thumbnail-generator/lists"}