Using OData to get Mix10 files
- by Jon Dalberg
There has been a lot of talk around OData lately (go to odata.org for more information) and I wanted to get all the videos from Mix ‘10: two great tastes that taste great together. Luckily, Mix has exposed the ‘10 sessions via OData at http://api.visitmix.com/OData.svc, now all I have to do is slap together a bit of code to fetch the videos. Step 1 (cut a hole in the box) Create a new console application and add a new service reference. Step 2 (put your junk in the box) Write a smidgen of code: 1: static void Main(string[] args)
2: {
3: var mix = new Mix.EventEntities(new Uri("http://api.visitmix.com/OData.svc"));
4:
5: var files = from f in mix.Files
6: where f.TypeName == "WMV"
7: select f;
8:
9: var web = new WebClient();
10:
11: var myVideos = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), "Mix10");
12:
13: Directory.CreateDirectory(myVideos);
14:
15: files.ToList().ForEach(f => {
16: var fileName = new Uri(f.Url).Segments.Last();
17: Console.WriteLine(f.Url);
18: web.DownloadFile(f.Url, Path.Combine(myVideos, fileName));
19: });
20: }
Step 3
(have her open the box)
Compile and run.
As you can see, the client reference created for the OData service handles almost everything for me. Yeah, I know there is some batch file to download the files, but it relies on cUrl being on the machine – and I wanted an excuse to work with an OData service.
Enjoy!