Upload video to YouTube via YouTube API

Version on this page:
LTS Haskell 12.18:
Stackage Nightly 2018-11-14:
Latest on Hackage:

See all snapshots youtube appears in

BSD3 licensed by Henning Thielemann
Maintained by

Module documentation for

There are no documented modules for this package.

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


export YOUTUBEUSER=your_youtube_login

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:

Depends on 4 packages:
Used by 1 package:
comments powered byDisqus