diff --git a/examples/node-video-subtitles/.gitignore b/examples/node-video-subtitles/.gitignore new file mode 100644 index 0000000..37d7e73 --- /dev/null +++ b/examples/node-video-subtitles/.gitignore @@ -0,0 +1,2 @@ +node_modules +.env diff --git a/examples/node-video-subtitles/config.json b/examples/node-video-subtitles/config.json new file mode 100644 index 0000000..1b982fc --- /dev/null +++ b/examples/node-video-subtitles/config.json @@ -0,0 +1,4 @@ +{ + "name": "Adding Subtitles to Vidoes", + "tech": "nodejs" +} diff --git a/examples/node-video-subtitles/package.json b/examples/node-video-subtitles/package.json new file mode 100644 index 0000000..b09abf3 --- /dev/null +++ b/examples/node-video-subtitles/package.json @@ -0,0 +1,16 @@ +{ + "name": "node-video-subtitles", + "version": "1.0.0", + "type": "commonjs", + "description": "", + "main": "index.js", + "scripts": {}, + "author": "", + "license": "ISC", + "dependencies": { + "cloudinary": "^2.5.1" + }, + "devDependencies": { + "dotenv": "^16.4.7" + } +} diff --git a/examples/node-video-subtitles/subtitles.js b/examples/node-video-subtitles/subtitles.js new file mode 100644 index 0000000..c1f68b8 --- /dev/null +++ b/examples/node-video-subtitles/subtitles.js @@ -0,0 +1,43 @@ +require('dotenv').config() + +const cloudinary = require('cloudinary').v2; +const path = require('node:path'); + +cloudinary.config({ + cloud_name: process.env.CLOUDINARY_CLOUD_NAME, + api_key: process.env.CLOUDINARY_API_KEY, + api_secret: process.env.CLOUDINARY_API_SECRET, +}) + +// PART ONE - Adding existing subtitles + +const video = cloudinary.url("examples/first", { + resource_type: "video", + overlay: { + resource_type: "subtitles", + public_id: "examples/first.transcript", + }, +}) + +console.log(video) + +// PART TWO - Adding generated subtitles + +const videoPath = path.resolve("./examples/second.mp4") + +await cloudinary.uploader.upload(videoPath, { + public_id: "second", + folder: "examples", + resource_type: "video", + raw_convert: "google_speech:srt:vtt", +}) + +const uploadedVideo = cloudinary.url("examples/second", { + resource_type: "video", + overlay: { + resource_type: "subtitles", + public_id: "examples/second.transcript", + }, +}) + +console.log(uploadedVideo)