Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LibreTime / Radio Station plugin integration #9

Open
gusaus opened this issue Apr 22, 2020 · 29 comments
Open

LibreTime / Radio Station plugin integration #9

gusaus opened this issue Apr 22, 2020 · 29 comments
Assignees
Labels
help wanted Extra attention is needed is: feature request radio station status: needs specs This task needs additional specifications.

Comments

@gusaus
Copy link
Contributor

gusaus commented Apr 22, 2020

Is your feature request related to a problem? Please describe.
Per @tonyzeoli #11, they are building an API into Radio Station plugin for products like LibreTime to connect and publish show and playlist content into WordPress. The goal is to help stations automate show info so no one has to login to WordPress if the data is coming from LibreTime. It eliminates duplicate efforts and ensures data accuracy.

The main problem, as pointed out by @Robbt in #11 is LibreTime does not yet have a proper API

Describe the solution you'd like
@tonyzeoli described the following needs in the LibreTime forum:

We are looking to pull the following from LibreTime into the Radio Station plugin -

  • Shows
  • Show Schedule
  • DJ (user)
  • Playlists
  • Live Stream URL

We would love to read/write though back into LibreTime, so once the show schedule is passed into WordPress on the first connection, the show schedule can be updated in WordPress the push up into LibreTime.

We’d want to create in WordPress new shows that are created and scheduled in LibreTime, so they publish into WordPress automatically and we’d want to pull the DJ user role into WordPress against the Show they are related to.

Also, we’d love to find a way to add our podcast fees in WordPress and have the API connect them up to shows created in LibreTime.

Assuming the solution will require new functionality for both Libretime and Radio Station, it would be ideal to collaborate with the maintainers of both projects on requirements and project scope.

Additional context

@gusaus
Copy link
Contributor Author

gusaus commented Apr 28, 2020

I forgot AirTime PRO integration was in the Radio Station PRO queue https://github.com/netmix/radio-station-pro/issues/26

Considering LibreTime is a fork of AirTime, I'm assuming the process for integration would be similar (once there's a LibreTime API)?

@gusaus
Copy link
Contributor Author

gusaus commented Apr 29, 2020

Quick side note - I came across this comment from @kmahelona https://gist.github.com/hairmare/8c03b69c9accc90cfe31fd7e77c3b07d#gistcomment-2808855

Airtime Pro doesn't have the features/back-end access that we need in order to use airtime for our terrestrial broadcasting.

The benefits of LibreTime vs AirTime/AirTime PRO might be something we could expand on and include in a beta pitch to terrestrial stations https://github.com/OpenProducer/community/issues/8

@gusaus
Copy link
Contributor Author

gusaus commented May 8, 2020

With progress unblocking the next major release of LibreTime, we'd like to help direct resources towards the LibreTime API + WordPress/Radio Station integration.

Similar to AzuraCast integration #8, I think we could upfront a good bit of development cost if we ran a crowdfunding campaign similar to CiviCRM's Make it Happen OpenProducer/community#13

@gusaus
Copy link
Contributor Author

gusaus commented May 21, 2020

Just came across https://www.wrir.org/ as an example on https://libretime.org/

Pretty sure this is WordPress... and if so, this is a really cool example of audio player and playlist functionality.

@tonyzeoli @majick777 Is this powered by the Radio Station plugin? https://www.wrir.org/schedule/

Possibly there are some elements that could be incorporated into our projects?

@majick777
Copy link

@gusaus They are using Radio Station for their Schedule, though not an update to date version, as that is showing the Legacy schedule view.

For the player, they seem to have their own custom styles, which is a good clean look. From what I can tell the player seems to also be custom javascript that pulls from Google Firebase storage. It is minified so it is pretty much unreadable code otherwise.

@gusaus
Copy link
Contributor Author

gusaus commented May 21, 2020

They are using Radio Station for their Schedule, though not an update to date version

Very cool to know that we have most of the ingredients to replicate.

Knowing this is Radio Station plugin...how much of this is standard or customizations on top?

Show archives https://www.wrir.org/listen/show-archives/

  • Search, sort and filtering
  • Play show / Add show to playlist links

Show page https://www.wrir.org/show/bebop-and-beyond-with-mr-jazz/

The playlist and 'now playing' links you see on the top nav - all really slick.

I'd like to incorporate as much of this functionality into this MVP as possible. Would be great to bring folks together for a sprint or two. https://discourse.libretime.org/t/custom-audio-players/140/33?u=gusaus

@tonyzeoli
Copy link

tonyzeoli commented May 21, 2020 via email

@gusaus
Copy link
Contributor Author

gusaus commented May 21, 2020

Interesting - I think a lot of stations would value the full suite of functionality. Not sure if/what could be incorporated into Radio Station, LibreTime, Audio player, but it would certainly be worth scoping out, including in a paid beta https://github.com/OpenProducer/community/issues/8, and contributing back to those projects.

@tonyzeoli
Copy link

tonyzeoli commented May 22, 2020 via email

@majick777
Copy link

majick777 commented May 22, 2020

There is definitely some overlap in what they have done and what we are creating. But as this is the more advanced functionality, it will take time to develop and a lot of it will be Pro features:

  • Show Archives will be "Episodes" in Radio Station Pro.
  • Radio Player will be in Radio Station, and a player bar in Pro.
  • The "live" indicator is nice, I will add that as a potential player feature.
  • As for tracks now playing, after the main player is ready, at some point we will look at whether we can pull current track data from Shoutcast/Icecast metadata., This will probably also be in Pro.
  • Similarly, if using LibreTime or AzuraCast, the APIs for those can provide this information but will be part of separate Add-ons. (We'd like to get Show data syncing through those APIs first though before venturing into tracks, although that information seems more readily available.)

We are hoping to get the Player in to the next release as a priority feature. It's coming a long rather fast but there is a bit of trickiness left to get the diffeerent player libraries to do a basically equivalent thing and I also need to do some design fixes on the player skins. We want to get this up and working on Netmix Directory also as soon as possible, so the first working version of that will likely happen even before it is in the plugin (which requires more option integration.)

@gusaus
Copy link
Contributor Author

gusaus commented May 22, 2020

What you're doing is building a ship.

Actually our friends at Automattic, Google, and others built it, paid for it, and are releasing improvements pretty much every week. The only plugins not yet included are Radio Station and The Events Calendar. The latter is already being used by their customers, so we're really just talking about creating a few different flavors for stations and podcasters with specific needs (and a budget).

We already have the mechanism to channel funds to builders - the main need is a plan and someone who knows how to create the perfect mix for those with a need and budget.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2020

if using LibreTime or AzuraCast, the APIs for those can provide this information but will be part of separate Add-ons.

Yes - so for this specific issue, there would be a couple overlapping tasks/needs -

  • we'd first need a proper API for LibreTime - hopefully, @paddatrapper will be able to scope that out once the next major release is out the door
  • we should be able to ensure the API is providing the functionality we need Rewrite libretime libretime/libretime#935 (comment), if we collaborate and help support
  • integration into Radio Station pro, or some other add-on seems a bit murky when it comes to how to support. could sending funds into Radio Station's Open Collective, Patreon, or GitHub sponsors provide a ways to enable some of the functionality to be included in free?

@tonyzeoli
Copy link

tonyzeoli commented May 27, 2020 via email

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2020

What if we identified a common set of features and developed the player as a separate project #22 - which could then be modified and included with LibreTime, AzuraCast, and even Radio Station PRO.

Instead of having one company responsible for developing and maintaining, we could pool resources (contributors, funds, and open source code).

@zklosko
Copy link

zklosko commented May 27, 2020

I should definitely clarify that WRIR is only using LibreTime as a playout engine. We broadcast on both FM and internet and have completely separate systems working for each that are completely independent from our LibreTime instance.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2020

Thanks for chiming in here @zklosko 👋

FYI to folks conversing here, @zklosko has been making some major contributions to LibreTime and is also involved with https://www.wrir.org/

Tony & Tony are the current leads of the Radio Station plugin https://github.com/netmix/radio-station

LibreTime is just one element that's been providing a good bit of inspiration. #9 As providing solutions to community media and LPFM stations is a primary goal, learning more about how you're using LibreTime (and the Radio Station plugin) is very relevant.

Maybe there's even something stations like yours and @Robbt's will be able to use #11

@tonyzeoli
Copy link

@gusaus As discussed today on our call, we have an API for Radio Station, but it's a push for now and not pull. We haven't built that aspect of the API yet and we're working on integrating with META RADIO so that plugin can pass data from a platform like LibreTime into WordPress until we build an add-on. I'm not sure that LibreTime even has an API yet that can pass data out of LibreTime and into WordPress through our API and only when our API can pull and not just push.

I noticed WRIR website is using Radio Station to some success, but there's a bunch of features missing. I see they need to have have two schedules as they have a Studio C link. We're going to work on having the ability to have multiple schedules, so that will help WRIR in the future.

@zklosko Let's keep discussing these issues and see where we can manage some form of integration.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 13, 2021

@tonyzeoli There's been progress libretime/libretime#1056 but I'm not sure the API or the project itself is at a point to integrate. Maybe we can get LibreTime & Radio Station plugin enrolled in a future FundOSS (see https://discourse.libretime.org/t/apply-for-the-fundoss-matching-campaign/800) where funds could be raised and allocated towards the API and subsequent integration.

I'm active again in the Open Collective community, trying to direct resources to these projects.

@zklosko
Copy link

zklosko commented Apr 13, 2021

@tonyzeoli sounds good!

We do use a lot of different plugins and scripts for our very custom solution. Radio Station is just one of many. The Studio C link might use a different calendar mechanism, but I'm not sure (we do use a simpler "events" plugin as well).

As for the showlist API, the one developed for Airtime is still present in Libretime: https://help.sourcefabric.org/hc/en-us/articles/115000382243-Airtime-Pro-API#%E2%80%9Cweek_info_schedule%E2%80%9D. It only passes the upcoming seven days of programming though.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 17, 2021

@tonyzeoli Per our Monday marathon convo, I think we agreed this functionality would be nice to have in https://wordpress.org/plugins/radio-station/

If yes, possibly we can create a Make it Happen style fundraising campaign (see OpenProducer/community#13) when the LibreTime API and y'all are at a point to finish the project scope and move forward.

Thoughts?

@tonyzeoli
Copy link

@zklosko I will ask @majick777 to take a look at the code for Airtime at this URL: https://help.sourcefabric.org/hc/en-us/articles/115000382243-Airtime-Pro-API#%E2%80%9Cweek_info_schedule%E2%80%9D and see if that provides a solution. As long as we can pull data from LibreTime using this method we can refresh the schedule every day for the future seven days or something like that. We are moving in PRO to a Calendar system for future show posts on the calendar for some time forward - not sure if it's a year out or more. We think stations want to schedule shows farther than just 7 days out.

@gusaus I can see a fundraising campaign through OpenCollective to create a LibreTime add-on that potentially uses what's out there for AirTime or forking that and making it talk to Radio Station. Right now, our API is push and not pull, so we have to work on that.

@majick777
Copy link

@zklosko That's great to know that there is the Airtime API in Libretime already... I've been working pretty non-stop on Radio Station Pro in preparation for it's launch and haven't had time yet to familiarize myself with the structure of the LibreTime codebase, can you point me to the relevant code there? Would be curious to take a look at it.

So far we've discussed having a separate Add-on for Radio Station that handles integration with different broadcast services, and given the time API integration takes I think this is probably still the way we'd go.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 19, 2021

I can see a fundraising campaign through OpenCollective to create a LibreTime add-on that potentially uses what's out there for AirTime or forking that and making it talk to Radio Station. Right now, our API is push and not pull, so we have to work on that.

Pull, if I'm understanding correctly, would enable a station to schedule shows in LibreTime (https://libretime.org/docs/scheduling-shows) and pull that into their WordPress site via some component of Radio Station, right?

If yes, I think that would be valuable to many LibreTime folks already running their site on WordPress... ideally enough to fund development as noted above #9

@majick777 The code resides here https://github.com/LibreTime/libretime. Reading over the recent comments, starting with @tonyzeoli's intro https://discourse.libretime.org/t/planning-out-an-api/341/7 might bring you up to speed with the API status/needs on the LibreTime side.

@tonyzeoli
Copy link

@gusaus Yes, PUSH into LibreTime, PULL from Libretime.

Right now, we want to create add-ons for each service. If LibreTime users want to use OpenCollective to fund the development of a WordPress/LibreTime add-on, we can do it that way instead of selling it as an add-on. But, we're not going to be able to do it for free if it's not funded. I would expect to raise between $5K and $10K for full development of that add-on to be able to release it for free. And, out of that, we may only set the features that are needed and create a paid add-on in the future with more advanced features. We have to think about the future. We can't just build stuff, pie in the sky, without thinking about the return on investment. Because remember that it's an ongoing development. It's not a one-off thing. Then you have to maintain and support the plugin, especially if LibreTime updates and changes the API.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 19, 2021

Right now, we want to create add-ons for each service. If LibreTime users want to use OpenCollective to fund the development of a WordPress/LibreTime add-on, we can do it that way instead of selling it as an add-on. But, we're not going to be able to do it for free if it's not funded. I would expect to raise between $5K and $10K for full development of that add-on to be able to release it for free.

@tonyzeoli So if I'm understanding correctly, we could do the following for the LibreTime add-on.

I'm currently talking with Open Collective...just to make sure these types of all or nothing campaigns are possible https://opencollective.slack.com/archives/C01NGE0N9U1/p1618607015007300

If yes, does the general idea to fund development seem like a sound idea?

I get there needs to be a budget for ongoing dev and maintenance. Think we can follow up in https://github.com/OpenProducer/internal/issues/7

@gusaus
Copy link
Contributor Author

gusaus commented May 29, 2021

Circling back here to point out that @paddatrapper made a big push recently to get LibreTime's new API out the door libretime/libretime#958

@paddatrapper
Copy link

With libretime/libretime#958 merged, all the points listed at the top of the issue are now possible., both as pull and push

@gusaus
Copy link
Contributor Author

gusaus commented Jun 13, 2021

@paddatrapper @zklosko @Robbt As the most active Libretimers (at least currently in this repo) I just wanted to say 1) Thank you!! Your contributions up to this point have been extremely helpful; 2) our participation in FundOSS (https://fundoss.org/collective/openproducerplatform) may provide an opportunity to at least begin scoping out this feature (granted I think this is more of a WordPress/Radio Station plugin @tonyzeoli @majick777 led task); 3) any donations made to https://fundoss.org/collective/openproducerplatform over the next couple days will be matched and could quite possibly (still an unknown at this point) provide enough budget to at minimum finalize the requirements.

Considering we're only two days in and have yet to begin actively promoting or fundraising... If you look at https://fundoss.org right now and sort by Funding... We're #19, right behind AzuraCast. If everybody reading this made a $5-25 one-time donation, we'd probably jump into the top 10!!!

Thank you in advance if you can help bump this up on the integration roadmap!!!!!

@gusaus gusaus transferred this issue from another repository Mar 30, 2022
@gusaus gusaus added status: needs specs This task needs additional specifications. and removed status: needs work This issue needs work labels May 12, 2022
@gusaus
Copy link
Contributor Author

gusaus commented Feb 1, 2023

Referencing some related convo with on the maintainers of LibreTime after realizing he was working with the Radio Station plugin netmix/radio-station#438 (for a friends radio site).

If any work should be put into this, I think it should consider using the messaging queue to hook into Libretime and build a "standalone" service that would make the interface between libretime and wordpress.

But libretime doesn't have this any event server yet, so this is a lot of work. And with regards to the API (the push/pull story), the libretime api is alpha quility and will break, poeple should not build anything for production unless they have time to fix unexpected breaking changes.

Based on that, we should keep the first focus on securing resources for AzuaCast integration netmix/radio-station#438

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed is: feature request radio station status: needs specs This task needs additional specifications.
Projects
None yet
Development

No branches or pull requests

5 participants