Image via Wikipedia
For a long time now, I’ve been a paying customer of SchedulesDirect, and by that token their parent company Zap2it (now a Tribune Media Services company).
Recently, I’ve started publishing my own personal Electronic Programming Guide (EPG) here on BCmoney MobileTV in an accessible format:
One of the secondary goals of my MobileTV project has always been to be able to provide all XMLTV users a venue to easily access and conveniently plan/schedule their TV viewing via the web, on a variety devices (i.e. mobiles/tablets/desktop computers).
I found that GET requests are not supported so technically the Tribune Web Service must still be following the SOAP 1.1 not SOAP 1.2 standard which specifies both GET and POST are acceptable as long as the SOAP request enveloppe is passed via URL.
Since that is not supported, you have to use POST and it also has to have the BASIC authentication information included in the header in the exact pattern:
Authorization: BASIC xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx = base64encoded(username:password)
Don’t forget the semicolon as a string in between the username and password (like I did at first)!
Before any programming, try debugging using a SOAP tool… it DEFINITELY helps save sanitiy. I got it working using SOAP UI: http://soapui.org/
You need to do the following in SOAP UI:
- File –> New SoapUI Project
- Name it “SchedulesDirect” or something the like…
- Paste in the WSDL location “http://docs.tms.tribune.com/tech/tmsdatadirect/schedulesdirect/tvDataDelivery.wsdl”
- Check “Create TestSuite” and “TestCase”
- Expand the project, Under “xtvdBinding” there should be a “download” Web Service call stub, expand that and open Request 1
- Click the little “Auth” tab at the bottom of the Request window (easy to miss… look down next to “Headers” and “Attachments” tabs)
- Enter your SchedulesDirect username and password, then click the little green “Run” arrow at the top left of the Request window
With the initial testing out of the way as a “sanity check” on your SchedulesDirect account, you can now get started on the coding.
TMS Direct Download script
In the meantime, here’s a modified version of “tmsfetch.php” which was initially provided by SchedulesDirect as one of the official examples:
$stop =gmdate("Y-m-dTH:i:sZ",time()+3600*24); //tomorrow (now + 24hrs)
$client = new SoapClient($wsdl_url, array('exceptions' => 0,
'user_agent' => "php/".$_SERVER[SCRIPT_NAME],
'login' => strtolower($username),
'password' => $password));
$data = $client->download($start,$stop);
This script provides a basic way of downloading TV data in Tribune Media Services (TMS) format. It can even provide a translation into XMLTV format (which is slightly different than TMS, but conveys all the same data); however, it won’t help much with the display of the data on the front-end. For that, I would suggest looking into one of the approved applications for actually viewing your XMLTV listings in the familiar grid/list styled EPG. While most of the software there is designed to run on the desktop, I would highlight XSLTV for web-based applications. There is not yet a mobile-friendly XMLTV application but stay tuned for my new jQuery plugin (not yet available), which should hopefully be compatible with jQuery Mobile.
« previous post
Dynamically Resizing an iFrame
iFrames, love them or hate them they are all over the web.
When used properly...
next post »
Sports Stats API feeds evaluated: ChalkGaming wins
Well, I've decided to give this one away in the title, since the good folks over at Ch...
- LayerPlayer released for SkipSearch
Announcing the availability of SkipSearch's new Layer Player ALPHA version. This is still early days even though its a multi-year project for me, as I continue to work on this in my very rare spare time. This new feature will much more readily bring to light the capabilities of the recommendation engine built under the...
- Reality TV or Glorified Karaoke Competition? [INFOGRAPHIC]
Cami Hadley and the team over at Cable.tv have created an excellent infographic that summarizes the state of Reality TV singing competitions:
- My Experiment in Cutting Cords (and costs) with VoIP
Like most Canadians, I have paid way more than I care to admit to the greedy Telcos over the past several years. My estimates put my average monthly bill for two smartphone plans and a home telephone line with an international long-distance plan at approximately $175/month (some months higher, some months lower, but that's the...
- CNN-style Interactive News Ticker (HTML5/CSS3)
With the real, true and unbiased news inevitably moving online towards the so-called "Alternative Media" (which really is almost reaching the point where it is not alternative so much as the first go-to source), its a good idea to start replicating some of the most useful elements from Television, Print and Radio (aka. the rest...
- BCmoney MobileTV turns 1 YEAR OLD!!!
Image via Wikipedia
Title: BCmoney MobileTV turns 1 YEAR OLD!!!
Description: It is the 1-year anniversary of the Public Beta launch of BCmoney MobileTV.
Technically speaking, the official 1-year birthday of the founding of BCmoney as a business on December 17th, 2007 already passed; however the actual public beta launch of the BCmoney MobileTV...
- MobileMonday Toronto – Aka so begins Round 2 of the Search for Round 1
BCmoney MobileTV was invited to present in Toronto at the year-ending MobileMonday event for 2008 (June 9th, 2008 at DuneDain Media).
The presentation, will be split into two halves. The first half will serve as an introduction to the Japanese Mobile Ecosystem with a focus on Mobile TV, while the second half will contrast the Japanese...
- XMLTV EPG experiment – American Dad (MTV)
American Dad (MTV): " American Dad11.02.2007 03:30-04:00 MTVStan gets a hefty bonus hit on his salary and some of dreams start come true...."
NOTE: Testing an XMLTV Electronic Programming Guide called TV-Browser, looks like it is an excellent piece of software, and if I wanted to share my viewing habits by marking every "saved" show I...
- XMLTV EPG experiment – Top 100 All Time American Heroes (VH1 Classic)
Top 100 All Time American Heroes (VH1 Classic): " Top 100 All Time American Heroes10.02.2007 20:00-00:00 VH1 ClassicA countdown of the best bands and artists from America to achieve success in the UK."...
- Integrate PHP based SOAP RPS game server in another language, JAVA desktop GUI
Now that we have a Web Service ready to consume (even though it is SOAP based), it should be pretty easy to extend to Java, which also means it should be possible with a little bit of effort to create a Desktop GUI.
For more on creating a Java-based SOAP server to have an all-Java version...
- Exposing your PHP Rock Paper Scissors game via SOAP Web Services
So why SOAP? Well quite simply this was what I used back when I was first working through PHP and learning the hard way how to expose some server-side "business logic" as a Web Service. This was over a decade ago (late 2006 through 2007), and Google's SOAP Search API had yet to be phased...
- Moving a command-line PHP Rock Paper Scissors game to the Browser
In the first part we saw an example for creating a PHP Rock Paper Scissors game that waits for user input via the command-line and then evaluates the output of the game. Next we see an example for porting our basic command-line PHP Rock Paper Scissors game to the browser to reach a broader audience,...
- Creating a basic Rock Paper Scissors game in PHP
This tutorial will outline the creation of a very basic game I created a long time ago in PHP for the purpose of learning some basic concepts around inputs/outputs from the command-line, decision trees (nested "if-elseif-else" type statements) and variability in PHP's presentation layer. I thought I'd dust this one off in particular to emphasize...
- HTML Tutorial and Web History lesson
Today, something unexpected happened. I had the (somewhat unplanned and impromptu) pleasure of showing the ropes to the "new recruit" at work, a student here for a work term over summer break.
Now, we're not necessarily doing that much coding here yet, as we're still in the process of bringing back large portions of IT functionality...
- Audio Recognition overview (TTS, STT, Voice .vs. Speech)
It is still in many ways the early days of innovation in the several sub-categories of Audio Recognition.
Thanks to technological advancements, microphones have become smaller and smaller (perhaps to some extent this has been driven by the post-war and Cold War eras where espionage became so critical, so governments worldwide competed producing better and better...
- IFTTT finally releases its own API, sort of, with “Maker channel” triggers
IFTTT finally just released its own API (sort of) when it announced the introduction of its new "Maker" Channel which may very well be the closest we ever get to a true API. It offers HTTP-based activation of Actions to carry our when invoked or Triggers which can be combined with another service.
The Maker Channel...
In E-Commerce, a "frictionless experience" is often described as the ultimate design goal when it comes to the consumer's purchasing experience. An easy-to-use, robust shopping cart solution that can easily have any number of diverse types of items added to it, calculate shipping & handling, taxes and any other additional fees (where such apply), provides...
- JS Podcatcher v2.0
This is the first revision of my quick and dirty Podcatcher (podcasting client).
It adds three new features:
Ability to search for Podcasts by name (via iTunes API)
Resolving the actual RSS feed URL from the Podcast ID
Caching a copy of the RSS feed on the server in XML and only requesting updates if changes have been made
- NB Hackathon – NoSQL, BigData and Linked Open Data for Government
This month, I participated in the NB Hackathon, an event that aims to bring developers in Atlantic Canada (particularly NB) together for the purpose of hacking on some interestling Linked Open Data and traditional (i.e. Microsoft Excel) Government Data sets which is being made publicly available for the first time.