Merge branch 'master' into add-podcast-import-date

This commit is contained in:
Robb 2019-05-04 11:53:28 -04:00 committed by GitHub
commit 842e459de5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 639 additions and 5 deletions

View file

@ -39,7 +39,7 @@ class Rest_PodcastController extends Zend_Rest_Controller
->filterByDbId($stationPodcastId, Criteria::NOT_EQUAL)
->leftJoinImportedPodcast()
->withColumn('auto_ingest_timestamp');
$total = $result->count();
if ($limit > 0) { $result->setLimit($limit); }
$result->setOffset($offset)
->orderBy($sortColumn, $sortDir);
@ -47,9 +47,10 @@ class Rest_PodcastController extends Zend_Rest_Controller
$podcastArray = $result->toArray(null, false, BasePeer::TYPE_FIELDNAME);
$this->getResponse()
->setHttpResponseCode(200)
->setHeader('X-TOTAL-COUNT', $result->count())
->setHeader('X-TOTAL-COUNT', $total)
->appendBody(json_encode($podcastArray));
}

View file

@ -11,8 +11,13 @@ LibreTime is Free/Libre and Open Source Software (FLOSS). Among other things, th
LibreTime is a fork of AirTime due to stalled development of the FLOSS version. For background on this, see this [open letter to the Airtime community](https://gist.github.com/hairmare/8c03b69c9accc90cfe31fd7e77c3b07d).
If you are end-user of an already installed LibreTime instance we have a number of [tutorials](manual/tutorials/index.md) that can help you learn how to use the software.
Getting Started
We also have [how-to guides](manual/howtos) that contain step-by-step instructions for various common tasks.
There are currently no companies offering turn-key LibreTime hosting so if you are interested in running it you will need to have some familiarity with running a linux server. You can always reach out to help from the community at our [forum](http://discourse.libretime.org)
Getting Started (for Developers and Admins)
---------------
The easiest way to check out LibreTime for yourself is to run a local instance in a virtual machine. Assuming you already have Git, Vagrant and Virtualbox installed, just run:
@ -20,10 +25,9 @@ The easiest way to check out LibreTime for yourself is to run a local instance i
```bash
git clone https://github.com/libretime/libretime.git
cd libretime
vagrant up ubuntu-trusty
vagrant up ubuntu-bionic
```
If everything works out, you will find LibreTime on [port 8080](http://localhost:8080), icecast on [port 8000](http://localhost:8000) and the docs on [port 8888](http://localhost:8888).
Of course, this setup isn't appropriate for production use. For that, check out our [installation instructions](install.md). More information on the vagrant setup are in [the docs](vagrant.md).

View file

@ -0,0 +1,53 @@
How to build a basic schedule with LibreTime
a description of the steps involved in adding a show to the LibreTime
calendar schedule for future playback including repeating shows
Audience: Program Managers and Admins
Click on the Calendar menu item on the left side of the screen
Click on the blue New Show button
Under **What** - type in a Name to replace Untitled Show
Optional add URL, Genre and Description
Under **When** click **In The Future**
Select a date and time for the **Start Time** and **End Time**
Time is entered as 00:00 where the first 2 digits are the hour in
military time and the second 2 digits are the minutes. So 15:00 is 3PM.
Note: 24 hours is the maximum show time and Midnight is 00:00 of the
next date.
Click **Repeats** if this show will air more than once.
If it airs at the same time of the day on more than one day of the week
then check the boxes next to the Days it should repeat on.
If this is a limited engagement show uncheck **No End?** and select the
date at which this show should no longer be on the schedule.
**Autoloading Playlist** is used if you will generate the content for
this show using a playlist possibly containing smartblocks to
dynamically generate it.
Basically if this is checked and a playlist is selected LibreTime will
schedule it an hour before the show is set to air as well as any **Intro
& Outro Playlist** configured in the Admin settings.
See other How Tos for ideas about how to use AutoLoading playlists.
Live Stream Input contains the streaming information for DJs and if Use
LibreTime Authentication is checked then DJs can login to stream live if
they are added to the Who section.
Who is where you can give DJ users permission to schedule tracks for
this show and stream live during the show spot. You can check the box
next to them or type their name and click the drop down.
Style allows you to select a custom color and add a show Logo for this
show.

View file

@ -0,0 +1,104 @@
How to set up genre specific Auto DJ with autloading playlist
Intro: In this LibreTime tutorial we will focus on how to build a
traditional auto DJ system where we use a feature called smart blocks
and auto loading playlists to play random music tracks of a certain
genre during a show. This tutorial is primarily focused on program
managers but users who are DJs can also benefit from smart blocks but
will only be able to manually schedule them.
So for the purposes of this tutorial we are going to assume that you
have uploaded a number of files of music with the genre metadata all
matching a specific genre for instance alternative. This can be done
ahead of time but LibreTime has no way of automatically grouping sub
genres and so it is important that you spend some time manicuring the
track metadata before you upload it to libretime as there is not
currently a way to bulk edit tracks from inside libretime. Also once
tracks are uploaded the metadata of the track itself isnt changed but
just how it is represented in the libretime database. This might change
in the future but would only affect you if you were downloading tracks
and uploading them to another instance and hoped that the changes you
made were saved.
So we can bulk upload a number of creative commons licensed tracks that
have their genre all set to specific genres as one way of getting tracks
if you dont have a mp3 collection of your own to draw from. See links
below for some spots where you can procure tracks where the creators
gave permission for everyone to redistribute play and share them.
One the tracks are uploaded to the system and imported we can now create
a smartblock that will select the tracks that match a certain genre. For
this we will use Genre contains Jazz this will match any track that
has genre anywhere in its genre so big band jazz and swing jazz
would match as well as acid jazz. Any subgenre that doesnt include
jazz explicitly such as be bop would need to be added as a new
modifier.
For the purposes of this smart block we want to select 4 random items.
We also want to avoid really long tracks that are longer than 10
minutes. So we will add the modifier Length is less than 00:10:00
and now this smart block will pull 4 smart blocks. Be sure to preview it
to make sure that you have some matches in your library. This will also
save it.
Now we are going to create a new smart block that plays one promo or
station ID.
Click smartblock and new and then type in the name promo OR ID and then
change the criteria Genre to is promo and now click new modifier and
then is TOTHID.
And then change limit to 1 items.
Now we are going to create a playlist that contains these two smart
blocks.
Click new and then type Jazz with promos
and then click smartblocks and add the Jazz Songs followed by the Promo
or ID smart block.
Now this playlist can be dragged into a schedule show to add 3 random
jazz songs followed by a promo. You can manually repeat the selection in
the playlist to create a long auto DJ playlist. For instance lets add 3
more Jazz Songs and then add 3 Jazz Songs again followed by a Promo or
ID. Now lets save this playlist and go and add it to a scheduled show.
This is a quick and easy way for you to manually schedule a large chunk
of time. You can also use this as an autoloading playlist.
Lets assign this to a new 3 hour show. Called lots of Jazz. Now lets go
under Autoloading Playlist and enable that and in this spot we will
check repeat until full. This will mean that the system will keep
scheduling this playlist until the show is completely full. The only
problem here is that at the end of the show it is almost assured that a
track will be cut off. If you are a web station and you just want to
schedule music for long lengths of time you can schedule shows that are
up to 24 hours long.
On the other hand if you are an FCC licensed station you are required to
have top of the hour IDs as close as possible to the top of the hour. In
this case the random selection of tracks might not suffice for
compliance.
If you have a station ID playlist smartblock in your intro playlist (see
previous tutorial linked below) and you have your tracks broken up
hourly this shouldnt be an issue but it still might result in tracks
being cut of in the middle.
So the best option currently is to change the music tracks to fill the
remaining show from the previous selection of 3 items. And then be sure
to add a promos or musical sound bridges at the end that are also time
remaining but allow overfill.
It is possible that we could improve the way the autoloading playlists
work in the future, please check out libretime.org for the latest
release notes and feel free to ask any questions at our forum at
[https://discourse.libretime.org](https://discourse.libretime.org/)
Thanks for tuning in to another libretime tutorial. Our next tutorial
will show you how to use autoloading playlists to add show specific
underwriting or advertisements.

View file

@ -0,0 +1,14 @@
##How-Tos##
The following are step-by-step instructions derived from the LibreTime tutorials.
##DJ How Tos##
* [How to livestream with Butt](livestream.md)
* [How to upload and schedule tracks](upload.md)
* [How to upload a promo](upload-promo.md)
##Program Manager How Tos##
* [How to build a schedule](build-schedule.md)
* [How to setup genre specific autoDJ](genre-autodj.md)
* [How to setup an intro playlist](intro-playlist.md)
* [How to setup an outro playlist with ambient music](outro-playlist.md)
* [How to setup latest podcast episode to play with autoloading playlist](podcast.md)

View file

@ -0,0 +1,61 @@
How to automatically schedule a Top of the Hour Station ID with Intro
Playlist
Audience: For Admin users
Login to LibreTime
Creating the Top of the hour smartblock
Click **Smart Blocks**
Click the blue **+New** button
On the right (or below if screen width is limited)
Type in the Smart Block Name: **Top of the Hour Station ID**
Under **Search Criteria** select **Genre** for the criteria
Select **is** for modifier
Type TOTHID in the third box.
Note: all Top of The Hour Station ID tracks will need to have TOTHID as
their **Genre** to match.
Under Limit To click the second box and select **items** instead of
hours
Click **Save**
Adding Smartblock to Intro Playlist
Click **Playlist**
Click **+ New**
Type **Intro Playlist** in the Name.
Click **Smart Blocks**
Click the box to the left of **Top of the Hour Station ID**
Click **+ Add to current playlist** or drag the smart block to the right
bottom of the playlist window.
Click **Save**.
How to Set Default Intro Playlist
Click **Settings**.
Click **General** and then scroll to **Intro Autoloading Playlist** and
click the drop down to select the **Intro Playlist**
Click **Save**.
Now everytime an autoloading playlist is scheduled the system will
select a random top of the hour ID and insert it before any other
content. You can other content to the Intro Playlist to also have it
scheduled before any shows with Autoloading Playlists enabled.

View file

@ -0,0 +1,85 @@
How to broadcast live with LibreTime and Butt
This how to is intended for DJs using butt to stream to their LibreTime
server with an external USB audio card setup to route a mixer and sound.
**Audience**: DJs
Download and install butt from <https://danielnoethen.de/> for your OS.
Note: be sure you have butt version 0.1.17 or newer installed
Open up butt and click **settings**
Under **Main** under **Server **click **ADD**
****
Type LibreTime (or your station) under Name
Click the radio button next to **IceCast** under Type
Type your stations URL (webpage address) under **Address**:
Type **8002** under **Port**:
Type your DJ login password under **Password**
Type **/show** under IceCast mountpoint:
Type your dj login under **IceCast user:**
Click **ADD**
Still in settings
Click **Audio** and select your external sound card under **Audio
Device**
note: if you only have an internal sound card you maybe able to use it
but that is OS specific and outside of this tutorial. We are assuming
you have a mic and mixer or a USB mixer hooked up to or as an external
soundcard
When its almost your show time
Goto your LibreTime page and look at the time in the top right when your
show starts go to Butt
Click the white Play button (third button in the middle).
If it says connecting… and then stream time with a counter congrats
your are connected.
Go to the LibreTime page and at the top right under Source Streams the
tab besides Show Source is to the left and Orange if it is and Current
shows Live Show you are connected.
If it is gray and to the right click it and it will toggle your show on
and you will be broadcasting.
Note: whether auto connect is turned on is a station specific setting so
it could work either way
****
Recording your show
You can record your show under butt by clicking the red circle record
button on the left.
It will save a mp3 based upon the date and time in your home/user
directory by default.
Everything should no be working and you can broadcast for your entire
time slot. If you choose to stop streaming before it is over click the
white square **Stop** button to disconnect.
Then go to the LibreTime page and if the Show Source didnt
automatically disconnect you can click it to the right and it should
turn gray.
You are now done streaming.
If you have issues connecting check with your system administrator to
see if you have the details right.

View file

@ -0,0 +1,91 @@
How to setup an Outro Playlist to fill empty space at the end of
autoloading shows
This how to describes the steps involved in setting up an outro playlist
that will schedule promos without interrupting any tracks followed by a
ambient musical bridge for all autoloading playlists to avoid dead air.
Audience: Program Manager (and Admin to set Outro Playlist)
How to add Promo Fill smart block
Click **Smart Blocks**
Click the blue **+ New** button
Type in a name for the Smart Block (for instance *Promo Fill*)
Now we select **Genre** and the modifer of **is** and then type in
**promo** in the 3^rd^ box.
Under **Limit to**: we select **time remaining in show**
To match on additional types of tracks based upon Genre
click **+ New Modifier** under Genre and select **is** and type the
“*name of genre*” to match on.
Click **preview** to review and confirm tracks match your criteria
below.
Click **Save**
How to add Ambient Fill that can be interrupted
Click **Smart Blocks**
Click the blue **+New** button
Type in a name for the Smart Block (for instance *Ambient Fill*)
Now we select **Genre **and the modifer of **is** and then type in
**ambient fill** in the 3^rd^ box.
Under **Limit to**: we select **time remaining in show**
Click **Advanced options** drop down
Check box next to **Allow last track to exceed time limit**
Click **preview** to review and confirm tracks match your criteria
below.
Click **Save**
How to create the Outro Playlist to hold these
Click **Playlists**
Click **+ New**
Type in the name “*Outro Playlist*”
Click on **Smart Blocks**
Click box next to **Promo Fill** smart block and click **+ Add to
current playlist** or drag it to the bottom of the Outro playlist
Click box next to **Ambient Fill** smart block and click **+ Add to
current playlist** or drag it to the
bottom of the Outro playlist
Make sure the **Promo Fill** is above the **Ambient Fill** smart block
in the playlist
Click **Save**
Setting the station-wide Outro playlist for all shows with auto loading
playlists
Click **Settings**
Click **General**
Scroll down to Outro Playlist and with the drop down select the newly
created **Outro Playlist**
Scroll down or up on the form and click **Save**.
And now every autoloading playlist show will have tracks scheduled to
fill any potential dead air.

View file

@ -0,0 +1,57 @@
How to add a Podcast to your LibreTime Calendar using Smartblocks and
Autoloading Playlists
Audience: Program Managers
Adding a podcast
Steps:
Login to LibreTime with a user with the Program Manager or Admin role
Copy the URL to the podcast RSS feed
Click on Podcasts and then click the blue **Add** button and then past
the feed URL and click Subscribe.
Click the newly added Podcast and then click edit or double click it.
Update the name of the podcast if you want to change it.
On the right hand window should be open for your podcast click
**Generate Smartblock and Playlist**
Click the checkbox next the newest episode and then click the
**import** button.
Let podcast download in the background.
Scheduling a podcast as a repeating show
Click on **Calendar**
Add a new show or edit a pre-existing show setup for this podcast.
Check the time & click repeats and check the appropriate days of the
week it should run.
If it needs to run at different times of the day you will need to add a
separate show for this.
Click the drop-down next to Autoloading playlist.
Check the box next to Add Autoloading Playlist.
Now we select the playlist with the podcast name we created above.
Now click Add This Show and it should be added to your Calendar.
One hour before your show is set to air the latest podcast will be
added.
To add other tracks to play along with this show edit the playlist with
the podcast name. Any tracks or smartblocks added to this playlist will
be scheduled along with this playlist.
To add tracks before or after all autoloading playlists see **How to use
Intro and Outro Playlist feature**

View file

@ -0,0 +1,44 @@
***How to upload a promo***:
Audience: DJs
Instructions:
Record your promo and export it as a mp3
note: if you can set the metadata of genre to **promo** you can skip the
final step below
Login to LibreTime with your DJ username
Click Upload and drag or click and browse to upload the track.
Let the track upload. Once it is done and is shown as imported on the
right click **Tracks**
Find the track in the list. *(follow instructions below if you dont see
it)*
If it is not at the top click the **Uploaded** column until it sorts by
the newest tracks first.
If Uploaded doesnt show up click **Columns** to the top right scroll
down and click the box next to **Uploaded**
****
Now click **Uploaded** twice and it should display your track at the
top.
Click the box next your track and click the **Edit** button above the
track listing.
A box saying Editing “track name” should show up on the right.
Find **Genre** type in **promo** (or whatever metadata classification
your station uses)
Scroll down and click **Save**
If you match the metadata requirements for the station smart block then
your track will be included in the track list it pulls from.

View file

@ -0,0 +1,50 @@
*How to upload and schedule a track to play on a specific show*
Audience: DJ with permission to schedule a specific show
**Login** to LibreTime with your DJ username and password at
[http://HOSTNAME/user](http://HOSTNAME/user)
-
note: replace HOSTNAME with the web site address given to you by your
station admin
Click the blue **Upload** button in the top left of the screen.
Click the background where it says **Drop files here or click to browse
your computer** or drag on and drop your music files from your desktop.
If you clicked then browse your file system to find the music files you
want to play and click them and then click **Open**
The tracks should start to upload and when they are completed show up on
the right under **Recent Uploads** *(note: you will need to keep this
window open while they are uploading)*
You can also upload short segments to schedule between your tracks
recorded for instance with audacity.
LibreTime in general supports mp3, ogg, flac, wav and m4a file types. If
a track isnt supported the import will be marked as failed under
**Import Status**
Once you have uploaded all of the tracks you plan on airing you click on
**Calendar**
Find your upcoming show in the Calendar and click on it and click
**Schedule Tracks** from the pop-up menu.
Now click the tracks you want to add and click **+ Add to show** or
click and drag the tracks to the right.
You can also add station **Smart Blocks, Playlists and Webstreams by
clicking those sections at the top of the screen.**
When you are done you can re-order your tracks by clicking and dragging
them.
When your tracks are in order and there is no empty time remaning click
**Ok** to finish.
Your next show should now be scheduled to play during its scheduled time
slot.

View file

@ -0,0 +1,4 @@
How to Setup Genre based AutoDJ - Youtube Video
[![How to Setup Genre based AutoDJ](http://img.youtube.com/vi/XNVIDnczrOk/0.jpg)](https://www.youtube-nocookie.com/embed/XNVIDnczrOk "How to Setup Genre based AutoDJ")
* Text-based Step-by-step [How-to](../../howtos/genre-autodj)

View file

@ -0,0 +1,4 @@
How to Set Up an Podcast to Play with Autoloading Playlist - Youtube Video
[![How to Set Up an Podcast to Play with Autoloading Playlist](http://img.youtube.com/vi/g-4UcD8qvR8/0.jpg)](https://www.youtube-nocookie.com/embed/g-4UcD8qvR8 "How to Set Up an Podcast to Play with Autoloading Playlist")
* Step-by-step Text Based [How-To](../../howtos/podcast)

View file

@ -0,0 +1,5 @@
How to Build Your Schedule - Youtube Video
[![Build Station Schedule](http://img.youtube.com/vi/EfNhl-yQcn8/0.jpg)](https://www.youtube-nocookie.com/embed/EfNhl-yQcn8 "How to build your schedule")
* Step-by-step Text Based [How-To](../../howtos/build-schedule)

View file

@ -0,0 +1,5 @@
How to Upload use Smartblocks to Fill Time Between Shows - Youtube Video
[![How to Upload use Smartblocks to Fill Time Between Shows](http://img.youtube.com/vi/kNT9R80Q42I/0.jpg)](https://www.youtube-nocookie.com/embed/kNT9R80Q42I "How to Upload use Smartblocks to Fill Time Between Shows ")
* Step-by-step Text Based [How-To](../../howtos/outro-playlist)

View file

@ -0,0 +1,22 @@
##Tutorials##
This page contains links to number of screencast tutorials.
Please provide any feedback on this [discourse forum post](https://discourse.libretime.org/t/new-tutorials-available-on-libretime-wiki/270/2).
There are also a number of tutorials in Spanish on [Vimeo](https://vimeo.com/user90812787)
## DJ tutorials
* [How to upload and schedule tracks on your show](upload-tracks)
* [How to upload a promo](upload-promo)
* [How to livestream with butt](livestream.md)
## Program Manager tutorials
* [Building a schedule](build-schedule.md)
* [How to set up an automatic top of the hour ID with intro playlist feature](top-of-hour-id.md)
* [How to schedule a podcast to play the newest episode on an automatic basis](autoloading-podcast.md)
* [How to setup a Auto DJ to play music from certain genres for unscheduled shows](autodj.md)
* [Preventing dead air between shows without cutting off tracks](filler.md)
* [How to schedule automatic underwriting/advertising announcements](underwriting.md)
* [How to schedule a repeating webstream with a linked show](webstream-link.md)
## Admin tutorials
* [Installing LibreTime from Git on a stand-alone VPS](install-vps.md)
* [Securing icecast and customizing stream settings ](stream-settings.md)
* [How to install player and calendar widgets on your website](widgets.md)

View file

@ -0,0 +1,2 @@
How to Install LibreTime on a VPS- Youtube Video
[![How to Install LibreTime on a VPS](http://img.youtube.com/vi/Djo_55LgjXE/0.jpg)](https://www.youtube-nocookie.com/embed/Djo_55LgjXE "How to Install LibreTime on a VPS")

View file

@ -0,0 +1,4 @@
How to Livestream Your Show - Youtube Video
[![How to Livestream Your Show](http://img.youtube.com/vi/4GLsU9hPTtM/0.jpg)](https://www.youtube-nocookie.com/embed/4GLsU9hPTtM "How to Livestream Your Show")
* Step-by-Step Text-based [How-to](../../howtos/livestream)

View file

@ -0,0 +1,2 @@
How to Customize the Stream Settings - YouTube link
[![Upload a promo to LibreTime](http://img.youtube.com/vi/QPNo52Fc0ck/0.jpg)](https://www.youtube-nocookie.com/embed/QPNo52Fc0ck "How to upload a promo")

View file

@ -0,0 +1,5 @@
How to set up an automatic top of the hour ID with intro playlist feature - Youtube Video
[![How to set up an automatic top of the hour ID with intro playlist feature](http://img.youtube.com/vi/IXHmiqri4PI/0.jpg)](https://www.youtube-nocookie.com/embed/IXHmiqri4PI "How to set up an automatic top of the hour ID with intro playlist feature")
* Step-by-step Text Based [How-To](../../howtos/intro-playlist)

View file

@ -0,0 +1,2 @@
How to schedule underwriting announcements or ad spots - Youtube Video
[![How to schedule underwriting announcements](http://img.youtube.com/vi/F7rMut7Trb4/0.jpg)](https://www.youtube-nocookie.com/embed/F7rMut7Trb4 "How to schedule underwriting announcements")

View file

@ -0,0 +1,4 @@
How to Upload a Promo - Youtube Video
[![Upload a promo to LibreTime](http://img.youtube.com/vi/IC0cn3LaAXs/0.jpg)](https://www.youtube-nocookie.com/embed/IC0cn3LaAXs "How to upload a promo")
* Step-by-step Text Based [How-To](../../howtos/upload-promo)

View file

@ -0,0 +1,5 @@
How to Upload Tracks and Schedule Your Show - Youtube Video
[![Upload Tracks](http://img.youtube.com/vi/TJtWUzAlP08/0.jpg)](https://www.youtube-nocookie.com/embed/TJtWUzAlP08 "How to upload tracks")
* Step-by-step Text Based [How-To](../../howtos/upload)

View file

@ -0,0 +1,2 @@
How to schedule a webstream with linked calendar - Youtube Video
[![How to schedule a webstream with linked calendar](http://img.youtube.com/vi/Ha3X6aYdY04/0.jpg)](https://www.youtube-nocookie.com/embed/Ha3X6aYdY04 "How to schedule a webstream with linked calendar")

View file

@ -0,0 +1,2 @@
How to Upload a Promo - Youtube Video
[![Upload a promo to LibreTime](http://img.youtube.com/vi/IC0cn3LaAXs/0.jpg)](https://www.youtube-nocookie.com/embed/IC0cn3LaAXs "How to upload a promo")

View file

@ -22,6 +22,8 @@ pages:
- 'Using LibreTime':
- 'On Air in 60 seconds!': 'manual/on-air-in-60-seconds/index.md'
- 'Getting Started': manual/getting-started/index.md
- 'Tutorials': manual/tutorials/index.md
- 'How-Tos': manual/howtos/index.md
- 'The Settings Menu':
- 'General': manual/general/index.md
- 'Users': manual/users/index.md