mirror of
https://github.com/taigrr/elevenlabs.git
synced 2026-04-02 03:08:57 -07:00
attempt at create voice
This commit is contained in:
@@ -1,12 +1,16 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/taigrr/elevenlabs/client/types"
|
||||
)
|
||||
@@ -15,11 +19,27 @@ func (c Client) CreateVoice(ctx context.Context, name, description string, label
|
||||
url := c.endpoint + "/v1/voices/add"
|
||||
client := &http.Client{}
|
||||
|
||||
// TODO create body here
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, nil)
|
||||
var b bytes.Buffer
|
||||
w := multipart.NewWriter(&b)
|
||||
for _, r := range files {
|
||||
var fw io.Writer
|
||||
var err error
|
||||
if fw, err = w.CreateFormFile("files[]", r.Name()); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := io.Copy(fw, r); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
w.WriteField("name", name)
|
||||
w.WriteField("description", description)
|
||||
w.WriteField("name", strings.Join(labels, ", "))
|
||||
w.Close()
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, &b)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
req.Header.Set("Content-Type", w.FormDataContentType())
|
||||
req.Header.Set("xi-api-key", c.apiKey)
|
||||
req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs")
|
||||
req.Header.Set("accept", "application/json")
|
||||
|
||||
Reference in New Issue
Block a user