2019-10-21 20:40:29 +02:00
---
2021-05-28 02:24:34 +02:00
# yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json
openapi : "3.1.0"
2019-10-21 20:40:29 +02:00
info :
title : LibreTime API overview
version : 1.1
paths :
/live-info :
get :
summary : Retrieve the currently playing show as well as upcoming shows
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : type
in : path
description : |-
endofday retrieves the info for shows up until the end of the day,
while interval will return shows in the next 48 hours
schema :
enum :
2021-05-27 16:20:34 +02:00
- "endofday"
- "interval"
default : "interval"
2019-10-21 20:40:29 +02:00
required : false
- name : limit
in : path
description : the number of shows to retrieve
schema :
type : integer
default : 5
required : false
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : 200 response for default request
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
{
"env": "production" ,
"schedulerTime": "2019-10-21 17:52:45" ,
"previous" :
{
"starts": "2019-10-21 17:47:25.000000" ,
"ends": "2019-10-21 17:52:13.000000" ,
"type": "track" ,
"name": "Disclosure - F For You (feat. Mary J. Blige)" ,
"metadata" :
{
"id": 8 ,
"name": "" ,
"mime": "audio/mp3" ,
"ftype": "audioclip" ,
"directory": 1 ,
"filepath": "imported/1/Disclosure/www.mmibty.com/01-F-For-You-feat.-Mary-J.-Blige.mp3" ,
"import_status": 0 ,
"currentlyaccessing": 0 ,
"editedby": null ,
"mtime": "2019-10-21 17:19:03" ,
"utime": "2019-10-21 17:18:57" ,
"lptime": "2019-10-21 17:47:25" ,
"md5": "e008616551750aea49820a16d1fb1527" ,
"track_title": "F For You (feat. Mary J. Blige)" ,
"artist_name": "Disclosure" ,
"bit_rate": 251628 ,
"sample_rate": 44100 ,
"format": null ,
"length": "00:04:48.026122" ,
"album_title": "www.mmibty.com" ,
"genre": "Electronic" ,
"comments": null ,
"year": "2014" ,
"track_number": 1 ,
"channels": 2 ,
"url": null ,
"bpm": null ,
"rating": null ,
"encoded_by": null ,
"disc_number": null ,
"mood": null ,
"label": null ,
"composer": null ,
"encoder": null ,
"checksum": null ,
"lyrics": null ,
"orchestra": null ,
"conductor": null ,
"lyricist": null ,
"original_lyricist": null ,
"radio_station_name": null ,
"info_url": null ,
"artist_url": null ,
"audio_source_url": null ,
"radio_station_url": null ,
"buy_this_url": null ,
"isrc_number": null ,
"catalog_number": null ,
"original_artist": null ,
"copyright": null ,
"report_datetime": null ,
"report_location": null ,
"report_organization": null ,
"subject": null ,
"contributor": null ,
"language": null ,
"replay_gain": "-5.58" ,
"owner_id": 1 ,
"cuein": "00:00:00" ,
"cueout": "00:04:48.026122" ,
"hidden": false ,
"filesize": 9271626 ,
"description": null ,
"artwork": "imported/1/artwork/01-F-For-You-feat.-Mary-J.-Blige" ,
"artwork_url": "http://localhost:8080/api/track?id=8&return=artwork" ,
},
},
"current" :
{
"starts": "2019-10-21 17:52:13" ,
"ends": "2019-10-21 17:56:27" ,
"type": "track" ,
"name": "Armin van Buuren - Ping Pong" ,
"media_item_played": true ,
"metadata" :
{
"id": 2 ,
"name": "" ,
"mime": "audio/mp3" ,
"ftype": "audioclip" ,
"directory": 1 ,
"filepath": "imported/1/Armin van Buuren/A State of Trance 2014/2-18 Armin van Buuren - Ping Pong.mp3" ,
"import_status": 0 ,
"currentlyaccessing": 0 ,
"editedby": null ,
"mtime": "2019-10-21 17:18:02" ,
"utime": "2019-10-21 17:18:00" ,
"lptime": "2019-10-21 17:52:13" ,
"md5": "04c26823902065db0706d121d0e703a2" ,
"track_title": "Ping Pong" ,
"artist_name": "Armin van Buuren" ,
"bit_rate": 32000 ,
"sample_rate": 44100 ,
"format": null ,
"length": "00:04:14.171429" ,
"album_title": "A State of Trance 2014" ,
"genre": "Trance;Electronic;Dance" ,
"comments": null ,
"year": "2014" ,
"track_number": 18 ,
"channels": 2 ,
"url": null ,
"bpm": null ,
"rating": null ,
"encoded_by": null ,
"disc_number": null ,
"mood": null ,
"label": "Armada Music" ,
"composer": null ,
"encoder": null ,
"checksum": null ,
"lyrics": null ,
"orchestra": null ,
"conductor": null ,
"lyricist": null ,
"original_lyricist": null ,
"radio_station_name": null ,
"info_url": null ,
"artist_url": null ,
"audio_source_url": null ,
"radio_station_url": null ,
"buy_this_url": null ,
"isrc_number": null ,
"catalog_number": null ,
"original_artist": null ,
"copyright": null ,
"report_datetime": null ,
"report_location": null ,
"report_organization": null ,
"subject": null ,
"contributor": null ,
"language": null ,
"replay_gain": "-5.07" ,
"owner_id": 1 ,
"cuein": "00:00:00" ,
"cueout": "00:04:14.171429" ,
"hidden": false ,
"filesize": 6136238 ,
"description": null ,
"artwork": "imported/1/artwork/2-18 Armin van Buuren - Ping Pong" ,
"artwork_url": "http://localhost:8080/api/track?id=2&return=artwork" ,
},
"record": "0" ,
},
"next" :
{
"starts": "2019-10-21 17:56:27.000000" ,
"ends": "2019-10-21 18:00:28.000000" ,
"type": "track" ,
"name": "Bastille - No Angels (feat. Ella)" ,
"metadata" :
{
"id": 4 ,
"name": "" ,
"mime": "audio/mp3" ,
"ftype": "audioclip" ,
"directory": 1 ,
"filepath": "imported/1/Bastille/Other People's Heartache, Pt. 2/03 Bastille - No Angels (feat. Ella).mp3" ,
"import_status": 0 ,
"currentlyaccessing": 0 ,
"editedby": null ,
"mtime": "2019-10-21 17:18:16" ,
"utime": "2019-10-21 17:18:14" ,
"lptime": "2019-10-21 17:24:46" ,
"md5": "87bf83451d7618eefc0141c262aead2a" ,
"track_title": "No Angels (feat. Ella)" ,
"artist_name": "Bastille" ,
"bit_rate": 128000 ,
"sample_rate": 44100 ,
"format": null ,
"length": "00:04:00.752438" ,
"album_title": "Other People's Heartache, Pt. 2" ,
"genre": null ,
"comments": null ,
"year": "2012" ,
"track_number": 3 ,
"channels": 2 ,
"url": null ,
"bpm": null ,
"rating": null ,
"encoded_by": null ,
"disc_number": null ,
"mood": null ,
"label": "[no label]" ,
"composer": null ,
"encoder": null ,
"checksum": null ,
"lyrics": null ,
"orchestra": null ,
"conductor": null ,
"lyricist": null ,
"original_lyricist": null ,
"radio_station_name": null ,
"info_url": null ,
"artist_url": null ,
"audio_source_url": null ,
"radio_station_url": null ,
"buy_this_url": null ,
"isrc_number": null ,
"catalog_number": null ,
"original_artist": null ,
"copyright": null ,
"report_datetime": null ,
"report_location": null ,
"report_organization": null ,
"subject": null ,
"contributor": null ,
"language": null ,
"replay_gain": "-8.57" ,
"owner_id": 1 ,
"cuein": "00:00:00" ,
"cueout": "00:04:00.752438" ,
"hidden": false ,
"filesize": 3858688 ,
"description": null ,
"artwork": "" ,
},
},
"currentShow" :
[
{
"start_timestamp": "2019-10-21 17:20:00" ,
"end_timestamp": "2019-10-21 18:31:00" ,
"name": "Show 1" ,
"description": "A show" ,
"id": 1 ,
"instance_id": 1 ,
"record": 0 ,
"url": "https://example.com" ,
"image_path": "" ,
"starts": "2019-10-21 17:20:00" ,
"ends": "2019-10-21 18:31:00" ,
},
] ,
"nextShow" :
[
{
"id": 2 ,
"instance_id": 2 ,
"name": "Reading" ,
"description": "A reading of After the EMP by Harley Tate" ,
"url": "https://example.com" ,
"start_timestamp": "2019-10-21 18:31:00" ,
"end_timestamp": "2019-10-22 10:45:00" ,
"starts": "2019-10-21 18:31:00" ,
"ends": "2019-10-22 10:45:00" ,
"record": 0 ,
"image_path": "" ,
"type": "show" ,
},
] ,
"source_enabled": "Scheduled" ,
"timezone": "UTC" ,
"timezoneOffset": "0" ,
"AIRTIME_API_VERSION": "1.1" ,
}
2019-10-21 20:40:29 +02:00
/live-info-v2 :
get :
summary : Retrieve the currently playing and upcoming shows
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
- name : days
in : path
description : The number of days to return
schema :
type : integer
default : 2
required : false
- show_id : shows
in : path
description : the number of shows to retrieve
schema :
type : integer
default : 5
required : false
- name : timezone
in : path
description : The timezone to send the times in
schema :
type : string
default : "$server_timezone"
required : false
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : 200 response for default request
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
{
"station" :
2019-10-21 20:40:29 +02:00
{
2021-05-27 16:20:34 +02:00
"env": "production" ,
"schedulerTime": "2019-10-21 17:29:40" ,
"source_enabled": "Scheduled" ,
"timezone": "UTC" ,
"AIRTIME_API_VERSION": "1.1" ,
},
"tracks" :
{
"previous" :
{
"starts": "2019-10-21 17:24:45" ,
"ends": "2019-10-21 17:28:46" ,
"type": "track" ,
"name": "Bastille - No Angels (feat. Ella)" ,
"metadata" :
{
"id": 4 ,
"name": "" ,
"mime": "audio/mp3" ,
"ftype": "audioclip" ,
"directory": 1 ,
"filepath": "imported/1/Bastille/Other People's Heartache, Pt. 2/03 Bastille - No Angels (feat. Ella).mp3" ,
"import_status": 0 ,
"currentlyaccessing": 0 ,
"editedby": null ,
"mtime": "2019-10-21 17:18:16" ,
"utime": "2019-10-21 17:18:14" ,
"lptime": "2019-10-21 17:24:46" ,
"md5": "87bf83451d7618eefc0141c262aead2a" ,
"track_title": "No Angels (feat. Ella)" ,
"artist_name": "Bastille" ,
"bit_rate": 128000 ,
"sample_rate": 44100 ,
"format": null ,
"length": "00:04:00.752438" ,
"album_title": "Other People's Heartache, Pt. 2" ,
"genre": null ,
"comments": null ,
"year": "2012" ,
"track_number": 3 ,
"channels": 2 ,
"url": null ,
"bpm": null ,
"rating": null ,
"encoded_by": null ,
"disc_number": null ,
"mood": null ,
"label": "[no label]" ,
"composer": null ,
"encoder": null ,
"checksum": null ,
"lyrics": null ,
"orchestra": null ,
"conductor": null ,
"lyricist": null ,
"original_lyricist": null ,
"radio_station_name": null ,
"info_url": null ,
"artist_url": null ,
"audio_source_url": null ,
"radio_station_url": null ,
"buy_this_url": null ,
"isrc_number": null ,
"catalog_number": null ,
"original_artist": null ,
"copyright": null ,
"report_datetime": null ,
"report_location": null ,
"report_organization": null ,
"subject": null ,
"contributor": null ,
"language": null ,
"replay_gain": "-8.57" ,
"owner_id": 1 ,
"cuein": "00:00:00" ,
"cueout": "00:04:00.752438" ,
"hidden": false ,
"filesize": 3858688 ,
"description": null ,
"artwork": "" ,
},
},
"current": null ,
"next" :
{
"starts": "2019-10-21 17:32:49" ,
"ends": "2019-10-21 17:36:44" ,
"type": "track" ,
"name": "Bob Marley - Could You Be Loved" ,
"metadata" :
{
"id": 14 ,
"name": "" ,
"mime": "audio/mp3" ,
"ftype": "audioclip" ,
"directory": 1 ,
"filepath": "imported/1/Bob Marley/Greatest Hits/02. Could You Be Loved.mp3" ,
"import_status": 0 ,
"currentlyaccessing": 0 ,
"editedby": null ,
"mtime": "2019-10-21 17:19:16" ,
"utime": "2019-10-21 17:18:59" ,
"lptime": null ,
"md5": "75e49569fd6af61cc8c18f5660beadc2" ,
"track_title": "Could You Be Loved" ,
"artist_name": "Bob Marley" ,
"bit_rate": 128000 ,
"sample_rate": 44100 ,
"format": null ,
"length": "00:03:55.11" ,
"album_title": "Greatest Hits" ,
"genre": "Various" ,
"comments": null ,
"year": null ,
"track_number": 2 ,
"channels": 2 ,
"url": null ,
"bpm": 103 ,
"rating": null ,
"encoded_by": null ,
"disc_number": null ,
"mood": null ,
"label": null ,
"composer": null ,
"encoder": null ,
"checksum": null ,
"lyrics": null ,
"orchestra": null ,
"conductor": null ,
"lyricist": null ,
"original_lyricist": null ,
"radio_station_name": null ,
"info_url": null ,
"artist_url": null ,
"audio_source_url": null ,
"radio_station_url": null ,
"buy_this_url": null ,
"isrc_number": null ,
"catalog_number": null ,
"original_artist": null ,
"copyright": null ,
"report_datetime": null ,
"report_location": null ,
"report_organization": null ,
"subject": null ,
"contributor": null ,
"language": null ,
"replay_gain": "-1.2" ,
"owner_id": 1 ,
"cuein": "00:00:00" ,
"cueout": "00:03:55.11" ,
"hidden": false ,
"filesize": 3773820 ,
"description": null ,
"artwork": "" ,
},
},
},
"shows" :
{
"previous": [ ] ,
"current" :
{
"name": "Show 1" ,
"description": "A show" ,
"genre": "HipHop" ,
"id": 1 ,
"instance_id": 1 ,
"record": 0 ,
"url": "https://example.com" ,
"image_path": "" ,
"starts": "2019-10-21 17:20:00" ,
"ends": "2019-10-21 18:31:00" ,
},
"next" :
[
{
"name": "Reading" ,
"description": "A reading of After the EMP by Harley Tate" ,
"genre": "Sci-fi" ,
"id": 2 ,
"instance_id": 2 ,
"record": 0 ,
"url": "https://example.com" ,
"image_path": "" ,
"starts": "2019-10-21 18:31:00" ,
"ends": "2019-10-22 10:45:00" ,
},
] ,
},
"sources" :
{
"livedj": "off" ,
"masterdj": "off" ,
"scheduledplay": "on" ,
},
2019-10-21 20:40:29 +02:00
}
/week-info :
get :
summary : Retrieve the schedule for the week
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : 200 response for default request
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
{
"monday" :
[
{
"start_timestamp": "2019-10-21 17:20:00" ,
"end_timestamp": "2019-10-21 18:31:00" ,
"name": "Show 1" ,
"description": "A show" ,
"id": 1 ,
"instance_id": 1 ,
"instance_description": "" ,
"record": 0 ,
"url": "https://example.com" ,
"image_path": "" ,
"starts": "2019-10-21 17:20:00" ,
"ends": "2019-10-21 18:31:00" ,
},
{
"start_timestamp": "2019-10-21 18:31:00" ,
"end_timestamp": "2019-10-22 10:45:00" ,
"name": "Reading" ,
"description": "A reading of After the EMP by Harley Tate" ,
"id": 2 ,
"instance_id": 2 ,
"instance_description": "" ,
"record": 0 ,
"url": "https://example.com" ,
"image_path": "" ,
"starts": "2019-10-21 18:31:00" ,
"ends": "2019-10-22 10:45:00" ,
},
] ,
"tuesday": [ ] ,
"wednesday": [ ] ,
"thursday": [ ] ,
"friday": [ ] ,
"saturday": [ ] ,
"sunday": [ ] ,
"nextmonday": [ ] ,
"nexttuesday": [ ] ,
"nextwednesday": [ ] ,
"nextthursday": [ ] ,
"nextfriday": [ ] ,
"nextsaturday": [ ] ,
"nextsunday": [ ] ,
"AIRTIME_API_VERSION": "1.1" ,
}
2019-10-21 20:40:29 +02:00
/station-metadata :
get :
summary : BROKEN - Retrieve the schedule for the week
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
/station-logo :
get :
summary : Fetch the station logo
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
/show-history-feed :
get :
2021-05-27 15:59:00 +02:00
summary : BROKEN - Retrieve the show schedules for a given time range and show
2019-10-21 20:40:29 +02:00
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : start
in : path
description : The start time for the feed
required : true
- name : end
in : path
description : The end time for the feed
required : true
- name : timezone
in : path
description : The timezone that the times are in
required : true
/item-history-feed :
get :
summary : Retrieve the items for a time range and/or show
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : start
in : path
description : The start time for the feed
required : false
- name : end
in : path
description : The end time for the feed
required : false
- name : timezone
in : path
description : The timezone that the times are in
required : false
- name : instance_id
in : path
description : The show instance ID
required : false
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The 200 default response
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
[
{
"starts": "2019-10-21 18:19:07" ,
"ends": "2019-10-21 18:23:55" ,
"history_id": 16 ,
"instance_id": 1 ,
"track_title": "F For You (feat. Mary J. Blige)" ,
"artist_name": "Disclosure" ,
"checkbox": "" ,
},
{
"starts": "2019-10-21 17:20:31" ,
"ends": "2019-10-21 17:24:45" ,
"history_id": 1 ,
"instance_id": 1 ,
"track_title": "Ping Pong" ,
"artist_name": "Armin van Buuren" ,
"checkbox": "" ,
},
]
2019-10-21 20:40:29 +02:00
/shows :
get :
summary : Retrieve the show info (without schedule for given show_id
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : show_id
in : path
description : The ID of the show
required : false
response :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The response with a show_id of 1
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
[
{
"name": "Show 1" ,
"id": 1 ,
"url": "https://example.com" ,
"genre": "HipHop" ,
"description": "A show" ,
"color": "" ,
"background_color": "" ,
"linked": false ,
"has_autoplaylist": false ,
"autoplaylist_id": null ,
"autoplaylist_repeat": false ,
},
]
2019-10-21 20:40:29 +02:00
/show-tracks :
get :
summary : Display the track listing for given instance_id
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : instance_id
in : path
description : The ID of the show
required : true
response :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The response with a instance_id of 1
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
[
{
"title": "Ping Pong" ,
"artist": "Armin van Buuren" ,
"position": 0 ,
"id": 1 ,
"mime": "audio/mp3" ,
"starts": "2019-10-21 17:20:31" ,
"length": "4:14.2" ,
"file_id": 2 ,
},
{
"title": "No Angels (feat. Ella)" ,
"artist": "Bastille" ,
"position": 1 ,
"id": 2 ,
"mime": "audio/mp3" ,
"starts": "2019-10-21 17:24:45" ,
"length": "4:00.8" ,
"file_id": 4 ,
},
]
2019-10-21 20:40:29 +02:00
/show-schedules :
get :
summary : Display the show schedule for given show_id
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : show_id
in : path
description : The ID of the show
required : true
- name : start
in : path
description : The start time for the feed
required : false
- name : end
in : path
description : The end time for the feed
required : false
- name : timezone
in : path
description : The timezone that the times are in
required : false
response :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The response with a instance_id of 1
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
[
{
"starts": "2019-10-21 17:20:00" ,
"ends": "2019-10-21 18:31:00" ,
"record": 0 ,
"rebroadcast": 0 ,
"parent_starts": null ,
"record_id": null ,
"show_id": 1 ,
"name": "Show 1" ,
"description": "A show" ,
"color": "" ,
"background_color": "" ,
"image_path": "" ,
"linked": false ,
"file_id": null ,
"instance_id": 1 ,
"instance_description": "" ,
"created": "2019-10-21 17:20:22" ,
"last_scheduled": "2019-10-21 17:20:50" ,
"time_filled": "01:14:39.265872" ,
},
]
2019-10-21 20:40:29 +02:00
/show-logo :
get :
summary : Fetch the show logo. Returns the station logo if none exists
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : id
in : path
description : The ID of the show with the logo to retrieve
required : true
/track :
get :
summary : Displays the metadata of a particular track
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
- name : id
in : path
description : The track id
required : true
- name : response
in : path
description : The type of response
schema :
enum :
- json
- artwork_data
- artwork
required : true
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The 200 response
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
{
"MDATA_KEY_FILEPATH": "imported\/1\/Armin van Buuren\/Another You (feat. Mr. Probz)\/01 Another You (feat. Mr. Probz).mp3" ,
"MDATA_KEY_DIRECTORY": 1 ,
"MDATA_KEY_TITLE": "Another You (feat. Mr. Probz)" ,
"MDATA_KEY_CREATOR": "Armin van Buuren" ,
"MDATA_KEY_SOURCE": "Another You (feat. Mr. Probz)" ,
"MDATA_KEY_DURATION": "00:03:19.183673" ,
"MDATA_KEY_MIME": "audio\/mp3" ,
"MDATA_KEY_FTYPE": "audioclip" ,
"MDATA_KEY_URL": null ,
"MDATA_KEY_GENRE": null ,
"MDATA_KEY_MOOD": null ,
"MDATA_KEY_LABEL": "Armin Audio B.V." ,
"MDATA_KEY_COMPOSER": null ,
"MDATA_KEY_DESCRIPTION": null ,
"MDATA_KEY_SAMPLERATE": 44100 ,
"MDATA_KEY_BITRATE": 192000 ,
"MDATA_KEY_ENCODER": null ,
"MDATA_KEY_ISRC": null ,
"MDATA_KEY_COPYRIGHT": null ,
"MDATA_KEY_YEAR": "2015" ,
"MDATA_KEY_BPM": null ,
"MDATA_KEY_TRACKNUMBER": 1 ,
"MDATA_KEY_CONDUCTOR": null ,
"MDATA_KEY_LANGUAGE": null ,
"MDATA_KEY_REPLAYGAIN": "-8.36" ,
"MDATA_KEY_OWNER_ID": 1 ,
"MDATA_KEY_CUE_IN": "00:00:00" ,
"MDATA_KEY_CUE_OUT": "00:03:19.183673" ,
"MDATA_KEY_ARTWORK": "imported\/1\/artwork\/01 Another You (feat. Mr. Probz)" ,
}
2019-10-21 20:40:29 +02:00
/stream-m3u :
get :
summary : Returns m3u playlist file for the station's output stream
response :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : The M3U file for the stream
content : application/x-mpegurl
/version :
get :
summary : Returns the current LibreTime and API versions
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : false
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : 200 response
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
{ "airtime_version": "3.0.0~alpha.5", "api_version": "1.1" }
2019-10-21 20:40:29 +02:00
/recorded-shows :
get :
summary : BROKEN - Unclear what this did, not implemented in ApiController
/calendar-init :
get :
summary : BROKEN - Unclear what this did, not implemented in ApiController
/upload-file :
get :
summary : BROKEN - Unclear what this did, not implemented in ApiController
/upload-recorded :
post :
summary : Upload a recorded show
parameters :
- name : showinstanceid
in : path
description : The ID of the show that was recorded
required : true
- name : fileid
in : path
description : The ID of the recorded file in the database
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/media-monitor-setup :
post :
summary : Initialises monitoring of media directories
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/media-item-status :
get :
summary : BROKEN - Unclear what this did, not implemented in ApiController
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/reload-metadata :
get :
summary : BROKEN - Unclear what this did, not implemented in ApiController
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/list-all-files :
get :
summary : BROKEN - List all files in a given directory managed by LibreTime
parameters :
- name : dir_id
in : path
description : The directory to list files in
required : true
- name : all
in : path
description : |-
true to show all files in the database, even if they do not exist
on disk
required : false
- name : api_key
in : path
description : The API key to use for authentication
required : true
/list-all-watched-dirs :
get :
summary : |-
BROKEN (LT does not currently support watched files) - lists all
directories to watch for new files
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/add-watched-dir :
post :
summary : |-
BROKEN (LT does not currently support watched files) - adds a directory
to the list of watched directories
parameters :
- name : path
in : path
description : the path of the directory on the server, base64 encoded
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/remove-watched-dir :
post :
summary : |-
BROKEN (LT does not currently support watched files) - removes a
directory from the list of watched directories
parameters :
- name : path
in : path
description : the path of the directory on the server, base64 encoded
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/set-storage-dir :
post :
summary : Sets the storage path for music files
parameters :
- name : path
in : path
description : The base64 encoded path to the new storage directory
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/get-stream-setting :
get :
summary : |-
BROKEN - Returns the settings configured for the four output Icecast
streams
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/status :
get :
summary : |-
BROKEN - Returns the current status of the various LibreTime
components
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/register-component :
post :
summary : Add a service component (for example Monit)
parameters :
- name : component
in : path
description : The component name to add
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/update-liquidsoap-status :
post :
summary : |-
Update the status of a stream to indicate a Liquidsoap status update
parameters :
- name : msg_post
in : path
description : The error message to use
required : true
- name : stream_id
in : path
description : The ID of the stream to update
required : true
- name : boot_time
description : |-
The time that the status was last updated. Excluding this will
force update.
required : false
- name : api_key
in : path
description : The API key to use for authentication
required : true
/update-file-system-mount :
post :
summary : |-
Handles additions/deletions of mount points on which watched
directories reside
parameters :
- name : added_dir
in : path
description : |-
A comma separated list of directories that were added to the system
required : false
- name : removed_dir
in : path
description : |-
A comma separated list of directories that were removed from the
system
required : false
- name : api_key
in : path
description : The API key to use for authentication
required : true
/handle-watched-dir-missing :
post :
summary : |-
2021-05-27 15:59:00 +02:00
BROKEN (LibreTime does not currently handle watched directories) -
2019-10-21 20:40:29 +02:00
Handles missing watched directories.
parameters :
- name : dir
in : path
description : The directory to disable
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/rabbitmq-do-push :
post :
summary : |-
Used by dev scripts to make rabbitmq send out a message to pypo that a
potential change has been made to the database.
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/check-live-stream-auth :
get :
summary : |-
Tests the authentication supplied to authenticate DJs connecting to a
live stream
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
requestBody :
required : true
content :
application/x-www-form-urlencoded :
schema :
type : object
properties :
username :
type : string
password :
type : string
format : password
djtype :
type : string
required :
- username
- password
- djtype
/update-source-status :
post :
summary : Update on source connect or disconnect
parameters :
- name : sourcename
in : path
description : |-
The name of the source that has connected or disconnected
- name : status
in : path
description : true if the source is now connected
- name : api_key
in : path
description : The API key to use for authentication
required : true
/get-bootstrap-info :
get :
summary : |-
BROKEN - Retrieves the current state of the instance. This includes
which sources are currently connected, station name, etc
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/get-files-without-replay-gain :
get :
summary : |-
BROKEN (returns all files) - Returns the files that do not have replay
gain set.
parameters :
- name : dir_id
in : path
description : The directory ID
- name : api_key
in : path
description : The API key to use for authentication
required : true
/get-files-without-silan-value :
get :
summary : Returns the files that have not been processed by silan
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
responses :
2021-05-27 16:20:34 +02:00
"200" :
2019-10-21 20:40:29 +02:00
description : 200 response for default request
content :
application/json :
2021-05-27 16:20:34 +02:00
example :
[
{ "id": 9, "fp": "/srv/airtime/stor/" },
{
"id": 12 ,
"fp": "/srv/airtime/stor/imported/1/Sam Smith Feat John Legend/The Official Uk Top 40 Singles Chart 03-22-2015/01 Sam Smith Feat John Legend - Lay Me Down.mp3" ,
},
{
"id": 13 ,
"fp": "/srv/airtime/stor/imported/1/Mumford & Sons/Wilder Mind [ Deluxe Edition ]/01 - Tompkins Square Park.mp3" ,
},
{
"id": 3 ,
"fp": "/srv/airtime/stor/imported/1/Bastille/All This Bad Blood/1-02 Things We Lost in the Fire.mp3" ,
},
{
"id": 1 ,
"fp": "/srv/airtime/stor/imported/1/Armin van Buuren/Another You (feat. Mr. Probz)/01 Another You (feat. Mr. Probz).mp3" ,
},
{
"id": 15 ,
"fp": "/srv/airtime/stor/imported/1/Harley Tate/Harley Tate - After the EMP 01 - After the EMP/Harley Tate - After the EMP 01 - After the EMP.mp3" ,
},
]
2019-10-21 20:40:29 +02:00
/reload-metadata-group :
get :
summary : |-
Extracts all file metadata from the list of files
parameters :
- name : mdXXX
# This could be wrong - the function in ApiController is confusing...
in : path
description : |-
A json encoded hash with all the information related to the action.
the XXX represents at least 1 digit. Currently the mdXXX key has no
meaning.
- name : api_key
in : path
description : The API key to use for authentication
required : true
/notify-webstream-data :
post :
summary : Notifies webstreams of data being updated
parameters :
- name : data
in : path
description : |-
A json encoded hash with the data used to notify the webstream. This
includes keys such as 'title'.
required : true
- name : media_id
in : path
description : The ID of the media to show
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/get-stream-parameters :
get :
summary : BROKEN - Retrieves the parameters set for each stream
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/push-stream-stats :
post :
summary : Updates the listener number statistics
parameters :
- name : data
in : path
description : A json encoded mapping of time to number of listeners
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/update-stream-setting-table :
post :
summary : Set stream settings
parameters :
- name : data
in : path
description : A json encoded array of key-value pairs to update
required : true
- name : api_key
in : path
description : The API key to use for authentication
required : true
/update-replay-gain-value :
post :
summary : Updates the replay gain values for media items
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
- name : data
description : A json encoded array of media ID and gain pairs
required : true
/update-cue-values-by-silan :
post :
summary : Updates the silan cue values for media items
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
- name : data
description : A json encoded array of media ID and cue pairs
required : true
/get-usability-hint :
get :
2021-05-27 15:59:00 +02:00
summary : Returns the usability hint tool-tip for a UI item
2019-10-21 20:40:29 +02:00
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
- name : userPath
in : path
description : The URL path to the UI item
required : true
/poll-celery :
post :
summary : Polls celery for tasks
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true
/recalculate-schedule :
post :
summary : Recalculates the schedule to remove gaps and update timing
parameters :
- name : api_key
in : path
description : The API key to use for authentication
required : true