1344 lines
47 KiB
YAML
1344 lines
47 KiB
YAML
---
|
|
openapi: "3.0.0"
|
|
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:
|
|
- 'endofday'
|
|
- 'interval'
|
|
default: 'interval'
|
|
required: false
|
|
- name: limit
|
|
in: path
|
|
description: the number of shows to retrieve
|
|
schema:
|
|
type: integer
|
|
default: 5
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: 200 response for default request
|
|
content:
|
|
application/json:
|
|
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,
|
|
"soundcloud_id": null,
|
|
"soundcloud_error_code": null,
|
|
"soundcloud_error_msg": null,
|
|
"soundcloud_link_to_file": null,
|
|
"soundcloud_upload_time": 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,
|
|
"soundcloud_id": null,
|
|
"soundcloud_error_code": null,
|
|
"soundcloud_error_msg": null,
|
|
"soundcloud_link_to_file": null,
|
|
"soundcloud_upload_time": 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,
|
|
"soundcloud_id": null,
|
|
"soundcloud_error_code": null,
|
|
"soundcloud_error_msg": null,
|
|
"soundcloud_link_to_file": null,
|
|
"soundcloud_upload_time": 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"
|
|
}
|
|
/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:
|
|
'200':
|
|
description: 200 response for default request
|
|
content:
|
|
application/json:
|
|
example: {
|
|
"station": {
|
|
"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,
|
|
"soundcloud_id": null,
|
|
"soundcloud_error_code": null,
|
|
"soundcloud_error_msg": null,
|
|
"soundcloud_link_to_file": null,
|
|
"soundcloud_upload_time": 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,
|
|
"soundcloud_id": null,
|
|
"soundcloud_error_code": null,
|
|
"soundcloud_error_msg": null,
|
|
"soundcloud_link_to_file": null,
|
|
"soundcloud_upload_time": 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"
|
|
}
|
|
}
|
|
/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:
|
|
'200':
|
|
description: 200 response for default request
|
|
content:
|
|
application/json:
|
|
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"
|
|
}
|
|
/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:
|
|
summary: BROKEN - Retrieve the show shedules for a given time range and 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: 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:
|
|
'200':
|
|
description: The 200 default response
|
|
content:
|
|
application/json:
|
|
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": ""
|
|
},
|
|
]
|
|
/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:
|
|
'200':
|
|
description: The response with a show_id of 1
|
|
content:
|
|
application/json:
|
|
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
|
|
}
|
|
]
|
|
/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:
|
|
'200':
|
|
description: The response with a instance_id of 1
|
|
content:
|
|
application/json:
|
|
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
|
|
}
|
|
]
|
|
/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:
|
|
'200':
|
|
description: The response with a instance_id of 1
|
|
content:
|
|
application/json:
|
|
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",
|
|
"soundcloud_id": null
|
|
}
|
|
]
|
|
/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:
|
|
'200':
|
|
description: The 200 response
|
|
content:
|
|
application/json:
|
|
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)"
|
|
}
|
|
/stream-m3u:
|
|
get:
|
|
summary: Returns m3u playlist file for the station's output stream
|
|
response:
|
|
'200':
|
|
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:
|
|
'200':
|
|
description: 200 response
|
|
content:
|
|
application/json:
|
|
example: {
|
|
"airtime_version": "3.0.0~alpha.5",
|
|
"api_version": "1.1"
|
|
}
|
|
/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: |-
|
|
BROKEN (LibreTime does not currentl handle watched directories) -
|
|
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:
|
|
'200':
|
|
description: 200 response for default request
|
|
content:
|
|
application/json:
|
|
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"
|
|
}
|
|
]
|
|
/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:
|
|
summary: Returns the usibility hint tool-tip for a UI item
|
|
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
|