Playlist API

From Ace Stream Wiki
Revision as of 17:03, 1 February 2018 by Ffx (talk | contribs)
Jump to: navigation, search

Brief description

Playlist API allows to export playlist from Ace Stream Media Server in different formats.

API endpoint: http://<engine_host>:6878/playlist/get

Parameters:

- format (list) - set output format
- category (list) - filter by category (media type)
- subcategory (string) - filter by subcategory (tags)
- favorites (bool, default is 0) - filter favorites; favorites=0 means to output both favorite and non-favorite items
- items (list of integers) - filter by playlist item ids
- host (string) - configure playback URL: set "host" part of URL. Actually this is an IP address of Ace Stream Media Server. By default the host from endpoint URL is used.
- protocol (string, defaults to server settings) - configure playback URL: set output protocol (http or hls)
- transcode_audio (bool, defaults to server settings) - configure playback URL: enabled audio transcoding
- transcode_mp3 (bool, defaults to server settings) - configure playback URL: transcode MP3 to AAC (by default MP3 is not transcoded)
- transcode_ac3 (bool, defaults to server settings) - configure playback URL: transcode only AC3 to AAC and don't transcode other codecs
- preferred_audio_language (string, defaults to server settings) - configure playback ULR: set preferred audio language
- download (bool, default is 0) - download playlist as file
- skip_autosearch (bool, default is 0) - don't replace playlist data with autosearch results; this doesn't affect playlist items with disabled autosearch

Boolean values are passed as 0 or 1 (e.g. transcode_audio=1) List of integers is passed as string of values concatenated with comma (e.g. items=14,115,127)

Allowed values for list parameters:

format
   * acestream
   * m3u
   * json
category
   - tv
   - movies
   - music_video
   - music
   - other
protocol
   - http
   - hls


Playlist output formats

"acestream" format is used to export playlist in such way so it can be imported in the Ace Stream software running somewhere else. At the moment we use M3U format with some additional fields, specific to Ace Stream. Each playlist item is identified either by Content ID (start with acestream://) or infohash (starts with magnet:). Infohash is used when Content ID is not available for some playlist item. Both types of identifiers are recognized by Ace Stream Media Server when playlist is imported.

"json" format is indented to be used for automation. Playlist is returned as list of items, each item is an object with such fields:

- id (integer) - playlist item id unique for this media server; this id can be passed in "items" parameter to filter specific playlist items
- title (string) - title
- playback_url (string) - playback URL
- content_id (string) - Content ID (may be null)
- infohash (string) - infohash (may be null)
- transport_file_url (string) - transport file URL (may be null)
- category (string) - media type (see list for "category" parameter)
- is_live (integer) - 1: live content, 0: VOD, -1: unknown
- auto_search (bool) - whether autosearch is enabled for this playlist item
- tags (list of strings) - list of tags

"m3u" format is intented for different media players.


Examples

Get playlist in "acestream" format. Request:

http://127.0.0.1:6878/playlist/get?format=acestream

Response:

#EXTM3U
#EXTINF:-1,Test Channel 1
acestream://acbfd1954084ffc68c65b0948485e5d0f82173e2
#EXTINF:-1 acestream-autosearch="1",Test Channel 2
magnet:?xt=urn:btih:7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb


Get playlist in "m3u" format. Request:

http://127.0.0.1:6878/playlist/get?format=m3u

Response:

#EXTM3U
#EXTINF:-1,Test Channel 1
http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&hlc=1&transcode_audio=0&transcode_mp3=0&transcode_ac3=0&preferred_audio_language=eng
#EXTINF:-1 acestream-autosearch="1",Test Channel 2
http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&hlc=1&transcode_audio=0&transcode_mp3=0&transcode_ac3=0&preferred_audio_language=eng

Get playlist in "json" format. Request:

http://127.0.0.1:6878/playlist/get?format=json

Response:

[
{
"category": "tv",
"auto_search": false,
"title": "Test Channel 1",
"playback_url": "http://127.0.0.1:6878/ace/getstream?id=acbfd1954084ffc68c65b0948485e5d0f82173e2&hlc=1&transcode_audio=0&transcode_mp3=0&transcode_ac3=0&preferred_audio_language=eng",
"is_live": 1,
"transport_file_url": null,
"content_id": "acbfd1954084ffc68c65b0948485e5d0f82173e2",
"infohash": "a1231ebb2a26263cb37b305fced076961990812e",
"id": 3
},
{
"category": "tv",
"auto_search": true,
"title": "Test Channel 2",
"playback_url": "http://127.0.0.1:6878/ace/getstream?infohash=7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb&hlc=1&transcode_audio=0&transcode_mp3=0&transcode_ac3=0&preferred_audio_language=eng",
"is_live": 1,
"transport_file_url": null,
"content_id": null,
"infohash": "7889e5f0cea9b72f5dcd7a9c67e665c7f4f5b3eb",
"id": 4
}
]