Comment 33 for bug 455852

Revision history for this message
Tyson Whitehead (twhitehead) wrote :

Looks like there may be alternative solutions now, but in case anyone cares about an update on how to download them via flvstreamer (they changed some stuff after my previous post and I don't seem to be being emailed updates to this thread).

1- You have to get the feedPID. Goto http://www.cbc.ca/video and view the source (View -> Page Source in firefox). Scroll down a bit and you will see a line like so

var feedPID = "<a while bunch of alphanumeric garbage>"; // <some more alphanumeric garbage>

The bit in the quotes is the feedPID.

2- Then you have to query cbc.feeds.theplatform.com to get the URL that returns the player information for the show you want. To do this you construct the following URL

http://cbc.feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList
?PID=<feedPID>
&contentCustomField=show
&contentCustomField=seasonNumber
&contentCustomField=EpisodeNumber
&field=URL
&query=KeywordsSearch|<searchterms>
&query=ContentCustomText|seasonNumber|<seasonnumber>
&query=ContentCustomText|EpisodeNumber|<epsiodenumber>

where <feedPID> is replaced with the feedPID from above (without the quotes), <searchterms> is the comma separated list of words you want to search for (or you can use "&query=ContentCustomText|Show|<name>" if you know the name of the show), <seasonnumber> is the season number, <episodenumber> is the episode number, and everything is on one line.

3- This should uniquely locate your show and return you the URL in JSON format (it will be something like "http://release.theplatform.com/content.select?pid=<alphanumeric garbage>&UserName=Unknown&Embedded=True&Portal=All Content&Tracking=True").

4- Going to this URL, and it will return an XML document that has a "<url>...<break>...<url/> component to it (it will be something like "<url>rtmp://cp37429.edgefcs.net/ondemand/?auth=<alphanumeric garbage>&aifp=v0001&slist=netstorage<break>netstorage/<the name of the flv file></url>").

5 - Quickly run (you only have maybe up to 30s before the URL expires)

flvstreamer -y <PLAYPATH> -r <URL> -o <FILE>

where <PLAYPATH> is the bit after <break> minus the ".flv" extension from the url component, <URL> is the bit before the <break> from the url component, and <FILE> is whatever you want to save the stream as.

6 - Once it completes downloading, you can run

mplayer <FILE>

to watch it (or do whatever you do to watch .flv files).

PS: For what it is worth, there are actually a whole bunch of different items you can search on (that is what they query lines do) and information you can return (that is what the other lines do) in step 3. See the getReleaseList function and friends in the javascript running the CBC video sight at http://www.cbc.ca/video/js/CBCVideoFunctions.js for some more ideas.