Looking for great schedules... anything better than WGBH?

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
kreynen's picture

I've been watching what Phil Johnson and Peter Bull have done with WGBH's schedule as a great example of a Drupal based schedule. Phil has blogged about the schedule's evolution. I'm hoping to learn/steal as much from WGBH as possible, but wanted to know if there is any other schedules I should be looking at for ideas. Please don't limit suggestions to PEG stations or Drupal.

I'm also hoping that by praising Phil and Peter's work, they will answer additional questions about their schedule's configuration... like are you still pulling your schedule's XML from PBS? Why not pull from your playback servers? Are you using the Simple Pie parser because it enables you to map more values than the Common Syndication Parser or for some other reason? Are you using Feed Element Mapper? Would you mind sharing the exports of your Content Types? Views?

Comments

i like the weekly view that

emilyf's picture

i like the weekly view that they've got set up, and in terms of the day view I generally like it but think it could definitely look a little nicer in the design department. I especially like alternating row colors.

Example: compare http://wwd.wgbh.org/tv/schedules/fullday/2
to http://www.cctv.org/watch-tv/channel-17-schedule

As you probably expect, we make this happen through css and and alternating row count.

The only other thing I like is a definite flag on if a program has streaming video or not. On my latest site I use a nice looking 'watch' button (really just a styled link class) in a column if the program has streaming video available (see screenshot); just a generally user-friendly feature.

Since the schedules are the bread and butter of peg, IMO they should be functional AND look great.

WGBH schedules

philjohnsonWGBH's picture

i'm glad you like our schedules and are reading our blog!

as sw9 says, the look and feel is definitely not optimal. we built out the new (drupal/pbs) back end and kept our (very) old look and feel for now. we're currently working on a total site overhaul (look and feel, new IA, etc.) while retaining the schedule import process we've already built. no ETA on that just yet...

we're still using the tv guide data feed provided to us by pbs via xml. previously, we did pull data from our internal television programming system. the main problem with that data, though, is that it's not meant for public consumption. so, it required a lot of editorial cleanup and rewriting. the tv guide data, in contrast, comes already edited for use on the web site. the editorial workload has been greatly reduced.

the other problem with pulling data from the playback system was that it was it was a far messier process than simply grabbing an xml feed. so the technical glitches we regularly ran into during the old import process have been all but eliminated.

as for the simple pie parser, neither pete nor i remember giving it too much thought. i believe we probably just started out with it and it worked fine so that was that.

we don't use the feed element mapper, mainly because for each feed record we're carving up the data to either create or update three different nodes (tv program, tv episoe, tv airing). this level of complexity seemed beyond the feed element mapper's capabilities. it was easier to just code that up ourselves.

we'd be happy to share content type and view definitions. it's a lot of code, though, so rather than plug it all in here it's probably easier if anybody who is interested drops a note through our blog's contact form:

http://devblog.wgbh.org/contact/

then we can shoot you a tarball or something.

finally, if you haven't already seen it, WETA in washington (http://www.weta.org/) recently relaunched their web site using drupal and a similar approach to their tv schedules (pbs data via xml). we shared information with them during this process and they did a great job.

I tried to contact Jess

kreynen's picture

I tried to contact Jess Snyder after I saw her?/WETA referenced in post about building your own mapper with Feed Element Mapper. I feel pretty good about Feed Element Mapper since KarenS started patching the feedapi_mapper_date.inc. If anyone is going to keep FeedAPI playing nicely with DateAPI, it's Karen.

JW Media Player

videohead's picture

They are also using JW Media player for their streams.
We should find out if they are using the SWFTools module, or a custom integration of content.

Phil and Paul followed

kreynen's picture

Phil and Paul followed through and sent me their WGBH TV Schedules and WGBH TV Search modules along with the custom theme. The theme is really "where the magic happens" in this case, so it's grat that they were willing to share that too. WGBH's content types enforce a hierarchy with node references.

WGBH (everything with the exception of tv_channel is generated with FeedAPI from xml provided by PBS)
tv_program
-tv_episode
--tv_airing (airing also links to tv_channel content_type)

Open Media Project
om_project (Organic Group)
- om_show (videos are attached to show with Media Mover)

om_airing (from FeedAPI, loose link back to show node based on matching metadata)
- Channel (added as taxonomy with FeedAPI Inherit)

WGBH wrote their own FeedAPI parser that processes a custom FeedAPI enabled content type (tv_schedule_feed). We have a custom feed content type as well (om_feed), but we've manipulating the feed from the Princetons into something FeedAPI and Feed Element Mapper like on the front end using some custom Simple Pie scripting. Instead of pointing directly at the Princeton, feeds are pulled through this script which resolves with some issues involving Princeton's guids.

Installing WGBH's modules was relatively painless once I got all the necessary files from Phil. The only real issue with the installs were that all of the dependent modules need to be activate fist. Trying to activate the WGBH modules and their dependencies at the same time generated some errors. I'm guessing that's just an issue of functions WGBH's modules call needing to be there before they are called. Once I got past that, I still had to go back and manually reconnect the node references. If anyone knows how to solve that problem, I have the same issue with our installers?

Once everything was installed, it didn't take much to add a custom feed to that created tv_airings. New tv_channels show up in WGBH's schedule. Unfortunately, the mapper for node references isn't working in the current release of Feed Element Mapper so I had to manually adjust the Episode and Channel references, but once I did that I started seeing DOM's shows in WGBH's schedule...

Unfortunately WGBH's schedule assumes begin an end at :00 and :30, so that's the first thing that would have to be addressed... but it looks like there is potential to build on this.

WGBH TV Schedules and WGBH TV Search modules sharing!

xmacinfo's picture

Is there any available solutions available that would let us create a schedule like the old WGBH TV or the current Weta TV.

I am most interested in building a page that would look like this: http://www.weta.org/tv/schedules or even better like what kreynen managed to do in the previous comment.

Thanks.

What the

darrick's picture

What the om_broadcast_synchronization (http://drupal.org/project/om_broadcast_sync) does is creates a content type called airings. You then populate these airings with feed_mapper if you can actually get your schedule via rss. Otherwise, you'd have to write some code to populate them.

Once you have a way of populating the airings. You then have a calendar view (http://drupal.org/project/calendar). The page at http://www.weta.org/tv/schedules is basically a calendar day view grouped by the channel taxonomy. The calendar module handles the links for going forward and backward in time.

So, what is left is to theme the calendar day view so it's laid out as the grid shown and not a bunch of rows. Which is work yet to be done in om_broadcast_synchronization. I.e. the airing content type is created, the view is created, so the view just needs to be themed now. Currently out of the box with om_broadcast_sync you get something like this:

http://dctv.davismedia.org/schedule/2010-02-09

Looks great, but...

davepotts's picture

Even just out of the box, this looks like what I need. I'm worried about the FeedAPI and SimplePie Parser dependencies though, as they're no longer being developed and don't seem to want to enable on my system. (Drupal 6.17, PHP 5.1.6).

Is there a workaround for this, or a new version forthcoming? Any help would be appreciated, just looking for a good way to build a TV schedule.

Thanks!

Need a way to build a TV schedule...

davepotts's picture

Would the om_broadcast_sync module be the way to go, if I can get an rss feed to it? Just looking for a little direction here, I'm a bit lost. I've tried to install a couple of times, but keep getting an error (that I've posted in the issue queue).

I really don't need advanced broadcast sync capabilities or anything like that, just a decent way to display our TV schedule, but I'm unsure if this is the way to do it. Thanks for any help offered, even if it's pointing me towards another module or project that can help.

@davepotts Responded you

kreynen's picture

@davepotts Responded you your specific error in the queue. om_broadcast_sync doesn't build a schedule, but creates a content type called om_airings that can be used to display upcoming airings in a block or a full calendar. The om_airing content type is currently use by stations using Telvue Princeton and Tightrope Cablecast servers. While the Princeton's use FeedAPI to import their airings, the Cablecast submodule for om_timeslot_scheduler populates those airings directly.

Are you pulling the RSS from a specific server?

Awesome

davepotts's picture

Just saw your response, getting to it in a minute. Thanks for that.

We're actually running a Harris ADC-100 system, but based on @Darrick's earlier comment, it sounds like I could create an RSS feed of my schedule, then import it to populate the airings for display on the web?

I haven't looked too deeply into it yet, I very well might be able to output the XML for this straight from our Harris playlists, I'll need to touch base with our broadcast automation person to find out.