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

Proposal. Addition of the Flexi-Playlist #195

Closed
ghost opened this issue May 3, 2017 · 14 comments
Closed

Proposal. Addition of the Flexi-Playlist #195

ghost opened this issue May 3, 2017 · 14 comments

Comments

@ghost
Copy link

ghost commented May 3, 2017

The Dynamic Smart Block allocates times & files at schedule time. Period.

Maybe the auto playlist could be altered to do this.

It does not seem too hard to imagine a Flexi-Playlist mechanism that implements all this just before caching, and therefore play-out.
Someone here had the brainwave of using the genre field in cc_files to put in a reference like Genre =News:BBC_NEWS or Talk:Fred_Bassett_Show which would then load into a Smartblock filtered by Genre/Latest.. etc. You can see where that goes.
But it would need a Smartblock rebuild just before caching. If there is not enough time, change the caching values.

Maybe it just needs some code MOVING?

Our small posse of stations think this would be great.

@Robbt
Copy link
Member

Robbt commented May 3, 2017

Ok, I'm not sure exactly how this is conceived of to work. The smart block and auto-playlist works during scheduling, the auto-playlist works around the previous issue of needing to manually schedule shows by doing the scheduling in the hour before a show is supposed to broadcast. This time could be adjusted to say happen right when the show is scheduled to play, but it would still involve reading the show from the calendar/schedule and adding it to the playlist.

What you are suggesting is pretty much what is possible with autoplaylist. Now adding the buffering after the playlist can happen by creating a smartblock of music/stationIds or whatever that will fill the time. IT doesn't currently do perfect matching of the time but it will keep adding tracks until it gets as close as it can (with the existing tracks) without going over the time limit setup by the playlist.

It sounds like you are suggesting some sort of fill-in smart block for silence detection, ie similar to what has happened with the liquidsoap autoplaylist hacks. This isn't a bad idea but I wanted to check and see if that is what you are proposing, because it may be you just want the autoplaylist to be built right before the show is supposed to be scheduled and then build a flexible playlist that adjusts its time to whatever remains as dead air right before a show is supposed to be aired.

Now upon writing this up I think this is what you are probably wanting, a smart block that will adjust its length to equal the dead air that remains when a show is scheduled and then fill in with values when the show begins. This could work but would require additional coding and would require a modification of the smartblock. It would be much more akin to the AutoDJ functionality currently provided by Airtime.pro as well.

Let's continue this dialogue. I still need to work on code to make sure the Automatic Playlist works #129 and I'm hopefully going to have a little bit of free time now that my overly crowded semester is nearly over.

@ghost
Copy link
Author

ghost commented May 3, 2017

Let me give the whole scenario, then we can see if we can do all or most of it already using Libretime instead of my external cron mechanisms. I already have external working code for this that does work.

I have 57 incoming RSS feeds which need to be automatically scanned at regular intervals for new podcasts. These contain complete programs of varying length.

If it finds a new podcast, it needs to be automatically imported into an existing show replacing the previous one version.

Example: We have a daily show which contains news and comment. Each day the show should automatically be updated to reflect the new length, title and description using data from the podcast ID3 tags it should then play filler tracks until show end. Maybe also have a Station ID jingle just before all of that.

I tried the Libretime Podcast feature but this doesn't seem to help.

@Robbt
Copy link
Member

Robbt commented May 3, 2017

Ok, so the solution here is to use the LibreTime Podcast feature and then have a Smart Block that equals 1 item with the Album = Podcast Name sorted by Newest

What issues did you find with LibreTime Podcast ?

What you are describing is specifically the scenario that the Auto Playlist was developed to meet.

You just need to create a playlist that contains a variety of smart blocks that meet your scheduling criteria, ie the first smartblock could be ID and/or jingle, the 2nd smartblock the newest Podcast one and then follow it with a block that equals the maximum amount of time you think you would need to fill and the genre or whatever equal to whatever criteria you want to pick them from.

@ghost
Copy link
Author

ghost commented May 3, 2017

This seems to be 'un-guessable' from the Libretime docs.
I will give those specific settings a test and report back back.

@Robbt
Copy link
Member

Robbt commented May 3, 2017

Yes I definitely need to write some documentation for how I envisioned this working and specifically a tutorial for setting it up. One idea I had was to make it so that when you add a Podcast it automatically creates a Smart Block with the newest episode. This would save time.

@ghost
Copy link
Author

ghost commented May 3, 2017

Auto removal of old podcasts becomes very useful too for certain types of podcasts. Does it do this?
EG News Podcasts - you can easily fill VPS storage, in no time, with old useless podcasts

@ghost
Copy link
Author

ghost commented May 12, 2017

I have run it for a week now.
I have found a bit of a problem in that the next week the autoplaylist ADDS the next episode to the end of the autoplaylist. The consequence is that the old program plays because it never gets to the new one.
as the show runs out before the new one starts.

@Robbt
Copy link
Member

Robbt commented May 12, 2017

This sounds like an issue with your Smart Block logic. I have mine setup for Newest -> Limit 1 item.

@ghost
Copy link
Author

ghost commented May 12, 2017

So have I.
If I clear the last content from the show - it will work
If I don't the latest show will get appended to the autoplay list

@ghost
Copy link
Author

ghost commented May 12, 2017

Another clue. In the Autoplaylist, I have a Smartblock with a jingle. and a Smartblock with the podcast.
On the second linked repeat, it contains Jingle #1 and Podcast #1 then Jingle #2 and Podcast #2.
So the autplaylist does not clear old entries, I guess.

@ghost
Copy link
Author

ghost commented May 12, 2017

Grrr. JohnnyC is in the hospital all this weekend and maybe a lot longer (I am fielding his comms), so I am struggling a bit :\
Some podcasts are not importing (4 out of 36), even when run through Feedburner with maximum compatibility on. That is not so much the problem, I am used to fixing rss and mp3 issues. I cannot find logs/error messages easily, they seem all over the system instead of all being in /var/logs which would be standard and logical.

This may include #139 but it is far wider than that. I guess we could incrementally move them over time.

This is from Celery Log. The key error message is purposefully truncated which seems not useful at all.

[2017-05-12 22:48:25,336: INFO/MainProcess] Received task: podcast-download[php_59163bb9517e70.15785481]
[2017-05-12 22:48:25,364: INFO/Worker-1] podcast-download[php_59163bb9517e70.15785481]: Error during file download: can't sync to an MPEG frame
[2017-05-12 22:48:25,374: INFO/MainProcess] Task podcast-download[php_59163bb9517e70.15785481] succeeded in 0.0372634610001s: '{"status": 0, "episodeid": 149, "error":...

@ghost
Copy link
Author

ghost commented May 15, 2017

@Robbt I found a clue as to why the Auto-Playlist/Smartblock was building longer and longer lists of tracks in the show. If the show is set to REPEAT + LINK SHOWS it goes weird, as described above. If it is NOT LINKED - but is a REPEATING SHOW, it works fine. I hope this helps. Maybe it just needs a simple warning?

@ghost
Copy link
Author

ghost commented May 15, 2017

Re the Celery RSS import failing sometimes.. it can't seem find and/or use the needed XML namespace declarations (which are defined in the feed).

@ghost
Copy link
Author

ghost commented May 15, 2017

Now I understand what & how the auto playlist is supposed to do. It would appear that the issue has been addressed already in the engine design, the docs had not caught up and there appears to be a simple bug which was clouding the issue further and therefore I am closing this issue.
[Solved - already covered by Autoplaylist]

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant