Giter Site home page Giter Site logo

charlypoirier / redditube Goto Github PK

View Code? Open in Web Editor NEW
55.0 4.0 11.0 319.53 MB

A video generator from Reddit posts and comments

Home Page: https://www.npmjs.com/package/redditube

License: MIT License

JavaScript 100.00%
reddit youtube video generator reddit-submissions video-generator ffmpeg canvas tts

redditube's Introduction

Redditube

NPM Version NPM Downloads LICENSE

A video generator from Reddit posts and comments.
Watch this video made with Redditube.

Installation

npm install redditube

Got installation errors? Install the following packages and try again.
sudo apt install build-essential libpixman-1-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

You will need to have FFmpeg installed on your machine.
You will also need Reddit credentials.

We will need the Client ID (random string under the app name) and Client secret later.

Usage

const Redditube = require("redditube");

// Configure access to Reddit
Redditube.config({
    "userAgent": "Redditube",
    "clientId": "",     // Your Client ID
    "clientSecret": "", // Your Client secret
    "username": "",     // Your Reddit username
    "password": ""      // Your Reddit password
});

// Log start, status, errors and end events (optional)
Redditube.on("start", () => console.log("Start event!"));
Redditube.on("status", status => console.log(status));
Redditube.on("error", error => console.error(error));
Redditube.on("end", () => console.log("End event!"));

// Option 1
// Use .then() and .catch()
Redditube.make("f9cufu", 3).then(videoPath => {
    console.log(videoPath);
}).catch(error => {
    console.log(error);
});

// Option 2
// Await a promise (inside an asynchronous function)
const videoPath = await Redditube.make("f9cufu", 3);

The above example makes a video from this post (see f9cufu in the URL) and with 3 comments.

Contributing

Feel free to star the repository, create issues and make pull requests on GitHub.

License

Released under the MIT license.

redditube's People

Contributors

amytimed avatar charleprr avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

redditube's Issues

Error: Cannot find ffprobe

Hello,
I have this error

Error: Cannot find ffprobe
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\ffprobe.js:145:31
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\capabilities.js:194:9
    at wrapper (C:\Users\User\node_modules\async\dist\async.js:271:20)
    at next (C:\Users\User\node_modules\async\dist\async.js:5762:24)
    at C:\Users\User\node_modules\async\dist\async.js:324:20
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\capabilities.js:183:15
    at suppressedCallback (fs.js:236:5)
    at FSReqCallback.oncomplete (fs.js:180:23)
Emitted 'error' event on FfmpegCommand instance at:
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\recipes.js:430:21
    at handleCallback (C:\Users\User\node_modules\fluent-ffmpeg\lib\ffprobe.js:106:9)
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\ffprobe.js:145:16
    at C:\Users\User\node_modules\fluent-ffmpeg\lib\capabilities.js:194:9
    [... lines matching original stack trace ...]
    at FSReqCallback.oncomplete (fs.js:180:23)

FFmpeg is installed successfully and I checheck and I do have the files on these path

Do you know what is causing this issue please ?

Thank you very much

Line 9 Error

I have done (as far as I know) everything from the README file but I have the 'dilemma' on how to start the actual bot, do I make an .exe file out of the index file, or do I just run in thru cmd, but the thing is that I get the error message from the right and on the left is what I 'changed' in the code. Have I done something wrong and if not how do I run it?
aaaaaaaaaaaaa4

Select a random background music file

It would be better if it picked random music from the sounds folder instead of choosing just lofi1.mp3 every time
Deleted it and tried to replace it with other music, then waited like 30 minutes for my video to finish, only to have it crash at the very end.

RequestError: Error: Invalid URI "api/v1/access_token"

RequestError: Error: Invalid URI "api/v1/access_token" at new RequestError (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/lib/errors.js:14:15) at Request.plumbing.callback (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/lib/plumbing.js:87:29) at Request.RP$callback [as _callback] (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/lib/plumbing.js:46:31) at self.callback (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:373:22) at Request.emit (node:events:394:28) at Request.init (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:443:17) at Request.RP$initInterceptor [as init] (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/configure/request2.js:45:29) at new Request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:283:8) at request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:50:10) at snoowrap. (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:141:14) at snoowrap.credentialedClientRequest (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:217:47) at snoowrap.updateAccessToken (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:264:17) at /Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:83:18 at tryCatcher (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:547:31) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Promise._resolveCallback (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:489:14) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:559:17) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Timeout._onTimeout (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/timers.js:26:46) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) { cause: Error: Invalid URI "api/v1/access_token" at Request.init (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:443:31) at Request.RP$initInterceptor [as init] (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/configure/request2.js:45:29) at new Request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:283:8) at request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:50:10) at snoowrap. (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:141:14) at snoowrap.credentialedClientRequest (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:217:47) at snoowrap.updateAccessToken (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:264:17) at /Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:83:18 at tryCatcher (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:547:31) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Promise._resolveCallback (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:489:14) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:559:17) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Timeout._onTimeout (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/timers.js:26:46) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7), error: Error: Invalid URI "api/v1/access_token" at Request.init (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:443:31) at Request.RP$initInterceptor [as init] (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request-promise-core/configure/request2.js:45:29) at new Request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/request.js:283:8) at request (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:50:10) at snoowrap. (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/request/index.js:141:14) at snoowrap.credentialedClientRequest (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:217:47) at snoowrap.updateAccessToken (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:264:17) at /Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/snoowrap/dist/request_handler.js:83:18 at tryCatcher (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:547:31) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Promise._resolveCallback (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:489:14) at Promise._settlePromiseFromHandler (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:559:17) at Promise._settlePromise (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:729:18) at Promise._fulfill (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/promise.js:673:18) at Timeout._onTimeout (/Users/navdeepsharma/Desktop/Reddit Video Maker/node_modules/bluebird/js/release/timers.js:26:46) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7), options: { form: { grant_type: 'password', username: 'confidential', password: 'confidential' }, uri: 'api/v1/access_token', method: 'POST', baseUrl: 'https://www.reddit.com', headers: { 'user-agent': 'PGamerX' }, auth: { user: 'confidential', pass: 'confidential' }, json: true, gzip: true, callback: [Function: RP$callback], tunnel: false, transform: undefined, simple: true, resolveWithFullResponse: false, transform2xxOnly: false }, response: undefined }

Could you make a tutorial video?

I have absolutely no idea how to use this and genuinely didn't know it was coded in javascript for like 30 mins. Could you make a video tutorial on how to install/setup and use this?

Few suggestions

Hey,

I really enjoy this library!
I have few suggestions to make it even better!

  • Add ability to filter inappropriate words (both in replies and in the title)
  • As of now when there's any link in the reply, the tts reads the whole https://www... part. The https://www part could be removed.
  • Allow us to specify custom output path (Having to go into lib's folder in node_modules is slightly annoying)

And also, is there any point in using authentication in order to gather json data about thread? You could fetch data directly from the json API, without the need of authenticating (eg. https://www.reddit.com/r/AskReddit/comments/108nrnl/what_is_a_fact_that_scares_you/.json)

Thanks!

Include post descriptions

I would love to be able to have posts from subs like r/EntitledParents and r/TalesFromTechSupport be readable with this!
Also sorry for all the issues lmao

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.