Class: ElevenlabsClient::Endpoints::Music
- Inherits:
-
Object
- Object
- ElevenlabsClient::Endpoints::Music
- Defined in:
- lib/elevenlabs_client/endpoints/music.rb
Instance Method Summary collapse
-
#compose(options = {}) ⇒ String
(also: #compose_music)
POST /v1/music Compose music and return binary audio data Documentation: https://elevenlabs.io/docs/api-reference/music/compose.
-
#compose_detailed(options = {}) ⇒ String
(also: #compose_music_detailed)
POST /v1/music/detailed Compose music and return detailed response with metadata and audio Documentation: https://elevenlabs.io/docs/api-reference/music/compose-detailed.
-
#compose_stream(options = {}, &block) ⇒ nil
(also: #compose_music_stream)
POST /v1/music/stream Compose music with streaming audio response Documentation: https://elevenlabs.io/docs/api-reference/music/compose-stream.
-
#create_plan(options = {}) ⇒ Hash
(also: #create_music_plan)
POST /v1/music/plan Create a composition plan for music generation Documentation: https://elevenlabs.io/docs/api-reference/music/create-plan.
-
#initialize(client) ⇒ Music
constructor
A new instance of Music.
Constructor Details
#initialize(client) ⇒ Music
Returns a new instance of Music.
6 7 8 |
# File 'lib/elevenlabs_client/endpoints/music.rb', line 6 def initialize(client) @client = client end |
Instance Method Details
#compose(options = {}) ⇒ String Also known as: compose_music
POST /v1/music Compose music and return binary audio data Documentation: https://elevenlabs.io/docs/api-reference/music/compose
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/elevenlabs_client/endpoints/music.rb', line 21 def compose( = {}) endpoint = "/v1/music" request_body = build_music_request_body() query_params = {} query_params[:output_format] = [:output_format] if [:output_format] endpoint_with_query = query_params.empty? ? endpoint : "#{endpoint}?#{URI.encode_www_form(query_params)}" @client.post_binary(endpoint_with_query, request_body) end |
#compose_detailed(options = {}) ⇒ String Also known as: compose_music_detailed
POST /v1/music/detailed Compose music and return detailed response with metadata and audio Documentation: https://elevenlabs.io/docs/api-reference/music/compose-detailed
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/elevenlabs_client/endpoints/music.rb', line 68 def compose_detailed( = {}) endpoint = "/v1/music/detailed" request_body = build_music_request_body() query_params = {} query_params[:output_format] = [:output_format] if [:output_format] endpoint_with_query = query_params.empty? ? endpoint : "#{endpoint}?#{URI.encode_www_form(query_params)}" # Use post_with_custom_headers to handle multipart response @client.post_with_custom_headers( endpoint_with_query, request_body, { "Accept" => "multipart/mixed" } ) end |
#compose_stream(options = {}, &block) ⇒ nil Also known as: compose_music_stream
POST /v1/music/stream Compose music with streaming audio response Documentation: https://elevenlabs.io/docs/api-reference/music/compose-stream
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/elevenlabs_client/endpoints/music.rb', line 45 def compose_stream( = {}, &block) endpoint = "/v1/music/stream" request_body = build_music_request_body() query_params = {} query_params[:output_format] = [:output_format] if [:output_format] endpoint_with_query = query_params.empty? ? endpoint : "#{endpoint}?#{URI.encode_www_form(query_params)}" @client.post_streaming(endpoint_with_query, request_body, &block) end |
#create_plan(options = {}) ⇒ Hash Also known as: create_music_plan
POST /v1/music/plan Create a composition plan for music generation Documentation: https://elevenlabs.io/docs/api-reference/music/create-plan
95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/elevenlabs_client/endpoints/music.rb', line 95 def create_plan( = {}) endpoint = "/v1/music/plan" request_body = { prompt: [:prompt], music_length_ms: [:music_length_ms], source_composition_plan: [:source_composition_plan], model_id: [:model_id] || "music_v1" }.compact @client.post(endpoint, request_body) end |