description |
---|
Here is a quickstart guide to setting up your API with local folders. Go through the tabs for node.js or python! |
{% tabs %} {% tab title="node.js" %}
- Start a new node.js project
- Install node-fetch and add your API key
$ npm init -y
$ npm install node-fetch
$ export GOOEY_API_KEY=sk-xxxx
{% endtab %}
{% tab title="python" %}
$ python3 -m pip install requests
$ export GOOEY_API_KEY=sk-xxxx
{% endtab %} {% endtabs %}
To use GOOEY.AI lipsync tool you need two types of input files for the project:
- Input face
- This is refered to as
input_face
in the API - Use the following formats - mp4 / mov / png / jpg
- Ensure the face has clear human features with eyes, nose, lips. Non-human faces will not work
- This is refered to as
- Input audio
- This is referred to as
input_audio
- Use the following formats only - wav / mp3
- This is referred to as
For ease of use make sure the folders are all located in the same project. In this example, we have added the input_face
and input_audio
in the folder lipsync-bulk
.
{% tabs %} {% tab title="node.js" %}
Copy the example code below to test your API call.
// save this in index.js
import fetch, { FormData, fileFrom } from 'node-fetch';
const payload = {};
async function gooeyAPI() {
const formData = new FormData()
formData.set('json', JSON.stringify(payload))
// add the path to your input face
formData.append('input_face', await fileFrom('lipsync-bulk/image.png'))
// add the path to your input audio
formData.append('input_audio', await fileFrom('lipsync-bulk/audio_2024-03-26_11-00-36.ogg.wav'))
const response = await fetch("https://api.gooey.ai/v2/Lipsync/form/", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env["GOOEY_API_KEY"],
},
body: formData,
});
if (!response.ok) {
throw new Error(response.status);
}
const result = await response.json();
console.log(response.status, result);
}
gooeyAPI();
In the code above, replace the file paths as per the location of your local file location.
//this is the code snippet that needs to be replaced
formData.append('input_face', await fileFrom('lipsync-bulk/image.png'))
formData.append('input_audio', await fileFrom('lipsync-bulk/audio_2024-03-26_11-00-36.ogg.wav'))
{% endtab %}
{% tab title="python" %}
Copy the example code below to test your API call.
// save this in main.py
import os
import requests
import json
files = [
("input_face", open("lipsync-bulk/image.png", "rb")),
("input_audio", open("lipsync-bulk/audio_2024-03-26_11-00-36.ogg.wav", "rb")),
]
payload = {}
response = requests.post(
"https://api.gooey.ai/v2/Lipsync/form/?run_id=fecsii61rs6e&uid=fm165fOmucZlpa5YHupPBdcvDR02",
headers={
"Authorization": "Bearer " + os.environ["GOOEY_API_KEY"],
},
files=files,
data={"json": json.dumps(payload)},
)
assert response.ok, response.content
result = response.json()
print(response.status_code, result)
In the code above, replace the file paths as per the location of your local file location.
//this is the code snippet that needs to be replaced
files = [
("input_face", open("lipsync-bulk/image.png", "rb")),
("input_audio", open("lipsync-bulk/audio_2024-03-26_11-00-36.ogg.wav", "rb")),
]
{% endtab %} {% endtabs %}
Test if your app is working correctly
{% tabs %} {% tab title="node.js" %} Run:
$ node index.js
If you did everything correctly should get a response like this:
{% code overflow="wrap" %}
200 {
id: 'm0rghxk55xfx',
url: 'https://gooey.ai/Lipsync/?run_id=m0rghxk55xfx&uid=fm165fOmucZlpa5YHupPBdcvDR02',
created_at: '2024-03-26T06:01:57.449762',
output: {
output_video: 'https://storage.googleapis.com/dara-c1b52.appspot.com/daras_ai/media/5abbbb76-eb36-11ee-8c54-02420a00014c/gooey.ai%20lipsync.mp4'
}
}
{% endcode %} {% endtab %}
{% tab title="python" %} Run:
$ python main.py
If you did everything correctly should get a response like this:
{% code overflow="wrap" %}
200 {'id': 'enqn22dnppiy', 'url': 'https://gooey.ai/Lipsync/?run_id=enqn22dnppiy&uid=fm165fOmucZlpa5YHupPBdcvDR02', 'created_at': '2024-03-26T06:39:44.768886', 'output': {'output_video': 'https://storage.googleapis.com/dara-c1b52.appspot.com/daras_ai/media/a227237e-eb3b-11ee-a294-02420a000146/gooey.ai%20lipsync.mp4'}}
{% endcode %} {% endtab %} {% endtabs %}