{"id":19788295,"url":"https://github.com/guuzzeji/vidzit-dl","last_synced_at":"2025-05-01T00:30:50.799Z","repository":{"id":65663910,"uuid":"365627539","full_name":"Guuzzeji/vidzit-dl","owner":"Guuzzeji","description":"A simple Reddit video downloader that allows you to download videos from Reddit using node js. Made using node-fetch and ffmpeg.wasm.","archived":false,"fork":false,"pushed_at":"2023-04-01T11:09:48.000Z","size":195,"stargazers_count":7,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T06:34:26.519Z","etag":null,"topics":["ffmpeg","ffmpeg-wasm","javascript","nodejs","npm","npm-package","reddit","reddit-api","reddit-downloader","video","videodownloader","webassembly"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/vidzit-dl","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Guuzzeji.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-08T23:08:38.000Z","updated_at":"2024-08-11T14:56:00.000Z","dependencies_parsed_at":"2024-11-12T06:38:00.952Z","dependency_job_id":null,"html_url":"https://github.com/Guuzzeji/vidzit-dl","commit_stats":{"total_commits":76,"total_committers":3,"mean_commits":"25.333333333333332","dds":0.1842105263157895,"last_synced_commit":"23c4cb9fdf8ea564acd927d5879531be56e320d8"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guuzzeji%2Fvidzit-dl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guuzzeji%2Fvidzit-dl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guuzzeji%2Fvidzit-dl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guuzzeji%2Fvidzit-dl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Guuzzeji","download_url":"https://codeload.github.com/Guuzzeji/vidzit-dl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251802703,"owners_count":21646261,"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":["ffmpeg","ffmpeg-wasm","javascript","nodejs","npm","npm-package","reddit","reddit-api","reddit-downloader","video","videodownloader","webassembly"],"created_at":"2024-11-12T06:26:46.945Z","updated_at":"2025-05-01T00:30:50.489Z","avatar_url":"https://github.com/Guuzzeji.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"./assets/Screenshot%202023-02-02%20at%207.08.25%20PM.png\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003c!-- \u003ch1 align=\"center\"\u003eVidzit-DL\u003c/h1\u003e --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub package.json version\" src=\"https://img.shields.io/github/package-json/v/Guuzzeji/vidzit-dl\"\u003e\n  \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/Guuzzeji/vidzit-dl\"\u003e\n  \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/Guuzzeji/vidzit-dl\"\u003e\n  \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/dm/vidzit-dl\"\u003e\n  \u003cimg alt=\"node-current\" src=\"https://img.shields.io/node/v/vidzit-dl\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/Guuzzeji/vidzit-dl?style=social\"\u003e\n  \u003ca href=\"https://twitter.com/intent/tweet?url=https://github.com/Guuzzeji/vidzit-dl/\u0026hashtags=reddit,github,nodejs,ffmpeg, programming\"\u003e\n    \u003cimg alt=\"Twitter URL\" src=\"https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2FGuuzzeji%2Fvidzit-dl\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA simple Reddit video downloader that allows you to download videos from Reddit using node js. Made using [node-fetch](https://www.npmjs.com/package/node-fetch) and [ffmpeg.wasm](https://github.com/ffmpegwasm/ffmpeg.wasm).\n\n**IMPORTANT NOTE:** Video can't be embedded (No Youtube links, No Vimeo, etc).\n\nThis is not an official Reddit library, but we do use Reddit's official web API.\n\n# 📌 Table of Contents\n- [📌 Table of Contents](#-table-of-contents)\n- [💻 How To Install](#-how-to-install)\n- [✏️ Example](#️-example)\n- [📖 API](#-api)\n    - [VidzitDL](#vidzitdl)\n    - [VidzitDL.initialize(redditURL) ⇒ Promise.\\\u003cVidzitDL\\\u003e](#vidzitdlinitializeredditurl--promisevidzitdl)\n    - [vidzitDL.videoInfo](#vidzitdlvideoinfo)\n      - [**Example of Return JSON**](#example-of-return-json)\n    - [vidzitDL.findFormatVideo(format) ⇒ JSON](#vidzitdlfindformatvideoformat--json)\n      - [**Example of Return JSON**](#example-of-return-json-1)\n    - [vidzitDL.findMaxFormatVideo() ⇒ JSON](#vidzitdlfindmaxformatvideo--json)\n      - [**Example of Return JSON**](#example-of-return-json-2)\n    - [vidzitDL.createVideo(options) ⇒ Promise.\\\u003cUint8Array\\\u003e](#vidzitdlcreatevideooptions--promiseuint8array)\n- [🤝 How to Contribute (Thank You!)](#-how-to-contribute-thank-you)\n\n# 💻 How To Install\n```bash\nnpm install vidzit-dl\n```\n\n# ✏️ Example\n```js\nconst VidzitDL = require(\"vidzit-dl\");\n\nasync function example1() {\n    let video1 = await VidzitDL.initialize(\"https://www.reddit.com/r/IndieDev/comments/10hgvjq/vr_has_been_punishing_for_particles\");\n    console.log(video1.videoInfo);\n    console.log(await video1.createVideo({\n        format: '480',\n        setLogger: function (type, message) {\n            console.log(type + \": \" + message);\n        },\n        setProgress: function (ratio) {\n            console.log(ratio);\n        }\n    }));\n}\n\nasync function example2() {\n    let video1 = await VidzitDL.initialize(\"https://www.reddit.com/r/IndieDev/comments/10hgvjq/vr_has_been_punishing_for_particles\");\n    console.log(video1.videoInfo);\n    console.log(await video1.createVideo());\n}\n\nexample1()\nexample2()\n```\n\n# 📖 API\n\u003ca name=\"VidzitDL\"\u003e\u003c/a\u003e\n\n### VidzitDL\nDownload reddit videos through node.js\n\n**Kind**: global class  \n**See**: [https://github.com/Guuzzeji/reddit-vid-dl#readme](https://github.com/Guuzzeji/reddit-vid-dl#readme)  \n\n---\n\n\u003ca name=\"new_VidzitDL_new\"\u003e\u003c/a\u003e\n\n\u003ca name=\"VidzitDL.initialize\"\u003e\u003c/a\u003e\n\n### VidzitDL.initialize(redditURL) ⇒ [\u003ccode\u003ePromise.\u0026lt;VidzitDL\u0026gt;\u003c/code\u003e](#VidzitDL)\nInitialize the VidezDitDL class and create an object from it.\n\n**Kind**: static method of [\u003ccode\u003eVidzitDL\u003c/code\u003e](#VidzitDL)  \n**Returns**: [\u003ccode\u003ePromise.\u0026lt;VidzitDL\u0026gt;\u003c/code\u003e](#VidzitDL) - returns an VidzitDL object that can be used to get information about the video dash urls and download the video  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| redditURL | \u003ccode\u003eString\u003c/code\u003e | A normal reddit url of the video post you want to download |\n\n---\n\n\u003ca name=\"VidzitDL+videoInfo\"\u003e\u003c/a\u003e\n\n### vidzitDL.videoInfo\nReturns the video information like video url and reddit base url of post\n\n**Kind**: instance property of [\u003ccode\u003eVidzitDL\u003c/code\u003e](#VidzitDL)  \n\n#### **Example of Return JSON**\n```js\n{\n  baseURL: \"{URL to reddit post}\"\n  dashURL: \"{URL to dash file}\",\n  dashContent: {\n    video: [\n      {\n        type: \"video\",\n        maxFormat: true || false,\n        format: \"720\",\n        url: \"{URL to video format}\",\n      },\n      ...\n    ],\n    audio: {\n      type: \"audio\",\n      url: \"{URL to audio files}\",\n    }\n  }\n}\n```\n\n---\n\n\u003ca name=\"VidzitDL+findFormatVideo\"\u003e\u003c/a\u003e\n\n### vidzitDL.findFormatVideo(format) ⇒ \u003ccode\u003eJSON\u003c/code\u003e\nSearchs dash file to find video resolution (Ex: 480, 720, 1080). It can also return an error if video resolution is not found.\n\n**Kind**: instance method of [\u003ccode\u003eVidzitDL\u003c/code\u003e](#VidzitDL)  \n**Returns**: \u003ccode\u003eJSON\u003c/code\u003e - A json of the video resolution url and other infomation  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| format | \u003ccode\u003eString\u003c/code\u003e | the video format you want (Ex: 480, 720, 1080) |\n\n#### **Example of Return JSON**\n```js\n{\n  type: \"video\",\n  maxFormat: true || false,\n  format: \"720\",\n  url: \"{URL to video format}\",\n}\n```\n\n---\n\n\u003ca name=\"VidzitDL+findMaxFormatVideo\"\u003e\u003c/a\u003e\n\n### vidzitDL.findMaxFormatVideo() ⇒ \u003ccode\u003eJSON\u003c/code\u003e\nSearchs dash file to find video resolution for max resolution of video.\n\n**Kind**: instance method of [\u003ccode\u003eVidzitDL\u003c/code\u003e](#VidzitDL)  \n**Returns**: \u003ccode\u003eJSON\u003c/code\u003e - A json of the video resolution url and other infomation  \n\u003ca name=\"VidzitDL+createVideo\"\u003e\u003c/a\u003e\n\n#### **Example of Return JSON**\n```js\n{\n  type: \"video\",\n  maxFormat: true,\n  format: \"1080\",\n  url: \"{URL to video format}\",\n}\n```\n\n---\n\n### vidzitDL.createVideo(options) ⇒ \u003ccode\u003ePromise.\u0026lt;Uint8Array\u0026gt;\u003c/code\u003e\nCreates a video with the specified format you want. OR can default to max resolution if not specified.\n\n**Kind**: instance method of [\u003ccode\u003eVidzitDL\u003c/code\u003e](#VidzitDL)  \n**See**: More infomation how to use setLogger and setProgress [https://github.com/ffmpegwasm/ffmpeg.wasm/blob/master/docs/api.md#ffmpeg-setlogging](https://github.com/ffmpegwasm/ffmpeg.wasm/blob/master/docs/api.md#ffmpeg-setlogging)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| options | \u003ccode\u003eObject\u003c/code\u003e | JSON that stores all options for this function |\n| options.format | \u003ccode\u003eString\u003c/code\u003e | The format you want to download (Ex: 480, 720, 1080). Default is max resolution if not specified. |\n| options.setLogger | \u003ccode\u003efunction\u003c/code\u003e | Allows you to process ffmpeg logs with your own function. |\n| options.setProgress | \u003ccode\u003efunction\u003c/code\u003e | Allows you to process ffmpeg progresss with your own function. |\n\n---\n\n# 🤝 How to Contribute (Thank You!)\n- Fork the main branch\n\n- Open your fork and add your changes / features / bug fixes\n\n- Create a pull request\n  - Make sure to add a description of what changes you have made and why your changes are important.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguuzzeji%2Fvidzit-dl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguuzzeji%2Fvidzit-dl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguuzzeji%2Fvidzit-dl/lists"}