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
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")