--- # yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json openapi: "3.1.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 schedules 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 currently 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 usability 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