This project is read-only.

Project Description
Utilities and helpers for Microsoft's Channel 9 (C9) site.

These are utilities I've created to make my C9 work faster and easier (and to give me a change to play with and test some ideas)

  • C9 Show Notes Helper
  • C9 WLW Markup Helper Plugin (Planned)
  • C9 Wrapper Library (Planned)
  • C9 Metro Style app (Planned)

C9 Show Notes Helper

The Channel 9 Show Notes Helper (C9 Show Notes Helper) is an enhanced WPF Media Player based application that is meant to help me generate the time code URL's for Channel 9 videos, like for the show notes on This Week on Channel 9.

Here's an example,

<a href="" target="_blank">[1:33]</a>

A time code URL has a couple parts. The Primary Show URL, the Episode URL, the actual time code query parameter and the link text.

The Primary Show URL is pretty static and only changes if you're using this on different shows.

The Episode URL changes with each post, but once used you rarely go back to it;

  • /TWC9-Mar-16-2012

The time code query parameter;

  • #time=1m33s
    • If you need to index in the video at the first 30 seconds, the code it would be #time=30s.
    • It's Non-zero padded so if less than 10 (minutes/seconds), the parameter is #time=1m3s (and not #time=1m03s)

Finally the link text;

  • [1:33]

This then all needs to be wrapped into a complete URL.

Before this utility I would watch the given video, and as a given story came up, would pause it, switch to WLW, edit a placeholder URL, manually editing the query parameter and the link text. Then switch back to the video, resume. Wash, rinse, repeat.

This gets old after a while and makes the show note creation slower than it needs to be.

So I created this utility to remove some of the manual pain to the time code generation process.

The intent of this utility is to let me watch the video and with one click, grab the current position, generate a complete link and copy it the clipboard (as HTML). Then all I need to do is switch to WLW and paste. That's it. This should be fast enough where I won't have to pause the video and I can say goodbye to "ctrl-k" (editing a link in WLW).

Also recently added is a time code timeline where a screenshot of the MediaElement and the time code is saved/cached. This timeline can then be used to grab all the timecodes at once. And the snaphots too. This will allow for some pretty awesome show notes.

Demo Video

Demo 01


Main Form







Copy All as Table, and then pasted into Windows Live Writer...


Find [Channel 9] Show






Find Episode





To Do:

  • As you can see the this is FUGLY and needs a beauty pass (but hey, I have an C9 icon at least! ;)
  • Need to MVVM the app
  • Template drive the time code parameter (which is currently hard coded)?

Items of Interest:

  • Copying HTML to the clipboard is a major pain. Included in this project is the a ClipboardHelper class which use copy-n-paste based on the code from, Copying an HTML-fragment to the Clipboard 
  • Searching/Filtering on the Find Channel 9 Show dialog is done with one line of LINQ to Objects code.
  • A very early version of the Channel 9 Helper Library, which uses the HTML Agility Pack to scrap the Channel 9/Browse/Shows page to grab the list of shows. This is done in the background (using the background helper) on a page by page basis.
  • DPAPI/CredUI usage example
  • Using a couple of the Channel 9 access methods, the RSS (used in Find Show) and atompub implementations (used in Find Episode)
  • The grabbing of a snapshow of the MediaElement (used in the Timeline listbox)

Last edited Apr 9, 2012 at 11:55 PM by gduncan411, version 5