PlaylistAI - Music Playlist Maker

PlaylistAI - Music Playlist Maker · Acciones GPT

Playlist Generation API

API for generating multiple playlists for different event phases.

  • POST /generateMultiplePlaylistsHttpGenerate Multiple Playlists

    Generates multiple playlists based on the provided general settings and phases.

  • POST /exportPlaylistexportPlaylistToAPI

    Exports a playlist of tracks to the user's favorite music streaming service. Note that it only exports a single playlist.

  • POST /shareMultiplePlaylistsHttpShare Multiple Playlists

    Shares multiple playlists and returns migration URLs with additional playlist information.

Esquema original 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
Esquema original 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": []
          }
        ]
      }
    }
  }
}