The YouTube Content Uploader is a sample of the Resumable Upload functionallity
in the API. It allows you to open up a .CSV file, containing metadata of new 
videos you want to upload, then let the tool upload all those files in the 
background.

Note the CSV files should look like this:

Title,Description,Tags,Category,Private,Path
(one),The first test video,"water",Education,TRUE,c:\videos\file2one.avi
(two),The second test video,"humor",Entertainment,TRUE,c:\videos\filetwo.avi

Some spreadsheet programs might export a spreadsheet with blank columnheaders, like this:

Title,Description,Tags,Category,Private,Path,,,,,,,,,,,,,

The code used to parse CSVs in YouTubeUploader will choke on that. So make sure your 
CSV file is done with the correct settings to create only the columns that are used.

When you compile the sample, or use the provided binary, it will use a default
YouTube developer key, that will probably be too limited for your use case.

You should replace that developer key with your own.

There are 2 ways of doing so. Download the source code and replace the developer 
key with your own, recompile and you are good to go.

Alternatively, you can use the config file to provide your own key.

.NET config files are a standard way in the .NET runtime to augment applications 
and provide configuration information.

To use such a file, you need to find the .EXE file you want to modify, 
and create a .config file in the same directory. 

So for the YouTubeUploader.exe, you would create a file called 
YouTubeUploader.exe.config.

This is a normal text file, and it should look like this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="UserName" value="username" />
    <add key="PassWord" value="password" />
    <add key="YoutubeAccount" value="accountname" />
    <add key="MaxThreads" value="2" />
    <add key="ChunkSize" value="2" />
    <add key="RetryCount" value="4" />
    <add key="CsvFile" value="pathandfilename" />
    <add key="OutputFile" value="pathandfilename" />
    <add key="DevKey" value="yourdevkey" />
  </appSettings>
</configuration>

You have a standard key=value section, where you need to replace the sample values 
above with whatever you want to have.

Note, all the values are optional. So it's perfectly fine to have a file looking 
like this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="RetryCount" value="20" />
  </appSettings>
</configuration>

if all you want to change is the default for the retry value.

Here is an explanation of all the parameters:

UserName -> your google account username
PassWord -> the password for that account
YoutubeAccount -> the youtube accountname

If you provide the above 3 values, the application will, on startup, skip the
login dialog and use the provided values instaead.

MaxThreads -> this value determines how many uploads will happen at the same time. 
              You can try to tune this to maximize the upload bandwidth used.

ChunkSize  -> this value determines how many Megabytes of the files will be uploaded 
              at once. Let's say you have a 1GB video and this value is 4, the 
              application will upload 250 parts of the video before it's done. Again, 
              you can try to finetune this depending on bandwidth available.

RetryCount -> if an upload fails due to network or other conditions, it will be retried. 
              The application will stop trying to upload a file once it's retry  
              counter reaches this number. Note, once ANY upload succeeds, all retry 
              counters will be reset to 0 and the files will be tried again. 

CsvFile    -> the filename of a CSV file to open on startup
OutputFile -> the filename of an output CSV file where the application should 
              save the results of the upload to

DevKey     -> your YouTube developer key that you like to use for uploading to 
              your account.


There is one additional parameter, that can be used on the commandline. If you start 
YouTubeUploader with the /autostart parameter, it will start uploading and 
saving the output automatically once it's done. 

