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

Merge Libretime's Interactive Playout UI into AzuraCast #1203

Closed
BusterNeece opened this issue May 5, 2021 · 16 comments
Closed

Merge Libretime's Interactive Playout UI into AzuraCast #1203

BusterNeece opened this issue May 5, 2021 · 16 comments
Labels
is: feature-request status: stalled This issue or pull request is stalled

Comments

@BusterNeece
Copy link

What if we pushed our Minecraft beds together? Hahah just kidding.... unless?

But seriously though, hi! AzuraCast guy here.

Folks have been talking about improving the sustainability of open-source projects like both ours and yours, and one thought that keeps coming up in my head is that we may be far, far more effective on that front if we're working together toward a common goal.

Several years ago, when AzuraCast was just getting started, we saw ourselves as fundamentally different enough to be worth maintaining as two separate projects, but as we approach our 5-year mark I'm coming to realize we have a huge amount of overlap and are, to some extent, devoting parallel resources toward almost the same goals. In the end, we wind up with some weaknesses in AzuraCast that are strengths in LibreTime and vice versa.

So, and I'm just spitballing here but hear me out, my proposal would be this: what people love about Libretime is its interactive drag-and-drop playout UI that allows for a much more "real-time" station management experience, and this is something that has been sorely missing from AzuraCast, so why not devote some time to integrating the two and building out a full-screen interactive playout UI that users can launch into from AzuraCast that looks and functions much like the main LibreTime UI does today?

Looking at LibreTime's issues and codebase, there have been some issues caused by the somewhat older ZendFramework 1 being the underpinning of the code, and some folks have proposed rewriting it and modernizing it. What if you didn't have to fundamentally rewrite a new application core and could use one that was not only already modernized, but was engineered already to connect to all the same tools (Liquidsoap, Icecast, etc)?

We work very hard to ensure AzuraCast is very modern code. It's now running on PHP 8 across all installations, with Composer 2 managing dependencies, and we're compliant with PSRs 0, 1, 2, 4, 6, 7, 11, 14, 15, 16, 17, and 18. Our frontend supports both jQuery and Vue components as we migrate to more and more of the latter, which would make Libretime's existing jQuery code easier to migrate and support quickly.

I don't want to devote too much time to this line of thought if the interested parties aren't actually interested in pursuing it, but I wanted to propose it as I think it would not only solve big problems present for both of our groups, but would avoid the current situation where users looking for a FOSS web radio solution feel as though they have to compromise on one front or the other when choosing software.

Let me know what you think. No matter what, y'all will always have a friend in us over at AzuraCast. ♥

@Robbt
Copy link
Member

Robbt commented May 5, 2021

I'm interested in the idea of contributing to AzuraCast and trying to build some of the functionality that LibreTime includes but I don't know how well we would be able to integrate the two.

Most of the work behind the scenes on LibreTime has been experimenting with a replacement of the PHP components with Django backend and putting it behind a solid API 2.0

This is a work in progress but @paddatrapper has been putting a lot of effort into it.

One place where I think there could be some shared code would be on the glue between the web interface and liquidsoap. Since this part of LibreTime is kind of cludgy and seems to have some issues where it falls out of sync.

I'm working on Drupal as a day-job which is built upon Symfony components which I see that AzuraCast uses and so I might be able to leverage some of that knowledge with AzuraCast.

It has been a while since I tested out AzuraCast but aside from lacking the Calendar it also didn't seem to have as much integration of a Library concept. The library allows us to leverage metadata to build smart blocks and do a lot of the auto-scheduling of playlists. There is also the webstream and podcast integration that are pretty key for at least my stations use. Whereas AzuraCast had a much better DJ interface and ability to do shows live.

Definitely think it is worth considering ways the two projects can interact and share ideas. I'm not sure how sharing code directly would work in terms of LibreTime using the AGPLv3 and AzuraCast using Apache license but it might just make sense to think about ways the two projects could share some underlying code.

Another thought I had a while ago was pursuing API compatibility between the two projects as a goal so that clients could be developed that would be useful for both projects.

Anyways, I think that is an interesting proposal and something I'd consider contributing code too. I don't see it as really being a successor or replacement to LibreTime anytime soon, but I do think it would be a useful learning exercise to spend some time learning the AzuraCast codebase and seeing how you coded things and seeing what design decisions were made and how functionality similar to LibreTime could be integrated.

Sustainability of FOSS radio projects is definitely important and your point about the software stack is definitely on point. I think LibreTime will eventually turn into primarily a Python & Javascript based project when ZendPHP is replaced and so as someone who will be spending more time in PHP land for the forseeable future I'd also like to see what I could contribute to AzuraCast.

Thanks for sharing your idea. It maybe useful to have a discussion at some point where we spend some time to explain the design decisions behind the underlying project and conceptualize ways to collaborate or how to implement some more of the LibreTime concepts in AzuraCast even if it doesn't end up providing a feature-complete replacement of LibreTime.

@BusterNeece
Copy link
Author

@Robbt Thank you so much for sharing your thoughts on this. You are definitely correct in that there is a myriad of ways we can work together to improve user experience, even if LibreTime and AzuraCast remain fundamentally separate concepts.

For example, I know for sure that the LibreTime crew has a great understanding of the Liquidsoap scripting language that has always been a stumbling block on our part, and any insight you and your team could provide there would likely hugely improve our reliability on that front.

There are likely also lots of areas where we could expose a common API for entities that are shared between our systems; our REST API is rather well-documented and it is relatively simple for us to expand it to incorporate common interfaces if we wanted. This would be especially helpful for third-party applications seeking to integrate our software (like, for example, the Radio Station plugin for Wordpress).

In any case, I wanted to throw this idea out there just to spark some discussion on the subject. I would be happy to meet up in a shared channel (maybe the OpenCollective Slack channel, as it's been used an increasing amount lately) to discuss things more.

Cheers and have a great day :)

@LordFader
Copy link

This sounds great...!

@ghost
Copy link

ghost commented May 10, 2021

I agree) sounds great!

@gusaus
Copy link

gusaus commented May 18, 2021

Now I get why collab w/ AzuraCast was one of the topics brought up during the LibreTime meetup yesterday.

Not that it's seriously been suggested, it seems like merging projects is unrealistic or unnecessary. Makes total sense for for individuals to collaborate on specific pieces of functionality...especially if there are shared needs or resources.

Working and collaborating across muliple projects probably seems a bit daunting for developers struggling to contribute time to their own project. OpenProducer is trying to make it possible by providing an independent, nonprofit entity (via our fiscal sponsor http://openmediafoundation.org/) and a mechanism for paid contributions across multiple projects (or just your own) or collaborating on open source project facing services.

Together we've been making some progress identifying common roles/needs and defining scope of open source services. As this is not a client-facing, top down endevor, I'm hoping more collaborators will join #openproducer in Open Collective's Slack and also the project team.

That concludes my meta discussion contribution to this issue. Ideally folks will be able to circle back and move forward the coding collaboration.

@gusaus
Copy link

gusaus commented May 20, 2021

So I'm realizing Buster's post ☝️ was around the same time we were talking (in AzuraCast chat) about stuff like replicating some of the LibreTime functionality for this 'Drag-and-drop Music Scheduler' feature request.

Is that part of what's being proposed in this issue?

If yes, possibly building that could be a good entry point for collaboration.

@gusaus
Copy link

gusaus commented May 26, 2021

With our OpenProducer platform a last minute addition to FundOSS, I'd like to use that as an opportunity to direct contributors and hopefully funds towards making these cross-project collaborations real. We've also been collaborating with Open Collective to provide tools and processes for DIY bounties and Make it Happen campaigns.

If there's interest in moving forward with what's being proposed, let's find someone to PM across all these projects and leverage FundOSS & DIY crowdfunding campaigns to raise funds needed to make it all happen.

@gusaus
Copy link

gusaus commented May 29, 2021

I talked a bit with @SlvrEagle23 about this in Open Collective's Slack. Here's a bit about what he thought we'd need to get it done -

there are some underlying issues that we'd need expertise from either LibreTime, AirTime or Liquidsoap to fix, with regard to how we handle scheduling

We agreed that gathering requirements (including time estimate and funding goal) would be a good next step...and we'd need someone to work with the developers and write them. Not sure if we'd also need a project manager - possibly that would be the same person as the requirements writer.

Ideally, someone who already contributes to LibreTime or AzuraCast in that way would be interested. Again we'd associate this with a bounty or fundraising campaign so contributors would get paid (if they'd like).

I'd love to bring folks together and start hashing this out next week before FundOSS - that way we use it as an opportunity to amplify the project and (hopefully) direct funds and onboard additional contributors.

This discussion in Open Collective's Slack would be a good entry point for anyone who would like to get involved - https://opencollective.slack.com/archives/C22E2D2F2/p1621323513001700

@radiobijoux
Copy link

As an end user who has a somewhat limited experience with both, but also runs a nonprofit alongside my normal I/T biz, and runs several internet only stations, as well as having worked with Joomla since 1.0, I would gladly contribute time and money/support to the cause. My nonprofit provides support to local and regional nonprofits through both funding and free computer systems/laptops, etc. I also have a number of reseller accounts, one of which provides free hosting for nonprofits (through A2 Hosting). I've contributed a tiny amount on a monthly basis to Azuracast and Silvreagle23 and could increase that in addition to providing some direct contributions through my nonprofit. I have at one time created and managed one of the largest online radio stations for what at the time was the largest online webcam site, have been an internet DJ, station manager and developer for 16 years, and love doing this. I eventually switched over from all of the expensive proprietaty systems to save my nonprofit (and others like me) the huge expense of maintaining a station. I'm fully FOSS from the ground up now, with MIXXX on all of my Linux systems connecting to (eventually) a FOSS playout/calendaring system which I'm experimenting with to replace the RadioJar account we've had for the past 3 years (@ $500/year). If you end up moving forward on this collaboration, I will be happy to lend my support to your efforts. As it stands, I'll continue supporting both projects as best I can so that either/both get to a point where they're a good option for all of us looking for a FOSS solution.

@gusaus
Copy link

gusaus commented Aug 5, 2021

Thanks for your interest @radiobijoux! We probably should followup on #1203 (comment) and see if we can move this forward with a bounty or fundraising campaign.

This bounty program/process just launched by our friends at OBS could also provide some inspiration https://obsproject.com/blog/announcing-the-obs-project-bounty-program

@radiobijoux
Copy link

If this turns into a reality, or even if investigating it gets serious, I'll start the fund with $100 or so and keep adding as things progress. I know it's just a drop in the bucket, but you've got to start some place. I'm using both platforms now to decide what to do going forward. I really love LibreTime's playout system and smart blocks, etc., podcast importing and external stream relays, while Azuracast offers built-in SSL, cloud DJ system, and runs on current and sometimes cutting edge software. If you come up with a funding goal and a good framework for moving forward, count me in.

@gusaus
Copy link

gusaus commented Aug 16, 2021

I'm hoping we can come together in Open Collective's Slack to discuss how much $$ and who we'd need move this forward this week Please feel free to join this discussion in #openproducer https://opencollective.slack.com/archives/C22E2D2F2/p1628201823000200?thread_ts=1621323513.001700&cid=C22E2D2F2

@radiobijoux
Copy link

Sorry I haven't been available these last few days. Joomla 4.0 was just released along with the new Helix Ultimate 2.0 template and I've got 76 clients with websites to update/upgrade suddenly. Staying a bit stretched out. I HAVE managed to set up a development server for testing all of the programs I'm looking at, including the latest version of Centovacast. I'm convinced that Libretime has the opportunity to leave them all in the dust, or some kind of collaboration with Azuracast. The biggest advantages of Libretime to me are the smart blocks/podcasts/calendaring/playouts and all of the options for creating/maintaining those. Nothing else I've tried yet comes close. I've discontinued my small monthly donations in anticipation of making fewer, but larger contributions throughout the course of whatever happens if it becomes a reality. If not, then I'd like to see Libretime advance this project as far as possible. I'd like to be considered for your next discussion. I'll have to set up an account on Slack so I can participate. And I appreciate the invitation. Thanks!, and keep up the great job.

@gusaus
Copy link

gusaus commented Aug 26, 2021

I just suggested this feature make a valuable addition to AzuraCast 1.0 AzuraCast/AzuraCast#4460

LibreTime could be improved by incorporating some of AzuraCast's best practices.

Most of the core developers from both projects are in Open Collective and interested in sharing ideas and collaboration. Still need PM, requirement writers, bounty coordinators with interest in working across these projects to join #openprodcuer in https://opencollective.slack.com/

@stale
Copy link

stale bot commented Apr 16, 2022

This issue has been automatically marked as stale because it has not had activity in the last 5 months. It will be closed if no activity occurs in the next month.
Please chat to us on discourse or ask for help on our chat if you have any questions or need further support with getting this issue resolved.
You may also label an issue as pinned if you would like to make sure that it does not get closed by this bot.

@stale stale bot added the status: stalled This issue or pull request is stalled label Apr 16, 2022
@github-actions
Copy link

github-actions bot commented Mar 4, 2023

This issue has been automatically closed after is was marked as stale and did not receive any further inputs.
Feel free to let us know on the forum or ask for help on our chat if you feel this issue should not have been closed.
Thank you for your contributions.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: feature-request status: stalled This issue or pull request is stalled
Projects
None yet
Development

No branches or pull requests

5 participants