Take a look at the Youtube API. There are ways of finding out how many videos a user has uploaded, and the getting an XMl list of just that user's videos.
http://gdata.youtube.com/feeds/api/users/user
Use that to load an XML file with information about user, which includes the number of uploads.
http://gdata.youtube.com/feeds/api/users/user/uploads/?v=2
Use this to load the videos for that user. This will load the most recent 25 videos, but there are parameters you can use to get at the rest:
start-index=# Use this to tell the feed to start a certain way in.
max-results=# Self explanatory, the maximum number of videos returned. The most you can have is 50.
http://gdata.youtube.com/feeds/api/users/user/uploads/?v=2&start-index=25&max-results=25
This will return 25 results starting at the 26th-most-recent video, so it'll return videos 26-50.
I haven't been able to figure out a way to download the videos using the API yet. It's possible to do it another way, but it's not remotely feasible for this application, in fact it wouldn't work at all. This should get you started though. I would recommend reading the number of uploaded videos from the user XML, then looping through reading the uploaded videos feed, reading 50 videos at a time using max-results=50, and adjusting start-index accordingly, until you've reached the total number of videos.
Example, if there are 135 videos, reading 50 videos per page, you'll need at least 3 pages, so your loop would iterate 3 times. As of this posting the Machinima channel has 10,546 videos, so you'd want Math.ceiling(10546 / 50) = 211 iterations of your loop. Do yourself a favor though, don't use that number, read it from the user feed and generate the number of iterations at runtime.