2011-03-05, 19:28
This is a greatly appreciated plugin. Thanks andre_pl! looking forward to seeing more Canadian content.
Eldorado Wrote:Woo hoo!
Maybe a new repository should be setup specifically for Canadian content addons?
mcpish Wrote:It works, except the FULL GAMES. All of the highlights sections work, but not "Championship Curling on demand" nor "Canada Games 2011 On demand", even though there is stuff in those sections on the TSN broadband website, on XBMC when you go into those particular menus they are empty.
rtmpe://cp45924.edgefcs.net/ondemand/s_!ctv/shows/2011/02/17/BLEEPMYDADSAYS-2J5668-EP-CLIP01.mp4?auth=dbEaLduacaddXc3aKbkacb4boa2b1did9at-bnCSh3-eS-iYG-vxE1plGDw&aifp=v001&slist=/s_!ctv/shows/2011/02/17/
TO
rtmp://cp45924.edgefcs.net/ondemand?ovpfv=2.1.4&auth=dbEaLduacaddXc3aKbkacb4boa2b1did9at-bnCSh3-eS-iYG-vxE1plGDw&aifp=v001&slist=/s_!ctv/shows/2011/02/17/ playpath=mp4:s_!ctv/shows/2011/02/17/BLEEPMYDADSAYS-2J5668-EP-CLIP01
rtmpe://cp21596.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/dailyshow/TDS/season_16/episode_018/ds_16018_03_512x288_825.mp4?__gda__=1299366820_cec480a63105d30674534a6093360762
TO
rtmp://cp21596.edgefcs.net/ondemand?ovpfv=2.1.4&__gda__=1299366820_cec480a63105d30674534a6093360762 playpath=mp4:mtvnorigin/gsp.comedystor/com/dailyshow/TDS/season_16/episode_018/ds_16018_03_512x288_825
andre_pl Wrote:Hey guys,
you might be able to watch some stuff on the comedy network too, however, there are a lot of broken videos and I could use some help with them.. the problem is in the "mangling" of the urls which are returned from the esi script into something that can be played by xbmc
Eldorado Wrote:Woo hoo!
Maybe a new repository should be setup specifically for Canadian content addons?
bolverk Wrote:Check out a quick Perl hack at http://pastebin.com/bk25b575 and you'll see you're doing it right except you have to pass swfUrl as well, otherwise the other end shoots back an access denied. I don't know how to do that in python or XBMC's plugins library, but I hope that's as straightforward as it is with rtmpdump.
-Dan
teefer22 Wrote:Wow, that sure didn't take you long. Good work andre_pl. I was working on the TSN.ca one a little bit yesterday but definitely didn't finish.
Since you were so good at that, I'm going to post how to get the links for cbc.ca and globaltv.ca.. Just in case you feel like making any more plugins.
Here is how to get the rtmp for globaltv.com:
First, we need the link from your browser:
http://www.globaltv.com/video/full+episo...1812768546
Inside the html of that page you will find this piece of code. What we want is the PID:
<script type="text/javascript">
var embed_vars = {
pid: "_X8TGqDQ62nnBowQOnYA5kcHIuS58lRv",
contentID: "1812768546",
show: "Survivor",
season: "22",
episode: "2",
se: "S22E2:",
cliptitle: "you+own+my+vote"
};
</script>
Put the pid into this link:
http://release.theplatform.com/content.s...cHIuS58lRv
and that will return a document with this in it:
<switch>
<video src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_lowest_16x9.mp4" system-bitrate="447277" width="400" height="224" type="video/mp4"/>
<video src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_low_16x9.mp4" system-bitrate="647304" width="400" height="224" type="video/mp4"/>
<video src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_medium_16x9.mp4" system-bitrate="850244" width="852" height="480" type="video/mp4"/>
<video src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_high_16x9.mp4" system-bitrate="1252684" width="852" height="480" type="video/mp4"/>
<video src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_highest_16x9.mp4" system-bitrate="2419958" width="1280" height="720" type="video/mp4"/>
<ref src="rtmp://cp90709.edgefcs.net/ondemand/video/Survivor2202_lowest_16x9.mp4" title="You Own My Vote" author="Global" abstract="On Ometepe, Phillip tries to repair the damage after his outburst at the last Tribal Council. So he tells Rob that he will do whatever and vote for whoever he says. Later, Rob sees Matt with Andrea and plans to break up the duo knowing how powerful a couple can go." copyright="© Canwest Broadcast Entertainment" dur="2579736ms" width="400" height="224" guid="h1OBBD79dDfp345_knDVPM5y4KT5ebY7" provider="Canwest Broadcast Entertainment" categories="GlobalTV,GLOBVC3,GLOBVC3/Shows/Survivor/Full Episodes,MOBGLOB/Survivor%3A Redemption Island,MOBGLOB/Survivor%3A Redemption Island/Full Episodes,z/Global Show - Survivor,z/Global Video Centre,z/Mobile GlobalTV" keywords="Entertainment;Programming" type="video/mp4" tp:ChapterEndTimes="00:07:36,00:12:39,00:21:49,00:31:17,00:42:12" tp:ChapterStartTimes="00:07:36,00:12:39,00:21:49,00:31:17,00:42:12" tp:Clip_Type="episode" tp:Episode="2" tp:MobileRotatorActionType="Show" tp:Network="Global" tp:Season="22" tp:Show="Survivor" tp:Subject="Entertainment" tp:Web_Exclusive="No" tp:dpcjobid="142304" tp:isHD="true" tp:mDialogIngestSuccess="true" tpyndRODO="true"/>
</switch>
<switch>
The rtmp links are right there for you, no auth codes or anything tricky. And those links will stay valid for months (even after globaltv.com removes the link from their website).
Here is how to get the rtmp for cbc.ca/video
we will use this link as an example:
http://www.cbc.ca/video/#/Shows/12212543...1817810978
first we need to get the "ID" (1817810978 in this example) from the original http browser location. Then we need to put that ID in the next link. This will give us the real PID.
NOTE: the PID below (_DyE_l....) is the same for every cbc.ca link, it does not identify the video
http://cbc.feeds.theplatform.com/ps/JSON...1817810978
that will return this line: (What we want is the PID (this is the real PID this time))
{"context":"","listInfo":{"itemCount":1,"totalCount":1},"items":[{"PID":"MBboAGCCmaL97NWHlbkucTYjEVwfC5Uz","title":"Episode 102"}],"removedIDs":[]}
#We now have the real PID, we can now enter that PID into the url below to get the rtmp and playpath locations
http://release.theplatform.com/content.s...YjEVwfC5Uz
That will give us this:
<meta base="rtmp://cp37429.edgefcs.net/ondemand/?auth=daFaEaBa6cXdxd2bKaHbwbvdFcPcvcrccaz-bnz8oN-b4-lks_Ksw1xmGpDAy&aifp=v0001&slist=netstorage" />
</head>
<body>
<ref src="netstorage/George_Strombo_Tonight_102_2155-2-24-2011.flv" title="Episode 102" author="George Stroumboulopoulos Tonight" abstract="Best of Show with Jim Parsons and John Leguizamo." copyright="© CBC Production" dur="1467104ms" width="640" height="360" guid="7I3gl5O1DHC9GcYIp3WGiLju3upag8NV" provider="CBC Production" categories="Shows/George Stroumboulopoulos Tonight,Shows/George Stroumboulopoulos Tonight/Guests,Shows/George Stroumboulopoulos Tonight/Season 7" keywords="George Stroumboulopoulos, George, George Tonight, Strombo, George Stroumboulopoulos Tonight, Jim Parsons, John Leguizamo," tp:Account="Entertainment" tp:AdCategory="george" tp:AdSite="cbc.george.ca" tp:Aired="true" tp:AudioVideo="Video" tp:AvailableInHD="(not specified)" tp:BylineCredit="CBC/Radio-Canada" tp:CBCPersonalities="George Stroumboulopoulos" tp:Camera="(not specified)" tp:ChapterStartTimes="10:01, 13:41" tp:ClipType="Full Program" tp:CommentsEnabled="Yes" tp:EpisodeNumber="102" tp:FeatureImage="http://thumbnails.cbc.ca/maven_legacy/thumbnails/George_Strombo_Tonight_102_2155-2-24-2011_444x250__559856.jpg" tp:Genre="Entertainment" tp:LiveOnDemand="On-Demand" tp:Region="(not specified)" tp:RelatedURL1="George Stroumboulopoulos Tonight website|http://cbc.ca/strombo/|_blank" tp:SeasonNumber="7" tp:Show="George Tonight" tp:Sport="(not specified)" tp:Subtitles="No" tp:adRules="2_2_0"/>
</body>
</smil>
what we want is:
rtmp://cp37429.edgefcs.net/ondemand/?auth=daFaEaBa6cXdxd2bKaHbwbvdFcPcvcrccaz-bnz8oN-b4-lks_Ksw1xmGpDAy&aifp=v0001&slist=netstorage
netstorage/George_Strombo_Tonight_102_2155-2-24-2011.flv
transform that into (notice i removed the amp:
rtmp://cp37429.edgefcs.net/ondemand/?auth=daFaEaBa6cXdxd2bKaHbwbvdFcPcvcrccaz-bnz8oN-b4-lks_Ksw1xmGpDAy&aifp=v0001&slist=netstorage playpath=netstorage/George_Strombo_Tonight_102_2155-2-24-2011
andre_pl Wrote:I can't believe I didn't notice this earlier!! I just spent two hours playing around with it, and only managed to figure out about half of that.
Thanks a ton. I'm definitely planning to implement CBC and Global, at which point I'll probably have to rename the plugin.
app: live?ovpfv=2.1.4
flashVer: WIN 10,2,152,26
swfUrl: http://watch.tsn.ca/Flash/player.swf?themeURL=http://watch.tsn.ca/themes/TSN/player/theme.aspx
tcUrl: rtmp://cp52820.live.edgefcs.net:1935/live?ovpfv=2.1.4
pageUrl: http://watch.tsn.ca/#clip428645
Playpath: TSN-LIVE33-FLASH@37547
rtmpdump -z -r 'rtmp://cp52820.live.edgefcs.net/live?ovpfv=2.1.4' -y 'TSN-LIVE33-FLASH@37547' -s 'http://watch.tsn.ca/Flash/player.swf?themeURL=http://watch.tsn.ca/themes/TSN/player/theme.aspx' -o out.flv -t 'rtmp://cp52820.live.edgefcs.net:1935/live?ovpfv=2.1.4' -p 'http://watch.tsn.ca/#clip428645' -f 'WIN 10,2,152,26' -a 'live?ovpfv=2.1.4'
DEBUG: Property: <Name: level, STRING: error>
DEBUG: Property: <Name: code, STRING: NetStream.Play.StreamNotFound>
DEBUG: Property: <Name: description, STRING: Failed to play TSN-LIVE33-FLASH@37547; stream not found.>
DEBUG: Property: <Name: details, STRING: TSN-LIVE33-FLASH@37547>
DEBUG: Property: <Name: clientid, STRING: 5ILYZHdG>
bolverk Wrote:Can you see anything that stands out at you? I'm at the beating my head against a wall stage.
-Dan
andre_pl Wrote:Thanks teefer22, I've implemented it, but I have nothing to test with at the moment, the brier is still listed on TSN but its not working even on their webpage. if anyone knows when the next live stream will be available for testing let me know.