Upload a video to YouTube via YouTube API.
The aim of this program is to simplify uploads of related videos.

First you must have the curl executable installed.

In order to use the youtube-upload command
you need a YouTube account and an additional developer account.
From the developer account you get a keyfile.
If you want to upload videos you first have to login to YouTube.
You can do this with

youtube-auth your_youtube_login

or

export YOUTUBEUSER=your_youtube_login
youtube-auth

As a result of this call you get an authentication token.
Write this authentication token into the YOUTUBEAUTH environment variable.
It is queried by youtube-upload.
For every upload you have to pass the developer keyfile,
an XML file containing meta data for the video and the video file.

The XML file must be encoded with UTF-8.
I found it very useful to generate the XML files
from an XML template file and a CSV table
using the cvsreplace command from the spreadsheet package.
I have included the example file upload-template.xml
that you can use with a CSV file
with the columns TITLE, DESCRIPTION, CATEGORY, TAGS.

The package is now deprecated.
It only supports authentication via ClientLogin
which was disabled by Google somewhen in 2017.
Authentication via OAuth2.0 is pretty complicated.
Better use a program that calls one of the official Google APIs like: