attempt at create voice

This commit is contained in:
2023-04-18 18:07:31 -07:00
parent 356266b818
commit 9331e86556

View File

@@ -1,12 +1,16 @@
package client package client
import ( import (
"bytes"
"context" "context"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"io"
"mime/multipart"
"net/http" "net/http"
"os" "os"
"strings"
"github.com/taigrr/elevenlabs/client/types" "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" url := c.endpoint + "/v1/voices/add"
client := &http.Client{} client := &http.Client{}
// TODO create body here var b bytes.Buffer
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, nil) 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 { if err != nil {
return err return err
} }
req.Header.Set("Content-Type", w.FormDataContentType())
req.Header.Set("xi-api-key", c.apiKey) req.Header.Set("xi-api-key", c.apiKey)
req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs") req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs")
req.Header.Set("accept", "application/json") req.Header.Set("accept", "application/json")