PlaylistAI - Music Playlist Maker
PlaylistAI - Music Playlist Maker · GPT Actions
Playlist Generation API
API for generating multiple playlists for different event phases.
POST /generateMultiplePlaylistsHttpGenerate Multiple PlaylistsGenerates multiple playlists based on the provided general settings and phases.
POST /exportPlaylistexportPlaylistToAPIExports a playlist of tracks to the user's favorite music streaming service. Note that it only exports a single playlist.
POST /shareMultiplePlaylistsHttpShare Multiple PlaylistsShares multiple playlists and returns migration URLs with additional playlist information.
原始 API 定义
{
"openapi": "3.1.0",
"info": {
"title": "Playlist Generation API",
"description": "API for generating multiple playlists for different event phases.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://us-central1-dtrack-finder.cloudfunctions.net"
}
],
"paths": {
"/generateMultiplePlaylistsHttp": {
"post": {
"operationId": "generateMultiplePlaylists",
"summary": "Generate Multiple Playlists",
"description": "Generates multiple playlists based on the provided general settings and phases.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"phases": {
"type": "object",
"properties": {
"Opening": {
"type": "integer",
"minimum": 7,
"maximum": 15
},
"Warm up": {
"type": "integer",
"minimum": 7,
"maximum": 15
},
"Peak": {
"type": "integer",
"minimum": 7,
"maximum": 15
},
"Party Games": {
"type": "integer",
"minimum": 7,
"maximum": 15
},
"Chill Out": {
"type": "integer",
"minimum": 7,
"maximum": 15
}
},
"additionalProperties": false
},
"generalSettings": {
"type": "object",
"properties": {
"occasionType": {
"type": "array",
"items": {
"type": "string",
"enum": [
"New Year's Eve",
"Graduation Party",
"Bachelor",
"Bachelorette",
"College Party",
"Victory",
"Workout",
"Corporate Event",
"Birthday",
"General Occasion"
]
}
},
"venue": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Nightclub",
"Bar",
"Living Room",
"Pool",
"Road Trip",
"Lounge",
"Outdoor",
"On The Road",
"Boat",
"Restaurant",
"Banquet Hall",
"Strip Club",
"Office",
"Conference Hall",
"Gym"
]
}
},
"language": {
"type": "array",
"items": {
"type": "string",
"enum": [
"English",
"Spanish",
"Hebrew"
]
}
},
"crowdAgeRange": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 0,
"maximum": 127
}
},
"genres": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Pop",
"EDM",
"Hip Hop",
"Rock",
"Reggaeton"
]
}
},
"priorityTags": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Mingle",
"Sing Along",
"Dance",
"Jump",
"60s",
"70s",
"Cheer Competitors",
"Workout",
"Collaborate",
"Eat",
"Drink",
"Relax",
"Sex",
"Buy",
"Cardio",
"Background",
"Sexy",
"Fight",
"Freedom",
"Funny",
"Crazy",
"Chillout",
"Romantic",
"Rage",
"Exciting",
"Hopeful",
"Adrenaline",
"Sun",
"Snow",
"Cheerful",
"Dark",
"Background",
"Captivating",
"isKidFriendly",
"80s",
"90s",
"2000s",
"2010s",
"2020s"
]
}
},
"lowPriorityTags": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Mingle",
"Sing Along",
"Dance",
"Jump",
"60s",
"70s",
"Cheer Competitors",
"Workout",
"Collaborate",
"Eat",
"Drink",
"Relax",
"Sex",
"Buy",
"Cardio",
"Background",
"Sexy",
"Fight",
"Freedom",
"Funny",
"Crazy",
"Chillout",
"Romantic",
"Rage",
"Exciting",
"Hopeful",
"Adrenaline",
"Sun",
"Snow",
"Cheerful",
"Dark",
"Background",
"Captivating",
"isKidFriendly",
"80s",
"90s",
"2000s",
"2010s",
"2020s"
]
}
}
},
"required": [
"occasionType",
"venue",
"language",
"crowdAgeRange",
"genres"
]
}
},
"required": [
"phases",
"generalSettings"
]
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"playlists": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trackTitle": {
"type": "string"
},
"artist": {
"type": "string"
},
"bpm": {
"type": "integer"
},
"energy": {
"type": "number"
},
"key": {
"type": "string"
},
"isExplicit": {
"type": "boolean"
},
"releaseDate": {
"type": "string",
"format": "date"
},
"duration": {
"type": "integer"
}
},
"required": [
"trackTitle",
"artist",
"bpm",
"energy",
"key",
"isExplicit",
"releaseDate",
"duration"
]
}
}
}
}
}
}
},
"400": {
"description": "Invalid input"
},
"500": {
"description": "Internal server error"
}
}
}
},
"/exportPlaylist": {
"post": {
"description": "Exports a playlist of tracks to the user's favorite music streaming service. Note that it only exports a single playlist.",
"operationId": "exportPlaylistToAPI",
"requestBody": {
"description": "Playlist data to be exported",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlaylistPayload"
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"migrationUrl": {
"type": "string",
"description": "URL to access the migrated playlist"
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"deprecated": false
}
},
"/shareMultiplePlaylistsHttp": {
"post": {
"operationId": "shareMultiplePlaylists",
"summary": "Share Multiple Playlists",
"description": "Shares multiple playlists and returns migration URLs with additional playlist information.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"playlists": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PlaylistPayloadMini"
}
}
},
"required": [
"playlists"
]
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"migrationData": {
"type": "array",
"items": {
"type": "object",
"properties": {
"playlistName": {
"type": "string"
},
"songCount": {
"type": "integer"
},
"migrationUrl": {
"type": "string"
}
},
"required": [
"playlistName",
"songCount",
"migrationUrl"
]
}
}
}
}
}
}
},
"500": {
"description": "Internal server error"
}
}
}
}
},
"components": {
"schemas": {
"PlaylistPayload": {
"type": "object",
"required": [
"playlistName",
"playlistDescription",
"tracks"
],
"properties": {
"playlistName": {
"type": "string"
},
"playlistDescription": {
"type": "string"
},
"tracks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
}
}
},
"Track": {
"type": "object",
"required": [
"name",
"artist"
],
"properties": {
"name": {
"type": "string"
},
"album": {
"type": "string"
},
"artist": {
"type": "string"
},
"isrc": {
"type": "string"
},
"image": {
"type": "string"
},
"duration": {
"type": "integer",
"format": "int64"
}
}
},
"PlaylistPayloadMini": {
"type": "object",
"required": [
"playlistName",
"playlistDescription",
"tracks"
],
"properties": {
"playlistName": {
"type": "string"
},
"playlistDescription": {
"type": "string"
},
"tracks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TrackMini"
}
}
}
},
"TrackMini": {
"type": "object",
"required": [
"name",
"artist"
],
"properties": {
"name": {
"type": "string"
},
"artist": {
"type": "string"
}
}
},
"Error": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}ChatPrompt product information API
GET /youtube/get_product_infoGet product info
原始 API 定义
{
"openapi": "3.1.0",
"info": {
"title": "ChatPrompt product information API",
"version": "0.0.1.0"
},
"servers": [
{
"url": "https://chat-prompt.com",
"description": "We provide information API tailored for different chatbots."
}
],
"paths": {
"/youtube/get_product_info": {
"get": {
"summary": "Get product info",
"operationId": "get_product_info",
"parameters": [
{
"in": "query",
"name": "query",
"required": true,
"description": "The main topic of the GPTs description",
"schema": {
"type": "string",
"default": "backend"
}
},
{
"in": "query",
"name": "botname",
"required": true,
"description": "The name of this GPTs",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
},
"security": [
{
"apiKey": []
}
]
}
}
}
}