Added in version 3.1.28
Brief description
Playlist API allows to export playlist in different formats from Ace Stream Media Server.
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.
- generate_player_id (bool, default is 0) - with this option engine will output playlist with random pid (Engine_HTTP_API#Player ID) for each item.
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
"m3u" format is intented for different media players.
"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.
Examples
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 "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 "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 } ]