jcreek / YouTubeChannelDownloader

A docker container (can also be run as a Windows console app) to download all videos from a YouTube channel in the highest quality available, and move them via SFTP to another device for processing. This is ideal for Plex.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

YouTubeChannelDownloader

This Dockerized application is intended to enable programmatic downloading of all videos on a given YouTube channel, and upload them to an SFTP server, ready for use with Plex. My personal use case for this is to upload the files to a Handbrake Docker container before then importing the converted files to Plex.

Running on Windows instead of Docker

This can be run on Windows instead of Docker, however you will have to make some modifications.

Uncomment the two FFmpeg targets in the csproj file, this will enable downloading FFmpeg using the ps1 script on build.

In DownloadVideoAsync uncomment the Windows ConversionRequest and comment out the Docker one. This enables using the FFmpeg from the project folder, rather than one at a specific Linux path for Docker.

Set the channel id manually in the Private Variables rather than reading from an environment variable - this should be read from a config file, or you can manually specify environment variables in Visual Studio itself if you don't want to make code changes.

Set the SFTP details manually in TransferFileToNasShare rather than reading from environment variables - this should be read from a config file, or you can manually specify environment variables in Visual Studio itself if you don't want to make code changes.

Build the database

To build the database, open a terminal from the project folder (not the solution folder) and run each of these commands in turn.

  • dotnet tool install --global dotnet-ef
  • dotnet add package Microsoft.EntityFrameworkCore.Design
  • dotnet ef migrations add InitialCreate
  • dotnet ef database update

On Windows this will create a database file for you in the folder C:\Users\YOURUSERNAME\AppData\Local.

About

A docker container (can also be run as a Windows console app) to download all videos from a YouTube channel in the highest quality available, and move them via SFTP to another device for processing. This is ideal for Plex.

License:GNU General Public License v3.0


Languages

Language:C# 91.7%Language:PowerShell 4.2%Language:Dockerfile 4.0%