AI Music Video Visualizer

Create captivating music video visualizers for any song using AI. Transform lyrics into stunning visuals perfect for YouTube videos.

 1import requests
 2import time
 3import json
 4
 5api_key = "YOUR_API_KEY"
 6url = "https://api.segmind.com/workflows/6822cd912a362087d198f2aa-v1"
 7
 8data = {
 9    "song_lyrics": "Inside it feels like I've been barely breathing\nFeels like air is running out\nInside I'm stuck here staring at a ceiling\nYou put up to keep me down, down, down, down, down\n\nWaking up without a name\nOpening my eyes\nKnowing nothing is the same\nCircling around a drain\nAs I realize that there's no one else to blame\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nI try escaping, but there's nowhere to go\nStaring up from the bottom, up from the bottom\n\nEach time I hold my fist inside my pocket\nHold my breath until I'm blue\nFeels like a knife pushed deep inside a socket\nBristling, listening to you, you, you, you, you\n\nWaking up without a name\nOpening my eyes\nKnowing nothing's gonna change\nCircling around a drain\nAs I realize that there's no one else to blame\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nTry escaping, but there's nowhere to go\nStaring up from the bottom, up from the bottom\n\nEverybody out, that devil is coming\nPoison on his lips, and his words mean nothing\nCruel like a mountaintop, father never loved him\nMama said he's bad enough times that it sunk in\nEverybody out, that devil is coming\nPromise you the world, but he's always bluffing\nBefore you even know it's a trap you're stuck in\nHe's gone like a ghost, already off running\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nI try escaping, but there's nowhere to go\nStaring up from the bottom, gotta get out of here\nUp from the bottom, gotta get out of here"
10}
11
12def poll_for_result(poll_url):
13    """Poll the API until the generation is complete"""
14    while True:
15        response = requests.get(
16            poll_url,
17            headers={'Authorization': f'Bearer {api_key}'}
18        )
19        result = response.json()
20
21        if result['status'] == 'COMPLETED':
22            # Parse the output (it's a JSON string)
23            outputs = json.loads(result['output'])
24            return outputs
25        elif result['status'] == 'FAILED':
26            raise Exception(result.get('error', 'Generation failed'))
27
28        # Wait 7 seconds before polling again
29        time.sleep(7)
30
31# Make the initial request
32response = requests.post(
33    url,
34    json=data,
35    headers={
36        'Authorization': f'Bearer {api_key}',
37        'Content-Type': 'application/json'
38    }
39)
40
41if response.status_code == 200:
42    result = response.json()
43    print('Request queued:', result)
44
45    # Start polling for results
46    outputs = poll_for_result(result['poll_url'])
47    print('Generation complete:', outputs)
48else:
49    print(f"Error: {response.status_code}")
50    print(response.text)

API Endpoint

POSThttps://api.segmind.com/workflows/6822cd912a362087d198f2aa-v1

Parameters

song_lyricsoptional
string

Song Lyrics

Default: "Inside it feels like I've been barely breathing\nFeels like air is running out\nInside I'm stuck here staring at a ceiling\nYou put up to keep me down, down, down, down, down\n\nWaking up without a name\nOpening my eyes\nKnowing nothing is the same\nCircling around a drain\nAs I realize that there's no one else to blame\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nI try escaping, but there's nowhere to go\nStaring up from the bottom, up from the bottom\n\nEach time I hold my fist inside my pocket\nHold my breath until I'm blue\nFeels like a knife pushed deep inside a socket\nBristling, listening to you, you, you, you, you\n\nWaking up without a name\nOpening my eyes\nKnowing nothing's gonna change\nCircling around a drain\nAs I realize that there's no one else to blame\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nTry escaping, but there's nowhere to go\nStaring up from the bottom, up from the bottom\n\nEverybody out, that devil is coming\nPoison on his lips, and his words mean nothing\nCruel like a mountaintop, father never loved him\nMama said he's bad enough times that it sunk in\nEverybody out, that devil is coming\nPromise you the world, but he's always bluffing\nBefore you even know it's a trap you're stuck in\nHe's gone like a ghost, already off running\n\nYou keep me waiting, down here, so far below\nStaring up from the bottom, up from the bottom\nI try escaping, but there's nowhere to go\nStaring up from the bottom, gotta get out of here\nUp from the bottom, gotta get out of here"

Response Format

Returns: Polling-based asynchronous response

Initial request returns a poll_url. Poll every 7 seconds until status is COMPLETED.

Common Error Codes

The API returns standard HTTP status codes. Detailed error messages are provided in the response body.

400

Bad Request

Invalid parameters or request format

401

Unauthorized

Missing or invalid API key

403

Forbidden

Insufficient permissions

404

Not Found

Workflow not found

406

Insufficient Credits

Not enough credits to process request

429

Rate Limited

Too many requests

500

Server Error

Internal server error

502

Bad Gateway

Service temporarily unavailable

504

Timeout

Request timed out