Go to file
Ryan Whytsell 17d9e24f98
Update downloads dir
2025-10-21 19:36:33 -04:00
backend Update downloads dir 2025-10-21 19:36:33 -04:00
frontend Claude's first attempt on webdav 2025-10-21 13:42:04 -04:00
.gitignore Initial commit 2025-10-18 12:28:40 -04:00
CLAUDE.md Claude's first attempt on webdav 2025-10-21 13:42:04 -04:00
Caddyfile Caddyfile deployment improvements 2025-10-21 14:01:57 -04:00
DEPLOYMENT.md Updated scripts to use systemd 2025-10-21 15:49:38 -04:00
PROJECT_CONTEXT.md Initial commit 2025-10-18 12:28:40 -04:00
README.md Initial commit 2025-10-18 12:28:40 -04:00
package-lock.json Initial commit 2025-10-18 12:28:40 -04:00
package.json Initial commit 2025-10-18 12:28:40 -04:00
start-production.sh Missing $ 2025-10-21 16:02:08 -04:00
stop-production.sh Updated scripts to use systemd 2025-10-21 15:49:38 -04:00
vidrip-backend.service Updated scripts to use systemd 2025-10-21 15:49:38 -04:00

README.md

VidRip

A respectful YouTube video drip downloader that slowly and gradually downloads videos from channels over time.

Features

  • Add YouTube channels or individual videos
  • Configurable download intervals (default: every few hours)
  • Configurable variance to avoid predictable patterns
  • Watch downloaded videos in the browser
  • Track download progress and status
  • Lightweight SQLite database

Tech Stack

Backend:

  • Node.js + Express + TypeScript
  • SQLite (better-sqlite3)
  • yt-dlp for downloading
  • node-cron for scheduling

Frontend:

  • React + TypeScript
  • Vite
  • Tailwind CSS
  • React Router

Setup

Prerequisites

  • Node.js 18+
  • yt-dlp installed and available in PATH

Installation

  1. Install yt-dlp:
# On Linux/Mac
pip install yt-dlp
# or
brew install yt-dlp

# On Windows
# Download from https://github.com/yt-dlp/yt-dlp/releases
  1. Install backend dependencies:
cd backend
npm install
  1. Install frontend dependencies:
cd frontend
npm install

Running

  1. Start the backend:
cd backend
npm run dev
  1. Start the frontend:
cd frontend
npm run dev
  1. Open http://localhost:3000

Configuration

Default settings:

  • Download interval: 3 hours
  • Time variance: ±30 minutes
  • Storage location: backend/downloads/

These can be configured in the UI settings page.