libretime/docs/api/openapi.yaml

1318 lines
46 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,
"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"
}
/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,
"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"
}
}
/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"
}
]
/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