Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

yt-uploader

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yt-uploader

CLI tool to bulk upload and schedule YouTube videos with one command

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

yt-upload

CLI tool to bulk upload and schedule YouTube videos with one command.

npm version License: MIT

Upload an entire folder of videos to YouTube — with scheduling, playlists, deduplication, and dry-run preview. No manual uploading, one video at a time.

Quick Start

# 1. Setup (one-time)
npx yt-upload setup --client ./client_secret.json

# 2. Authenticate (opens browser)
npx yt-upload auth

# 3. Upload all videos from a folder
npx yt-upload upload --path ./videos/

Prerequisites

  • Node.js >= 14
  • Python 3 with pip
  • Google Cloud project with YouTube Data API v3 enabled

Get Google Credentials

  • Go to Google Cloud Console
  • Create a project → APIs & Services → Enable YouTube Data API v3
  • Go to Credentials → Create OAuth 2.0 Client ID (Desktop app)
  • Download the JSON file (this is your client_secret.json)

Commands

Setup

yt-upload setup --client ./client_secret.json

Installs Python dependencies and copies credentials to ~/.yt-upload/.

Authenticate

yt-upload auth

Opens a browser for one-time Google OAuth login. Token is saved for future use.

Upload

# Upload all unuploaded videos from a folder
yt-upload upload --path ./videos/

# Upload a single file
yt-upload upload --file ./my-video.mp4

# Preview without uploading
yt-upload upload --path ./videos/ --dry-run

# Add all uploads to a playlist (creates if not found)
yt-upload upload --path ./videos/ --playlist "JS Tips"

Schedule

# Schedule 1 video/day starting from a date (6PM UTC)
yt-upload upload --path ./videos/ --schedule 2026-05-01

# Every 2 days
yt-upload upload --path ./videos/ --schedule 2026-05-01 --interval 2

# Auto-schedule 3 videos/day at peak engagement times (8AM, 2PM, 6PM UTC)
yt-upload upload --path ./videos/ --auto

# Auto-schedule starting from a specific date
yt-upload upload --path ./videos/ --auto --auto-from 2026-05-01

List Status

yt-upload list --path ./videos/

Shows which videos have been uploaded, their YouTube URLs, and scheduled times.

How It Works

  • Scans the video folder for .mp4 files
  • Deduplicates — if multiple versions of the same topic exist (by filename), keeps the latest
  • Skips already-uploaded videos (tracked in .yt-upload-history.json in the videos folder)
  • Generates metadata — title from filename, auto-generated description and tags
  • Uploads via YouTube Data API v3 with resumable uploads (handles large files)
  • Optionally schedules at peak engagement times

Filename Convention

Videos are expected to follow this naming pattern:

YYYYMMDD_HHMMSS_topic_name.mp4

The timestamp prefix is stripped to derive the title: topic_nameTopic Name.

Files without a timestamp prefix are used as-is.

File Locations

WhatWhere
Credentials~/.yt-upload/client_secret.json
Auth token~/.yt-upload/youtube_token.json
Upload history<videos-dir>/.yt-upload-history.json
PackageDescriptionInstall
load-skillAI coding skills for Claude Code, Cursor, Codexnpx load-skill
load-rulesAI coding rules for Cursor, Copilot, Claude Codenpx load-rules
load-agentsAI agent definitions for Claude Code, Codex, Copilotnpx load-agents
load-hooksHooks for Claude Code and AI coding toolsnpx load-hooks
load-mcpMCP servers for Claude Code, Cursor, and morenpx load-mcp

License

MIT

Keywords

youtube

FAQs

Package last updated on 16 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts