Skip to main content
How to Download YouTube Videos - Complete Beginner's Guide

How to Download YouTube Videos - Complete Beginner's Guide

Step-by-step guide to downloading YouTube videos for processing with AutoShorts. No programming experience needed!

Nov 21, 20258 min readAutoShorts Team

⚠️ Important: Use a Burner Account

YouTube may flag accounts that download videos. Create and use a separate "burner" YouTube account for downloads. Do NOT use your main account!

1

Open Terminal (Command Line)

On Mac:

  1. Press Cmd + Space together
  2. Type "Terminal" in the search box
  3. Press Enter

On Windows:

  1. Click the Start button (Windows icon)
  2. Type "cmd" or "Command Prompt"
  3. Press Enter

πŸ’‘ You'll see a black or white window with text - this is the "Terminal" or "Command Prompt". This is where you'll type commands.

2

Check if Python is Installed

Type this command and press Enter:

# On Mac/Linux:

python3 --version

# On Windows:

python --version

βœ… Success looks like:

Python 3.11.5

If you see this, you're good to go!

❌ If you see "command not found" or an error:

You need to install Python first:

Download Python from python.org β†’

Download the latest version, run the installer, and check "Add Python to PATH" during installation.

3

Install yt-dlp (The Download Tool)

This tool downloads YouTube videos. Type this command:

# On Mac/Linux:

pip3 install yt-dlp

# On Windows:

pip install yt-dlp

⏳ This might take 1-2 minutes. You'll see text scrolling by - that's normal! Wait for it to finish.

4

Install ffmpeg (Video Processor)

This helps combine video and audio files together.

On Mac:

brew install ffmpeg

ℹ️ If you see "brew: command not found", you need Homebrew first:Install Homebrew β†’

On Windows:

  1. Download ffmpeg from ffmpeg.org
  2. Extract the ZIP file
  3. Add the "bin" folder to your System PATH (search "how to add to PATH Windows")
5

Create a Folder for Downloads

Let's create a folder where your videos will be saved:

mkdir youtube-downloads

cd youtube-downloads

Type each command and press Enter. The first creates a folder, the second enters it.

6

Create Python Virtual Environment

This creates an isolated space for the download tool:

# Create virtual environment:

python3 -m venv .venv

# Activate it (Mac/Linux):

source .venv/bin/activate

# Activate it (Windows):

.venv\Scripts\activate

βœ… Success looks like:

You'll see (.venv) appear at the start of your terminal line

7

Save the Download Script

Copy this entire script, save it as ytdownload.py:

import argparse
import sys
import yt_dlp

def download_4k_video(url, output_dir="downloads", browser=None):
    ydl_opts = {
        'format': 'bestvideo+bestaudio/best',
        'merge_output_format': 'mp4',
        'outtmpl': f'{output_dir}/%(title)s.%(ext)s',
        'noplaylist': True,
        'quiet': False,
        'prefer_ffmpeg': True,
        'keepvideo': False,
        'postprocessors': [{
            'key': 'FFmpegVideoRemuxer',
            'preferedformat': 'mp4',
        }],
        'postprocessor_args': ['-c', 'copy'],
        'progress_hooks': [lambda d: print(d['status']) if 'status' in d else None],
    }

    if browser:
        ydl_opts['cookiesfrombrowser'] = (browser,)
        print(f"[INFO] Using cookies from {browser} browser")
        print(f"[WARNING] Make sure you're logged into a BURNER account!")

    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        info = ydl.extract_info(url, download=True)
        print(f"\nβœ“ Downloaded: {info.get('title', 'Unknown')}")
        print(f"βœ“ Resolution: {info.get('width')}x{info.get('height')}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Download YouTube video in high quality."
    )
    parser.add_argument("url", help="The YouTube video URL")
    parser.add_argument("--output_dir", default="downloads", help="Output directory")
    parser.add_argument(
        "--browser",
        choices=["chrome", "firefox", "safari", "edge", "brave"],
        help="Browser to extract cookies from (REQUIRED)"
    )
    args = parser.parse_args()

    if not args.browser:
        print("[ERROR] Please specify --browser option")
        print("Example: python ytdownload.py 'URL' --browser chrome")
        sys.exit(1)

    download_4k_video(args.url, output_dir=args.output_dir, browser=args.browser)

How to save the script:

  1. Select and copy all the code above
  2. On Mac: Open TextEdit (Applications β†’ TextEdit)
  3. On Windows: Open Notepad (Start β†’ Notepad)
  4. Paste the code
  5. Important: Go to Format β†’ Make Plain Text (TextEdit only)
  6. Save as ytdownload.py in your youtube-downloads folder
8

Download a Video!

Before you run the command:

  1. Open your browser (Chrome, Safari, Firefox, etc.)
  2. Log into a BURNER YouTube account (not your main account!)
  3. Keep the browser open

Now run this command (replace the parts in caps):

python ytdownload.py "PASTE_YOUTUBE_URL_HERE" --browser YOUR_BROWSER

Example:

python ytdownload.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --browser chrome

Replace YOUR_BROWSER with:

  • chrome - if using Google Chrome
  • safari - if using Safari (Mac)
  • firefox - if using Firefox
  • edge - if using Microsoft Edge
  • brave - if using Brave
9

Find Your Downloaded Video

Your video will be saved in:

youtube-downloads/downloads/

On Mac: Open Finder β†’ Go menu β†’ Home β†’ youtube-downloads β†’ downloads

On Windows: Open File Explorer β†’ Navigate to C:\Users\YourName\youtube-downloads\downloads

Troubleshooting

❌ "command not found" error

The tool isn't installed. Go back and reinstall Python, yt-dlp, or ffmpeg (whichever command failed).

❌ "Permission denied" error

Try adding sudo before the command (Mac/Linux only):sudo pip3 install yt-dlp

❌ "Bot detection" or "Sign in to confirm you're not a bot"

Make sure you're logged into a YouTube account in your browser (use a burner account!) and the browser is open when running the command.

❌ Video downloaded but won't play

Try using VLC Media Player - it plays almost any video format. Download from videolan.org

Ready to turn your video into viral clips?

Who's Behind AutoShorts

Nicolai Gaina

Nicolai Gaina

Founder, AutoShorts

Software Engineer with over 12 years of professional experience in the San Francisco Bay Area. Specializing in software building, content creation and growing social media, he excels in driving data-driven growth, AI and making impactful online tools for Content Creators.

Follow on: LinkedInMore about AutoShorts

Related Posts

How to Create YouTube Chapters Automatically with AI

How to Create YouTube Chapters Automatically with AI

Learn how to generate YouTube chapters in under 1 minute using AI. Boost viewer retention by 10-15% and save hours weekly with automated tools.

Mar 8, 2026
16 mins
How to Add Subtitles to YouTube Shorts Automatically

How to Add Subtitles to YouTube Shorts Automatically

Learn how to automatically add subtitles to YouTube Shorts. Boost engagement by 80% with step-by-step guides and best AI tools.

Mar 5, 2026
15 mins
How to Start a Video Podcast in 2026: Complete Beginner Guide

How to Start a Video Podcast in 2026: Complete Beginner Guide

Launch your video podcast in 2026 with our complete beginner guide. Learn essential equipment, setup tips, and distribution strategies without breaking the bank.

Mar 8, 2026
24 mins
How to Clip Twitch and Kick Streams Into Viral Vertical Shorts

How to Clip Twitch and Kick Streams Into Viral Vertical Shorts

Learn how to turn 6-hour streams into 20+ viral vertical shorts. Step-by-step clipping guide for TikTok, Reels & YouTube Shorts.

Aug 16, 2026
14 mins
How to Repurpose One Video into 30+ Pieces of Content

How to Repurpose One Video into 30+ Pieces of Content

Turn one video into 30+ pieces of content across platforms. Learn our step-by-step framework for maximum engagement and reach.

Mar 9, 2026
19 mins
How to Grow a Podcast with Short-Form Video Clips

How to Grow a Podcast with Short-Form Video Clips

Turn 1 hour of podcast content into 40+ viral clips. Learn the framework to repurpose episodes across TikTok, Reels & YouTube Shorts.

Mar 27, 2026
22 mins