8000
Skip to content

DevXtechnic/Ytdaily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📺 Ytdaily

License: Unlicense Python 3.7+ Platform: Linux

Ytdaily is a high-performance, interactive YouTube automation engine designed for creators and enthusiasts. It transforms your local machine into a smart media server that monitors your favorite channels and playlists, downloading content in crystal-clear quality while applying professional-grade filtering and optimization.


🖼️ Visual Tour

🖥️ Core Interface

Main Menu Statistics Dashboard
Main Menu Statistics

🚀 Smart Tracking & Downloads

Configuration Scan Scan Results
Config Scan Scan Results

⚡ Advanced Features

Parallel Download Progress Detailed Download Info
Parallel Progress Download Info
Customizable Settings Playlist Management
Settings Playlist Management

🛠️ How it Works: The Architecture

Workflow Architecture

Ytdaily is built on a "Silent Automation" philosophy. It uses a State-Based Tracking System to ensure you never miss a video and never download a duplicate.

1. The Intelligent Monitor

The engine maintains a local JSON database of every video it has ever encountered. When a scan starts, it fetches the latest activity from your monitored channels and compares signatures to identify "Gaps" in your collection.

2. Parallel Processing Engine

Parallel Processing Engine

Unlike traditional downloaders that process one file at a time, Ytdaily utilizes a multi-threaded parallel downloader. It intelligently distributes your bandwidth across multiple streams to finish your daily queue in minutes rather than hours.

3. The SponsorBlock Integration

Every download is automatically scrubbed of non-content segments (Sponsors, Intros, Outros, Interaction Reminders) using the SponsorBlock API, saving you hours of watch time.


🚀 One-Click Installation

Designed to work across Arch, Debian, Ubuntu, and Fedora based distributions. The installer handles system dependencies, Python environment isolation (PEP 668), and shell integration.

git clone https://github.com/DevXtechnic/Ytdaily.git
cd Ytdaily
chmod +x install.sh
./install.sh

What the installer does:

  • Checks for and installs yt-dlp, ffmpeg, and python-rich using your native package manager.
  • Sets up a robust directory structure in ~/.local/share/Ytdaily/.
  • Injects Ytdaily aliases into your shell (bash, zsh, or fish).
  • Initializes the Automation Engine (Systemd).

⏰ The Automation Engine (Systemd)

After installation, Ytdaily operates as a silent background service.

  • Trigger: The service runs once every 24 hours.
  • Boot Safety: It includes a 5-minute delay after your system boots to ensure network stability before starting the scan.
  • Resource Management: Uses Nice=19 and IOSchedulingClass=idle to ensure it never slows down your PC while you are working.

You can check the status of your automated downloader at any time:

systemctl --user status Ytdaily.service

✨ Key Features

  • 🎯 Multi-Quality Support: Target any resolution from 360p to 4K (2160p).
  • 📻 Podcast Automation: Automatically converts specific sources to high-fidelity 320kbps MP3s.
  • 🧹 Dynamic Cleanup: Set a retention policy (e.g., 60 days) to keep your storage lean.
  • 🌍 Subtitles & Metadata: Embeds official and auto-generated subtitles, thumbnails, and metadata into the MP4 container.

📜 Technical Stack

  • Logic: Python 3
  • UI: Rich TUI Framework
  • Engine: yt-dlp & FFmpeg
  • Scheduling: Systemd User Timers
  • Package Management: Native Linux Bridge (Pacman/Apt/Dnf)

⚖️ License

Unlicense (Public Domain) - Free to use, modify, and distribute for any purpose.

About

High-performance, automated YouTube feed downloader with TUI, SponsorBlock, and parallel download support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

0