Skip to content

ter-9001/Rumble-Tube-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

🎥 Rumble Bulk Uploader (Python + JS)

Tool for Bulk Downloading, Organizing, and Scheduling Videos on Rumble.

This project combines a Python script to download videos and generate metadata with a JavaScript browser automation script to automatically fill in and schedule uploads on the Rumble platform.

✨ Features

  • Bulk Download: Downloads multiple videos from provided URLs (supports any yt-dlp compatible platform, such as YouTube, Rumble, etc.).

  • File Organization: Saves videos and thumbnails into dedicated directories (rumble/videos and rumble/img) with sequential numbered names (1.mp4, 1.jpg, 2.mp4, 2.jpg, etc.).

  • Scheduling Timeline: Creates an automatic publishing schedule based on a starting date and predefined hours (configured in database.json).

  • JS Script Generation: Generates a complete rumble.js script, ready to be copied and pasted into the browser console, which automates filling in video details and setting up the schedule on Rumble.

  • Configuration Persistence: Stores the working directory (home_dir), scheduling hours (hours), and categories (category_primary and category_secondary) in database.json for easy repeated use.

🛠️ Prerequisites

To run the Python script, you will need:

  1. Python 3 (3.8+ Recommended)

  2. yt-dlp

  3. Pillow (PIL) (Optional, but recommended for converting thumbnails to JPG)

Installation

# 1. Clone the repository

git  clone <YOUR_REPOSITORY_URL>

cd <YOUR_REPOSITORY_NAME>

  

# 2. Install dependencies

pip  install  yt-dlp  Pillow

  

⚙️ Initial Setup

On the first run, the get_home_dir script will prompt for four pieces of information and save them to the database.json file for future use:

  1. home_dir: The base directory where the rumble/ folder (which will contain the videos and data JSON) and the rumble.js file will be created.
  • Example: ~/Documents or /Users/user/Videos
  1. hours: A comma-separated list of whole hours (24h format) for scheduling the uploads.
  • Example: 8,12,16 (for 3 uploads per day, at 8 AM, 12 PM, and 4 PM)
  1. category_primary The name that should be in the Primary Category section.
  • Example: Entertainment or Automotive
  1. category_secondary The name that should be in the Secondary Category section.
  • Example: 3D Printing or 24x7

NOTE: Please verify the categories correctly and copy and paste them exactly as they appear on the page https://rumble.com/upload.php the first time you run the program and it executes steps 3 and 4 above.

🚀 Usage

1. Run the Python Script

The Python script is responsible for downloading the videos and generating the automation file.

Syntax

Bash


python rumble_youtube.py <links> <start_date>

  

Parameters

  • <links>: A string containing the video URLs, separated by the # character.

  • <start_date>: The date on which the first upload should be scheduled, in yy-mm-dd format (Year-Month-Day).

Example

To schedule 3 videos, starting on December 15, 2023, at the hours defined in database.json:

Bash


python rumble_youtube.py 'link1#link2#link3' 23-12-15

  

2. Run the JavaScript Script on Rumble

After the Python script execution, two important files will be generated:

  • rumble.js: In the root of your home_dir. This is the automation script.

  • rumble/videos/: Contains the numbered videos (1.mp4, 2.mp4, etc.).

  • rumble/img/: Contains the numbered thumbnails (1.jpg, 2.jpg, etc.).

  • rumble/videos_data.json: Contains all metadata and the schedule.

Automation Steps

  1. Navigate to the Rumble upload page: https://rumble.com/upload.php.

  2. Open the Console of your browser (F12 or Ctrl+Shift+J/Cmd+Option+J).

  3. Copy and Paste the entire content of the rumble.js file into the console and press Enter.

  4. The console will display instructions. Type uploadVideo(videos[i], 1, videos.length) where is the video number minus one that you want to upload, and press Enter (Example: If you want to upload 1.mp4, will be 0; if you want to upload 2.mp4, will be 1) to start the process.

  5. REQUIRED MANUAL INTERACTION: For each video, the script will pause and prompt you to manually select the files:

  • The video (.mp4) file (e.g., 1.mp4, 2.mp4) from the rumble/videos directory.

  • The thumbnail (.jpg) file (e.g., 1.jpg, 2.jpg) from the rumble/img directory.

  • Categories (Partially) Here you will need to click the selector and quickly click in an empty space. The program already selects the options previously configured in the database - See Initial Setup .

  1. The script will handle filling in the Title, Description, Tags, and Scheduling.

  2. After the submission is complete (If there are other files to be uploaded) reload the page and use the up and down arrow keys to navigate between the previously given console commands, re-execute the entire rumble.js code, and restart from step 4 with the updated .

⚠️ Attention: The JS script has programmed pauses so you can select the files. It is crucial to select the correct file when prompted in the console.

📁 Generated Directory Structure

The file structure generated by the Python script will be similar to this:


<HOME_DIR>

├── database.json # Saved configuration (home_dir, hours, categories)

├── rumble.js # JS automation script (for console)

└── rumble/

├── videos/

│ ├── 1.mp4

│ ├── 2.mp4

│ └── ...

├── img/

│ ├── 1.jpg

│ ├── 2.jpg

│ └── ...

└── videos_data.json # JSON with all metadata and schedule

⚠️ WARNING ❗❗❗

Once time you run the program it gonna erase all previous videos, thumbnails, rumble.js and videos_data.json, unless you change the location of home_dir .

About

This project is a attempt to integrate Rumble and YouTube with a Python script to download videos and generate metadata with a JavaScript browser automation script to automatically fill in and schedule uploads on the Rumble platform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages