Station Module Requirements

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

The purpose of this wiki page is to develop a list of functional requirements for the Station module as development proceeds. The list is divided into Must Haves, Nice to Haves, and Future Considerations. Please add your own station's requirements to the list under the appropriate category with your d.o username next to each that you agree with. Please consult the group before demoting any requirement.

When a general consensus direction is reached on each requiremnt, these can be turned into issues at the Station issue queue http://drupal.org/project/issues/search/station

This list began out of conversations from the Drupalcon 2012 Radio BOF in Denver hosted by drewish as how to proceed in D7. We're updating as Tim Plunkett is in the beginning stages of the Drupal 8 port.

MUST HAVES

  • Show (or Program) Scheduler (drewhutchinson, sjeslis, sadieswanson)

    • Down to the minute
    • Create and edit all "on-air" times in one place
    • Fields would be: Title, short description (times on-air), Image (large and tumbnail), Show Description (Body)
    • Calendar view of all programs, Day, week, month
  • Playlist (drewhutchinson, sjeslis)

    • Charting system to track top spins
    • Flexibility to add custom fields without needing too much hackery
  • Now Playing Block (drewhutchinson, patricroma, sjeslis)

    • On Air now (show) (sjeslis)
    • Track now playing with cover art (sjeslis)
    • Last 'x' number of tracks that played (sjeslis)
  • Audio archive (drewhutchinson)

NICE TO HAVES

  • Musicbrainz and/or Amazon integration on playlist, catalog nodes (will catalog be in a D7 port? -ra)

FUTURE CONSIDERATIONS

SCHEDULING OPTIONS

For the schedule there are several options that may be defined. For show x that airs at 8:30 am every other Monday morning and lasts 2 hours it could be setup as:

  • Scheduled at a full "calendar" level
    • Repeating dates - April 2nd 8:30am to 10:30am / April 16th 8:30 to 10:30am etc...
  • Shows are scheduled for a Day and time range
    • Monday 8:30am to 10:30am (some how noting that it is alternating with another show)
  • Shows are scheduled for a Week / Day / Time Range
    • Odd or Even Weeks - Monday - 8:30 to 10:30

For the full calendar option is seems easy enough using views / date fields to create a "playing now" block. For the next two options it is less clear how to make that work.

For my case (joemoraca) option 3 would work best as it seems simpler to understand - but for determining what is playing now or today you somehow have to parse out week, day and time to match now().

Just to second this, option 3 is also best for us (sadieswanson) as all of our shows get scheduled on a weekly basis. If this was available we would definitely use it.

Comments

Sourcefabric Airtime

darvit's picture

An open source radio automation software that has some features similar to what is described above. Perhaps worth a look to investigate some features.

http://www.sourcefabric.org/en/airtime/

Mabe even Drupal can provide the consumer-facing radio station website and connect to airtime to provide the show/song/announcer infromation.

Has anyone looked at this?

jefgodesky's picture

It seems pretty impressive to me, but my station is a bit different from most of yours. What do the rest of you think of this?

--
Jason Godesky

I think a good place to start

jayepoch's picture

I think a good place to start might be to determine whether or not the Station module itself is used to run the radio stations broadcasts, or if its purpose is to only provide information about those broadcasts.

The old station module seems to have taken the latter approach -- taking a radio stream that was already running and building a Drupal site around it. ie, the Station Archive module used StreamRipper to archive the broadcast. For an internet radio broadcaster this is highly redundant.

If the Station module can't be used to run the station itself then all the auxiliary metadata is being entered into a system twice -- once into whatever is being used to run the station itself, and then again into Drupal.

So for me, the first Must Have would be to develop a way for Drupal to actually power the broadcast of an internet radio station. Most of the other requirements could then be developed around this goal.

Well this sounds like a

robbt's picture

Well this sounds like a totally new project all together. The idea of running a radio station from Drupal sounds like it could work, but there are a lot of hurdles. I think that the AirTime project from Sourceforge is also somewhat interesting. We at WCRS ended up with a hybrid where we have our programmers upload to our website and then in turn we use a proprietary automation system named RadioLogik that downloads their shows as podcasts and schedules them.

I don't think that developing an automation system is within the scope of a Drupal 7 port of the Station module but perhaps something could be put together with the Community Media project.

And there is an issue with duplication of metadata. The Audio module seems to be the biggest hurdle in terms of porting the project as it has never even received a stable Drupal 6 release and I'm not sure if anyone has thought of porting it to Drupal 7.

I know that Sourcefabric at least played with the idea of developing a drupal module to integrate their system with Drupal. I don't think anyone has done any development though on this. They are currently offering their SaaS solution AirTime Pro but I don't think it offers a complete website.

I think that integration of social networking and spam control are the features we are looking to implement next, but looking forward to a drupal 7 based Station module would be useful as well.

Collaborating with the community media project (and group)

gusaus's picture

With community radio a subset of community media, I'd think there would be more overlap between the platforms and groups. Andy, who posted this wiki, also had some thoughts on this.

From what I can gather, there's not yet a plan to port community media to Drupal 8. So possibly it would be a good time to see if/where it makes sense to collaborate and pool resources. They already have provided the guide for effective collaboration.

Gus Austin

Lessons learned from Radio Engage and Open Media Project?

gusaus's picture

Almost 8 years ago there was a similar discussion about looking for overlap between what at the time were two Knight funded community media projects. Not sure exactly what evolved over the years, but to the best of my knowledge Radio Engage (which was going to build on the station module) was never finished and a lot of the work started as the Open Media Project morphed into Community Media Drupal.

Not having any direct involvement with either, there are probably some lessons we could learn by getting a better feel for how those projects evolved. If lack of collaboration and pooling of resources was part of the problem, possibly this could be a new opportunity build off any lessons learned.

Anyone with direct knowledge of these projects have any words of advice?

Gus Austin

Airtime Fills Part Of The Bill..

sjeslis's picture

I didn't see that it had an "AutoDJ" like Station Playlist does. Typically at my on-line station we have "shows" 3 hours a day and the rest are auto-generated playlists.

Let's get the ball rolling..

ydahi's picture

Any Drupal developers willing to tackle the integration of AirTime?

I can provide some support and possibly sponsorship.

Web & Multimedia Developer

I have been thinking about

robbt's picture

I have been thinking about doing this with my cooperative. Eutectoid.com. The radio station I help run WCRSfm.org has been planning a move to airtime and we already use drupal for our website. I know that there has been some talk about it, but how would you want the two to integrate.

We are in the process of

ydahi's picture

We are in the process of setting up a campus radio station, pending license, and are looking to invest heavily in the web-end of the the project by delivering podcasts, on demand/livestreaming video and audio, interactive playlists, etc.

I'm still playing around with AirTime, internet radio is a completely new beast for me, however I will share requirements once the client provides them.

In the mean time, can we possibly create a new wiki so that we don't hijack this one?

Web & Multimedia Developer

Continue with this wiki for Drupal 8?

gusaus's picture

I came across this wiki as I was looking to create something similar for the Drupal 8 port in progress. Instead of just creating another one, we should probably update and use this one. To start with, would those familiar with the current Drupal 7 module care to update the wiki accordingly? We can continue to use the comments to discuss features,requirements, and overall status.

Also, per our discussion on d.o., we're still looking for a "product owner" to help decide the functionality and scope of the project. Anyone interested in playing that role?

Gus Austin

Fundraising features developed for Audience Engine

gusaus's picture

Just posted about Audience Engine before I discovered this wiki. Here's a list of features they're developing -

RADIO
Audio Archive Management
Live Interactive Playlists
SoundExchange reporting
Traffic Control: Program & spot scheduling
Support for Podcasts, Video & Images
Per-Program Crowdfunding

FUNDRAISING
Crowdfunding
One-Click Donations
Gift Inventory
Mini-Goals–>Overall Goal
On and Off-Site Donation Widgets
Peer to Peer Campaigns

DONOR MANAGEMENT
Civi-CRM
Email Management
Behavior Tracking and Analytics
Major Gift Research
Social Media Management

GIFT FULFILLMENT
Packing Slips
Postal Codes
Gift Inventory
IRS Tax Letters
Customer Service

ENGAGEMENT
User registration, profiles, favorites, analytics
Cross-organizational search (opt-in audience sharing)
Chat, annotations, commenting
Crowd enrichment of content
Metrics on your community: Learn what they like and tailor your fundraising accordingly

Not sure how much of this functionality is already built into the Station modules, but many of these features could be beneficial for stations. I'm particularly interested in their fundraising component, called Mynte, as this 'could' be a way for stations wanting to test out the platform in development to help raise funds for the ongoing effort.

Thoughs?

Gus Austin

Ok so the audience engine

robbt's picture

Ok so the audience engine project seems interesting but it also appears to mainly aimed to be a SAAS project. They have no links to source-code and/or instructions for deploying it yourself.

I did manage to find a could of repositories
https://github.com/wfmu/ae-select - a select framework for a javascript framework known as ember.js

The other Repo is https://github.com/deathbearbrown/ae-framework

Neither of these appear to have much code relating to the feature set they are promoting.

I think that radio station scheduling and playback is beyond the scope of what should be accomplished in a Drupal module. Airtime does a lot of that and their pro version which they plan to release the source code too (it was on github until recently), is pretty functional in this regard and has APIs that can feed to a station regarding what is scheduled etc.

Just some thoughts. I'd love to see the source code to Audience Engine since they are touting it as open-source.

Audience Engine will play well with Drupal

gusaus's picture

I reached out to Audience Engine regarding if/how it could work with Drupal. Got this info back from one of the folks leading their effort:

Audience Engine will incorporate nicely into Drupal, it is just no longer based on Drupal itself, we made this decision to streamline AE's ability to be inserted into any other CMS.

Think that was the right decision on their part.

My hunch is we're not seeing stable code on github because they're still in early stages and releasing pieces incrementally. As it looks like their fundraising component is their first release (this presentation was from their launch event last November) it would be ideal if we could work with them to incorporate into our solution.

The goals are very well aligned as it could provide a means again for stations and producers to help pay for their technology. And possibly we could help incorporate their features into a variety of music/media centric setups that will help media and content producers sustain themselves.

I'll see if I can point their team to this discussion and see if we can identify some points of collaboration.

Gus Austin

Spinitron to merge with Audience Engine

gusaus's picture

Looks like Audience Engine will be incorporating features provided by Spinitron into their platform.

Interestly it doesn't look like they'll be an open-source version of Spintron, so I'm guessing all of the functionality would be handled by Station. From the looks of it, most of it already is? Are there any other features we should have?

Gus Austin

From my understand the

robbt's picture

From my understand the functionality that Spintron provided was primarily with regards to providing reporting logs etc towards the various license holders of music rights etc. This type of song specific time specific station log is beyond the current scope of the Station module and would require a significant amount of incorporation with whatever playback system exists.

There is a project to implement this for Airtime - by a Canadian radio station. See https://forum.sourcefabric.org/discussion/17603/airtime-eh-canadian-vers... - I think that the actual log reporting etc would need to reside at the automation/playback level.

I don't think building this from scratch with Drupal is as feasible a project as building a radio station website template that provided as much as the public facing functionality as possible and then adding glue to connect to various automation/streaming backends such as Airtime or Rivendell or any of the other pre-existing automation systems.

A lot of small radio stations could just use a nice web interface template where they could upload their podcasts, show their schedule and have a link to donations etc (the functionality promised by Audience Engine). Many LPFM and web-based stations out there have very small budgets and are reliant upon volunteers to build everything. So I think building a distribution that aimed to help build a web presence that looked good and was easy to manage is probably a good first step.

Most features already included?

gusaus's picture

From the looks of it, most of the 'radio' features of Audience Engine are already part of the Station module(s). The exceptions being, like you pointed out, SoundExchange reporting, statistical reports...but not much else? So I don't think we'd need to build anything new into the Drupal 8 release.

And, similar to Drupal Commerce, the station modules could be included in a distribution that could be easily managed and customised by non-drupal users. I think we could probably provide a nice, out-of the box solution with Station on top of Panopoly right now. With the Drupal 8 port still a bit down the road, maybe we can create a stable release for D7 in the interim.

That said, it would be great to get some more input from people, stations, or Drupal shops that actually use or have used this set of modules. What would a MVP look like and what would be the time/cost needed to get there?

Gus Austin

I agree with the approach of

Ericmaster's picture

I agree with the approach of building a suite similar to Drupal Commerce because it's very complete, modular and at the same time it leverages the work done by the community on other modules, I guess the Station module can follow a similar approach for D8 and we can possibly build a Kickstart distribution profile with the most common configurations similar to the Commerce project.

I would consider using the Liquidsoap tool, which is also being used by Airtime which is an awesome tool too but I found Airtime too complex for simple things. I implemented a simple automatic playlist for myself thorugh a liquidsoap script a while ago (when was still in beta) to be able to read music from folders in a scheduled time and also override through live broadcasts from time to time. I haven't used it in a while, but I guess now that it's stable we could retake that and possibly we can build a Drupal module that generates .liq scripts and issue commands to liquidsoap service to use Drupal as a frontend to Liquidsoap.

I don't have any station or work in anything related to online radio broadcasting but I've been a bedroom dj from time to time. It could be an interesting project to work on. Let me know your thoughts about a liquidsoap integration.

Would this be necessary if there was Airtime integration?

gusaus's picture

It looks like there's been interest and some development already -
https://wiki.sourcefabric.org/display/CC/Ideas+on+Airtime-Drupal+Interop...
https://github.com/iliyat/drupal-airtime

Would Liquidsoap be an alternative to this?

Both would be add-ons to the core Station module set, right?

Gus Austin

Not necessarily

Ericmaster's picture

I wasn't aware of the efforts of integrating Drupal with Airtime, I guess it would be something like Drupal making use of the services or API provided by Airtime as a Station suite, I guess the benefit of using Drupal in this case would be to have complementary tools that Airtime does not provide but the station management I suppose will be mainly handled by Airtime in such integration.

Anyway, what I had in mind was more an alternative by integrating directly Drupal with Liquidsoap and possibly using it as an add-on to the Station module set, that way a station could be managed directly from Drupal and using liquidsoap to arrange/generate the streaming source (or sources). Also, Liquidsoap has a rich set of features for controlling streams, Airtime just makes use only part of it. It could be great to have a module that makes better use of the capabilities of Liquidsoap, like crossfading, add some jingles or even perform some sound processing.

A Liquidsoap integration could also be used to integrate with Airtime as it uses Liquidsoap in its core as well, possibly running simultaneous Liquidsoap scripts or connecting to the same socket, I don't know, but I think it's a possibility.

There's talk/interest in this thread

gusaus's picture

A good bit of the comments revolve around add-on modules to Station... which is great! Not having built a site using Station, I'm not totally clear on how current the wiki is in terms of what's included in the D7 release and if everything is working. By the looks of it, the module could use a couple more active maintainers.

Would be good to hear from others who have used or contributed to the D6 or D7 versions.

Gus Austin

Will be able to integrate Audience Engine a couple ways

gusaus's picture

After attending a demo/qa of their platform, I can safely say that we'll be able to integrate Audience Engine in multiple ways that will benefit stations and other content creators. This will be in the form of Drupal modules (that could be a nice add-on to include in a radio distribution) to embeddable widgets for those wanting to use their hosted platform. We also may leverage their fundraising tools to crowdfund development.

Gus Austin

This is exciting. I added the

robbt's picture

This is exciting. I added the Idea of porting the Station module to Drupal 8 on the Google Summer of Code wiki and listed myself as an Interested student. I also send Tim a e-mail regarding this as well. I would be excited about working on this as a first step and then working on a more comprehensive Distribution.

I've also been in communication with the head developer of Airtime, they're currently doing a lot of work on their SaaS version Airtime.pro but will be releasing the source code in a new open-source version in the future. I think that it could be possible to integrate with them via their API. In my mind the initial focus should be on building a web presence for radio stations and not get into automation as that is a much more complicated problem to tackle.

Sounds like we're covering all the bases!

gusaus's picture

It's easy to get lost in the threads and emails, but I think there's some general consensus regarding the scope of a radio distribution. It should include Station module, but integrations such as Audience Engine, Airtime, or Spinitron would be separate, add-on modules.

Also think porting Station to D8 would be a great GSOC project, but it's going to be awhile before there's a stable release. In the meantime, the only visible release for Station is unfinished. With a stable release, we could provide a solid base distro for stations who need one now.

Possibly this would be a good way to prep for GSOC?!?

Gus Austin

Not happening with Google Summer of Code?

gusaus's picture

Looks like Google Summer of Code passed on this (or however that works)? Wonder how many stations would be interested in funding a stable solution they could use.

Radio silence....??

Gus Austin

gusaus's picture

Looks like they're redesigning their site in stages, but you can currently see the Audience Engine crowdfunding component Mynte in action for their Fundraising Marathon happening right now.
https://wfmu.org/
https://wfmu.org/marathon-2016/
http://www.wfmu.org/playlists/shows/65417
https://wfmu.org/marathon-2016/?pid=TM

The Audience Engine folks will be ready to start building modules for their single sign-on and crowdfunding pieces in April. We're still looking for a technical lead to collaborate with their team on development and stations interested in using and/or sponsoring development.

Chime in if you may be interested and contribute to WFMU if you want to test & support a great station!

Gus Austin

ember.js

dan.mantyla's picture

hmmm that interesting that you say the framework is ember.js - https://events.drupal.org/neworleans2016/sessions/amazing-user-experienc...

=============
Kansas Public Radio - http://www.kansaspublicradio.org

Radio automation intergration

ymazigo's picture

Hi has anybody think or take a look at Radio DJ

http://www.radiodj.ro/

Similar to Airtime (but not as good?)

gusaus's picture

Haven't seen that one, but it looks like there's some similarity to Airtime? https://www.sourcefabric.org/en/airtime/

Based on the interest for Airtime integration in this thread, I'm thinking that would be better solution compared to Radio DJ.

Are you running any stations on Drupal, ymazigo?

Gus Austin

A lot of great info and ideas

dan.mantyla's picture

A lot of great info and ideas in here!

Someone asked if we could hear from someone who has used the D7 version. I have, here's my experience:

When I used Station to build the website for Kansas Public Radio, I used the content types provided by Station, namely Schedule and Program. Added the programs to the two schedules/programming we have. But we don't use the Playlist functionality of Station - IIRC we couldn't because it would display songs that haven't played yet and that went against some FCC rule or something. Instead, we have a separate product for creating playlists (NPR Composer) and it fallows all the rules. It's also nice to have DJs (we call them Hosts) be linked to the Programs, and visa versa.

So, for my use case, Station helped us create pages for Programs, Schedules and Hosts. But that's about it. I don't even have Station Playlist, Station Catalog or Station Archive enabled. Our website is quite massive as it also must handle a large News department that published a dozen articles a day, must handle giveaways for tickets and CDs and books, podcasts, etc. There's an events calendar with user created events as well as our own. Then all the SEO, social media, devel, admin, dipslay and webform stuff. It become much much more than just a "station template" for an online radio.

Someone also mentioned podcasts. That is something that is lacking from the D7 version. I wrote my own code for handling podcasts in Drupal and we can use that get started. It required the NPR Fields module, but we could very easily 'borrow' the code needed to create the MP3 field for a Podcast content type, or we can make NPR Fields a required.

I'm highly interested in Audience Engine, and developing Station to work together with it. I'm willing to work as a contributor to the Station module to integrate with Audience Engine and make sure this happens.

=============
Kansas Public Radio - http://www.kansaspublicradio.org

Product owners and maintainers?

gusaus's picture

Circling back from related posts, I think we can put more of this talk into motion. I should be moving forward a project I want to develop in the open this month. We're already setting the stage for collaborating with the developers of complementary projects such as Audience Engine and Airtime. There are probably a bunch of stations still on Drupal 6 anxious to upgrade to a D7 or D8 solution... especially if it's affordable.

As the current maintainers are either very busy and/or not still currently active with project, would it make sense to see if they need some help with maintaining the Station module?

Either way, we should take ownership of this wiki as we move forward. Any other ideas for next steps?

Gus Austin

Integration with Audience Engine?

dan.mantyla's picture

I'm going to get started on setting up dev environments to work on the D7 and D8 ports of station, and hopefully I'll be submitting some stuff soon. But, looking to the future...

Lets talk about HOW Station can integrate with Audience Engine.

Station provides a content type for Programs, which can be added to Schedule(s) and have a User "DJ" (or what we call a Radio Show Host) linked to the Program. Then there's Playlists, Catalog and Archive (which I don't use but I understand their purposes).

My understanding of AE is that it's main function is to provide a space for a community of fans to chat and engage, and the code will inject lots of "Donate Now!" buttons to the website during a pledge drive. It also sounds like there will be a crowdfunding, "kickstarter style" fundraising tool for specific shows/projects. For example, my station just dropped some expensive shows because of funding issues, we could say "Hey if you want this show then pony up. The goal is $__ and it's __% funded by __ number of donors" or something. Then there's a CRM for tracking donors, analytics, SoundExchange reporting, etc. (If there's more to AE than that, then please tell me).

So, to integrate the two, we can take these features and put it into the Program pages. Seems pretty straight forward now that I think about..

A few weeks ago I reached out to Ken Freedman and this was his response:

"Great to hear from you and yes indeed, we do plan on putting work intro Drupal modules for Audience Engine. We just took Mynte V1 out for a test drive during our own pledge drive last month and the good news is that it worked well and we made our goal of $1.2 million in two weeks. The not-so-good news is that we need to refactor the base code a bit and that is going to delay the market readiness of Mynte / AE by another 2-3 months."

He also was interested in meeting up at NFCB Conference in Denver in June, so if you'll be there then maybe you can find him.

In an article I read - http://current.org/2015/06/wfmus-audience-engine-aims-to-make-public-med... - he was quoted as saying "Software development at this level is extremely complicated, particularly when we’re working so hard to document and modularize the whole thing. We’re trying to really do this as true open-source that’s incredibly well-documented so other groups can build their own templates and improvements on it."

So that sounds to me like if they don't release Drupal modules themselves (which they plan to do), then they've made it very easy for us to do it. Going forward, I should probably work on the D8 port and if the AE people haven't released a module for Drupal then we should start talking about how we could integrate it into the station module.

But maybe I should assume that they WILL release a separate Drupal module for AE and we should start thinking how we would have the two modules play nicely together. It seems to me that AE is an open source PHP Library & API and any AE Drupal module will simply make calls to the API that will return the content for the drupal blocks, views, nodes and such. Right?? But if AE also provides everything that Station provides (they have "Radio" features listed on the website: Audio Archive Management, Live Interactive Playlists, SoundExchange Reporting, etc) then there will be overlap and that's not good. (BTW, my station uses and pays for NPR Composer for playlists and SoundExchange reporting, so there will already be some overlap between products. It might be helpful to note that we're required by some rule somewhere to not display what song will play next or any time in the future. That's one reason why we use NPR Composer and not the Playlist feature of Station, that and because we already pay for NPR Digital Services and NPR Composer makes it super easy to add songs because it has a huuuuge database of songs - via iTunes - and the fields are autocomplete, makes it very quick and easy. Ideas for the future maybe.)

It also looks like AE will use a Ember in some way. Ember and Drupal can work very well together. In a nutshell, Ember is javascript framework that can give a website more native-app like qualities by converting it into a sort of single-page javascript website with really cool transition effects between pages. There's more too it of course, but Ember can work on Drupal with a very small amount of code because of Drupal 8's "headless" architecture.

So that could possibly be what the Audience Engine people are up to when they're building their Drupal modules. I wish we could get some more nuts-and-bolts info from them though.

=============
Kansas Public Radio - http://www.kansaspublicradio.org

Users will be able to mix and match

gusaus's picture

From what I can gather (let me know if I'm wrong), we're talking about a couple different things.

1) The station module - since this is an existing project, we should use the issue queue for both technical issues and meta discussions around development process and resources (skills/funds) needed to sustain.
2) Complimentary 3rd party integrations with services such as Audience Engine, Airtime, and even Public Media - some of them already have d.o. projects, others don't; there may be elements of overlap w/ Station module.
3) Radio product or distribution - an easy to use/customizable setup, where the user could install Station, Audience Engine, Airtime, etc. depending on the specific need or budget.

As the discussion has moved beyond the scope of just station module maybe we should adjust the wiki accordingly and keep riffing on solutions.

With regards to Audience Engine...assuming their first release will still be their fundraising component, I don't think we should be concerned about overlapping w/ station module...at least in the short term.

An easy, but helpful, re-entry point for station might be to work though the issue queue and related posts... see what's needed to create a stable D7 release.

Thoughts?

Gus Austin