From 94b408159466b2e5ffef4bed16ccc8a524647ce1 Mon Sep 17 00:00:00 2001 From: Zachary Klosko Date: Thu, 28 May 2020 21:13:28 -0400 Subject: [PATCH] Adding Youtube videos, embeds, cleaning site --- docs/_data/nav.yml | 16 ++++---- docs/advanced-configuration.md | 51 ------------------------ docs/api.md | 56 ++++++++++++++++++++++++++ docs/intro-playlist.md | 40 ------------------- docs/live-broadcast.md | 10 ++--- docs/ota-broadcast.md | 1 + docs/outro-playlist.md | 63 ----------------------------- docs/podcasts-webstreams.md | 8 ++++ docs/reverse-proxy.md | 4 +- docs/scheduling-shows.md | 4 ++ docs/settings.md | 4 ++ docs/troubleshooting.md | 73 +++++++++++++++++++++++----------- docs/uninstall.md | 16 -------- 13 files changed, 138 insertions(+), 208 deletions(-) delete mode 100644 docs/advanced-configuration.md create mode 100644 docs/api.md delete mode 100644 docs/intro-playlist.md delete mode 100644 docs/outro-playlist.md delete mode 100644 docs/uninstall.md diff --git a/docs/_data/nav.yml b/docs/_data/nav.yml index 69329555a..796b99435 100644 --- a/docs/_data/nav.yml +++ b/docs/_data/nav.yml @@ -3,6 +3,8 @@ topnav: url: index - page: Docs url: contribute +- page: YouTube + url: https://www.youtube.com/channel/UC-MA9GzkTb8th1YlDmF0NfA/featured - page: Github url: https://github.com/LibreTime/libretime - page: Sponsor @@ -48,6 +50,8 @@ docsnav: url: listener-stats - section: Advanced Configuration contents: + - page: API Usage + url: api - page: Backing up LibreTime url: backing-up-the-server - page: Configuring Streaming Services @@ -56,12 +60,12 @@ docsnav: url: freeipa - page: Interface Customization url: interface-customization + - page: Promoting through Icecast + url: promoting-your-station + - page: Troubleshooting/Uninstall + url: troubleshooting - page: Upgrading LibreTime url: upgrading -- section: Troubleshooting - contents: - - page: Basic Troubleshooting - url: troubleshooting - section: Appendix contents: - page: HD Audio Modules @@ -69,6 +73,4 @@ docsnav: - page: Contribute to LibreTime url: contribute - page: Rights and Royalties - url: rights-royalties - - page: Uninstalling LibreTime - url: uninstall \ No newline at end of file + url: rights-royalties \ No newline at end of file diff --git a/docs/advanced-configuration.md b/docs/advanced-configuration.md deleted file mode 100644 index 7188c99cc..000000000 --- a/docs/advanced-configuration.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: docs ---- - - -This page contains links to number of 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) - -## Understanding the Main Menus -* [Upload](upload) -* [Dashboard](dashboard) -* [Tracks](tracks) -* [Playlists](playlists) -* [Smart Blocks](smartblocks) -* [Webstreams](webstreams) -* [Podcasts](podcasts) -* [Radio Page](radio-page) -* [Calendar](calendar) -* Settings - * [General](general-settings) - * [Users](users) - * [Streams](stream-settings) - * [Status](status) -* Analytics - * [Playout History](history) - * [History Templates](history-templates) - * [Listener Stats](listener-stats) -* [Help](help) -* [Listen](listen) - -## For Program Managers -* [Building a schedule](build-schedule) -* [How to set up an automatic top of the hour ID with intro playlist feature](intro-playlist) -* [How to setup a Auto DJ to play music from certain genres for unscheduled shows](autodj) -* [Preventing dead air between shows without cutting off tracks](outro-playlist) -* [How to schedule automatic underwriting/advertising announcements (YouTube)](https://www.youtube.com/watch?v=F7rMut7Trb4) -* [How to schedule a repeating webstream with a linked show (YouTube)](https://www.youtube.com/watch?v=Ha3X6aYdY04) -* [How to export a schedule of played tracks](exporting-the-schedule) - -## For Server Administrators - -* [How to configure API Authentication](api) -* [Information on reverse proxy connections](reverse-proxy) -* [Configuring FreeIPA authentication](freeipa) -* [Using and configuring Icecast and Shoutcast](icecast-shoutcast) -* [Interface Customization](interface-customization) -* [Promoting your station through your Icecast stream](promoting-your-station) -* [How to back up the LibreTime media folder and database](backing-up-the-server) -* [Upgrading LibreTime](upgrading) -* [Uninstalling LibreTime](uninstall) diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 000000000..16ad3ab5d --- /dev/null +++ b/docs/api.md @@ -0,0 +1,56 @@ +--- +layout: docs +title: LibreTime API Usage +--- + +The LibreTime API enables many types of information about the broadcast schedule and configuration to be retrieved from the LibreTime server. Other than the live-info and week-info data fetched by website widgets (see the chapter *Exporting the schedule*), all API requests must be authenticated using the secret API key stored in the file */etc/airtime/api\_client.cfg* on the LibreTime server. This key is autogenerated during LibreTime installation and should be unique for each server. + +If you intend to use the LibreTime API across a public network, for security reasons it is highly recommended that all API requests are sent over encrypted https: and that the web server is configured to accept requests to the api/ directory from specific host names or IP addresses only. + +The format of API requests is: + + https://libretime.example.com/api/api-action/format/json/api_key/XXXXXX + +where api-action is the type of request and XXXXXX is the secret API key. Available actions include: + +- on-air-light - return true if the station is on air +- status - get the status of LibreTime components and resource usage +- version - returns the version of LibreTime installed +- get-files-without-silan-value - list files for which silence detection has not yet been performed +- get-stream-setting - gets the settings of LibreTime output streams +- get-stream-parameters - gets the parameters of LibreTime output streams + +For example, using the action *get-stream-setting* returns the following output for the first configured stream: + + {"keyname":"s1_type","value":"ogg","type":"string"}, + + {"keyname":"s1_host","value":"streaming.example.com","type":"string"}, + + {"keyname":"s1_port","value":"8000","type":"integer"}, + + {"keyname":"s1_mount","value":"airtime_128","type":"string"}, + + {"keyname":"s1_url","value":"http:\/\/airtime.sourcefabric.org","type":"string"}, + + {"keyname":"s1_description","value":"Airtime Radio! Stream + #1","type":"string"}, + + {"keyname":"s1_genre","value":"Screamo","type":"string"}, + +which is enough information to construct a player widget dynamically. (s1\_url is the station's homepage, not the stream URL). The same information is provided with an s2\_ prefix for the second stream, and s3\_ prefix for the third stream. + +Some API requests require the directory ID number to be specified as *dir\_id* including: + +- list-all-files - list files in the specified directory +- get-files-without-replay-gain - list files in the specified directory for which ReplayGain has not been calculated yet + +For example, using a request such as: + + http://libretime.example.com/api/list-all-files/format/json/api_key/XXXXXX/dir_id/1/ + +returns the full path to each media file in the LibreTime storage directory: + + {"files":[ + "imported\/1\/Mark Ronson feat. Saigon\/Here Comes the Fuzz\/7-Diduntdidunt-unknown.flac", + "imported\/1\/Jimi Tenor & Tony Allen\/Inspiration Information\/3-Selfish Gene-128kbps.mp3", + "]} diff --git a/docs/intro-playlist.md b/docs/intro-playlist.md deleted file mode 100644 index 0f2752e01..000000000 --- a/docs/intro-playlist.md +++ /dev/null @@ -1,40 +0,0 @@ -# How to automatically schedule an Intro Playlist - -**Audience**: Adminstrators - -## Creating the Top of the hour smartblock - -1. Login to LibreTime -1. Click **Smart Blocks** -1. Click the blue **+New** button -1. On the right (or below if screen width is limited), type in the Smart Block -Name: **Top of the Hour Station ID** -1. Under **Search Criteria** select **Genre** for the criteria -1. Select **is** for modifier -1. 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* -1. Under Limit To – click the second box and select **items** instead of hours -1. Click **Save** - -## Adding Smartblock to Intro Playlist - -1. Click **Playlist** -1. Click **+ New** -1. Type **Intro Playlist** in the Name. -1. Click **Smart Blocks** -1. Click the box to the left of **Top of the Hour Station ID** -1. Click **+ Add to current playlist** or drag the smart block to the right -bottom of the playlist window. -1. Click **Save**. - -## How to Set Default Intro Playlist - -1. Click **Settings**. -1, Click **General** and then scroll to **Intro Autoloading Playlist** and -click the drop down to select the **Intro Playlist** -1. 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. diff --git a/docs/live-broadcast.md b/docs/live-broadcast.md index c3ccdebb1..03accfe7e 100644 --- a/docs/live-broadcast.md +++ b/docs/live-broadcast.md @@ -7,12 +7,6 @@ title: Broadcasting live with MIXXX or B.U.T.T. - [MIXXX](#mixxx) - [BUTT](#butt) -# Video Tutorial - - - - - This how to is intended for DJs using BUTT or MIXXX to stream to their LibreTime server with an external USB audio card setup to route a mixer and sound. @@ -43,6 +37,10 @@ for remote input connection details. # Live shows with B.U.T.T. (Broadcast Using This Tool) {#butt} + + + + ## Set Up 1. Download and install butt from for your OS. diff --git a/docs/ota-broadcast.md b/docs/ota-broadcast.md index b511bdb8b..03812d734 100644 --- a/docs/ota-broadcast.md +++ b/docs/ota-broadcast.md @@ -1,5 +1,6 @@ --- layout: docs +title: AM/FM Broadcasting Guide --- # Radio Broadcasting 101 - UNESCO Public Radio Guide diff --git a/docs/outro-playlist.md b/docs/outro-playlist.md deleted file mode 100644 index 69cba9f15..000000000 --- a/docs/outro-playlist.md +++ /dev/null @@ -1,63 +0,0 @@ -# How to setup an Outro Playlist - -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) - -## Adding the Promo Fill smart block - -1. Click **Smart Blocks** -1. Click the blue **+ New** button -1. Type in a name for the Smart Block (for instance *Promo Fill*) -1. Select **Genre** and the modifer of **is** and then type in **promo** in -the 3^rd^ box. -1. Under **Limit to**: we select **time remaining in show** -1. 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. -1. Click **preview** to review and confirm tracks match your criteria below. -1. Click **Save** - -## Adding interuptible Ambient Fill smart block - -1. Click **Smart Blocks** -1. Click the blue **+New** button -1. Type in a name for the Smart Block (for instance *Ambient Fill*) -1. Now we select **Genre **and the modifer of **is** and then type in **ambient -fill** in the 3^rd^ box. -1. Under **Limit to**: we select **time remaining in show** -1. Click **Advanced options** drop down -1. Check box next to **Allow last track to exceed time limit** -1. Click **preview** to review and confirm tracks match your criteria below. -1. Click **Save** - -## Create the Outro Playlist to hold the smart blocks - -1. Click **Playlists** -1. Click **+ New** -1. Type in the name “*Outro Playlist*” -1. Click on **Smart Blocks** -1. Click box next to **Promo Fill** smart block and click **+ Add to current -playlist** or drag it to the bottom of the Outro playlist -1. Click box next to **Ambient Fill** smart block and click **+ Add to current -playlist** or drag it to the bottom of the Outro playlist -1. Make sure the **Promo Fill** is above the **Ambient Fill** smart block in -the playlist -1. Click **Save** - -# Setting the station-wide Outro playlist - -1. Click **Settings** -1. Click **General** -1. Scroll down to Outro Playlist and with the drop down select the newly -created **Outro Playlist** -1. Scroll down or up on the form and click **Save**. - -Now every autoloading playlist show will have tracks scheduled to -fill any potential dead air. - -Watch the tutorial on YouTube - -* [![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 ") diff --git a/docs/podcasts-webstreams.md b/docs/podcasts-webstreams.md index 99ff8ec45..00300f0e2 100644 --- a/docs/podcasts-webstreams.md +++ b/docs/podcasts-webstreams.md @@ -6,6 +6,10 @@ title: Podcasts and Webstreams - [Podcasts](#podcasts) - [Webstreams](#webstreams) + + + + # Podcasts {#podcasts} The Podcasts page allows you add subscriptions to podcasts which are often used to syndicated audio files using a URL called a RSS feed. This allows your LibreTime instance to automatically download new shows from the web. @@ -40,6 +44,10 @@ A search box is available to search for episodes within the feed. # Webstreams {#webstreams} + + + + ## Adding a webstream A web stream URL and metadata can be added to the LibreTime library, so that a remote stream can be searched for and scheduled to be *pulled* into a show. For example, at the top of the hour your station may pull a news report from journalists working in another studio. This is a different concept from **Master Source** and **Show Source** remote streams which are *pushed* into the LibreTime playout schedule. diff --git a/docs/reverse-proxy.md b/docs/reverse-proxy.md index 532fca558..78895ca4d 100644 --- a/docs/reverse-proxy.md +++ b/docs/reverse-proxy.md @@ -10,7 +10,7 @@ makes extensive use of its API for some site functionality, which causes [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) to occur. By default, CORS requests are blocked by your browser and the origins need to be added to the **Allowed CORS URLs** block in -[**General Settings**](general-settings). These origins should include any +[**General Settings**](settings). These origins should include any domains that will be used externally to connect to your reverse proxy that you want handled by LibreTime. These URLS can also be set during the first run configuration that is displayed when you first install LibreTime @@ -42,7 +42,7 @@ Nginx set up on `proxy` and LibreTime will be installed on `libretime`. You will access on both. `libretime` also needs to be able to be accessed from `proxy` (`ping libretime` on `proxy`). -On `libretime`, install LibreTime as described in the [install guide](install). In short +On `libretime`, install LibreTime as described in the [install guide](quickstart). In short this means run the following commands: ``` diff --git a/docs/scheduling-shows.md b/docs/scheduling-shows.md index f852fb56c..46a7843a3 100644 --- a/docs/scheduling-shows.md +++ b/docs/scheduling-shows.md @@ -3,6 +3,10 @@ layout: docs title: Scheduling Shows --- + + + + Log in using your username and password using the link in the upper right corner. (If you just installed LibreTime, your username/password is admin/admin.) diff --git a/docs/settings.md b/docs/settings.md index aacb7e1bb..eed7301b1 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -111,6 +111,10 @@ their username on the right side of the menu bar. # Stream Settings {#stream} + + + + Global settings ------------------------ diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index a1b8c7dd3..63e3dc91b 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -4,6 +4,12 @@ title: Troubleshooting blurb: Having trouble with your LibreTime installation? We've got you covered! --- +> Quick Links: +- [Log Files](#logs) +- [Test Tones](#tones) +- [RabbitMQ](#rabbitmq) +- [Uninstall LibreTime](#uninstall) + LibreTime is effectively a web site running on a LAPP stack, so individual components of the system can be started, stopped, restarted or checked in the server console using the **systemctl** command: sudo systemctl start|stop|restart|status libretime-liquidsoap @@ -17,40 +23,43 @@ For example, to restart the Airtime playout engine, you could enter the command: sudo systemctl restart libretime-playout -Log files +Log files {#logs} --------- Airtime stores log files under the directory path */var/log/airtime/* which can be useful for diagnosing the cause of any problems. Copies of these log files may be requested by LibreTime developers while they are providing technical support for your Airtime deployment. -Test tones +Test tones {#tones} ---------- If you need to test your computer's soundcard, you can use `speaker-test`, a tone generator for ALSA. This does not come installed with LibreTime but can be installed with `sudo apt install speaker-test`. - speaker-test [-D] [-f] - - Where: - -D device name - -f frequency of test tone +``` +speaker-test [-D] [-f] + +Where: + -D device name + -f frequency of test tone +``` The **airtime-test-stream** command enables you to send a test tone to a local or remote streaming media server. Press **Ctrl+C** on your keyboard to stop the tone being streamed. +``` +airtime-test-stream [-v] + [-o icecast | shoutcast ] [-H hostname] [-P port] + [-u username] [-p password] [-m mount] + [-h] +Where: + -v verbose mode + -o stream server type (default: icecast) + -H hostname (default: localhost) + -P port (default: 8000) + -u user (default: source) + -p password (default: hackme) + -m mount (default: test) + -h show help menu +``` - airtime-test-stream [-v] - [-o icecast | shoutcast ] [-H hostname] [-P port] - [-u username] [-p password] [-m mount] - [-h] - Where: -      -v verbose mode -      -o stream server type (default: icecast) -      -H hostname (default: localhost) -      -P port (default: 8000) -      -u user (default: source) -      -p password (default: hackme) -      -m mount (default: test) - -h show help menu - -RabbitMQ hostname changes +RabbitMQ hostname changes {#rabbitmq} ------------------------- If the Airtime logs indicate failures to connect to the RabbitMQ server, such as: @@ -83,4 +92,22 @@ rabbitmqctl set_permissions -p /airtime airtime "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"   "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor"  "airtime-pypo|pypo-fetch|airtime-analyzer|media-monitor" -``` \ No newline at end of file +``` + +# Uninstall LibreTime {#uninstall} + +Hopefully it wasn't something that we did, but if you need to uninstall LibreTime for +any reason, cd to the directory of the installer and run +``` +sudo ./uninstall +``` + +If allowed, the installer will **permanently** delete all databases and media uploaded to +LibreTime. + +If it was something we did, please open an issue request on our Github page, located +[here](https://github.com/LibreTime/libretime/issues). + +Until we meet again, best of luck. + +<3 The LibreTime team \ No newline at end of file diff --git a/docs/uninstall.md b/docs/uninstall.md deleted file mode 100644 index 904a604b0..000000000 --- a/docs/uninstall.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: docs -title: Uninstall LibreTime ---- - -Hopefully it wasn't something that we did, but if you need to uninstall LibreTime for -any reason, cd to the directory of the installer and run `sudo ./uninstall` and follow the prompts. -If allowed, the installer will **permanently** delete all databases and media uploaded to -LibreTime. - -If it was something we did, please open an issue request on our Github page, located -[here](https://github.com/LibreTime/libretime/issues). - -Until we meet again, best of luck. - -<3 The LibreTime team