Spaces:
Paused
Paused
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>AI DUB API Client</title> | |
| <link rel="stylesheet" href="/static/styles.css"> | |
| <script> | |
| async function sendApiRequest() { | |
| const apiKey = document.getElementById("api_key").value; | |
| const videoFile = document.getElementById("video").files[0]; | |
| const targetLanguage = document.getElementById("target_language").value; | |
| if (!apiKey || !videoFile || !targetLanguage) { | |
| alert("Please fill in all fields!"); | |
| return; | |
| } | |
| const formData = new FormData(); | |
| formData.append("video", videoFile); | |
| formData.append("target_language", targetLanguage); | |
| const progressContainer = document.getElementById("progress-container"); | |
| const progressBar = document.getElementById("progress-bar"); | |
| const progressText = document.getElementById("progress-text"); | |
| const output = document.getElementById("output"); | |
| progressContainer.style.display = "block"; | |
| progressText.textContent = "Uploading..."; | |
| progressBar.value = 0; | |
| try { | |
| // Odeslání požadavku na server | |
| const response = await fetch("http://172.25.158.208:5000/process_video", { | |
| method: "POST", | |
| headers: { | |
| "Authorization": `Bearer ${apiKey}` | |
| }, | |
| body: formData, | |
| }); | |
| progressText.textContent = "Processing..."; | |
| // Přečtení odpovědi | |
| const result = await response.json(); | |
| if (response.ok && result.status === "success") { | |
| progressText.textContent = "Completed!"; | |
| progressBar.value = 100; | |
| output.textContent = `Success! File saved at: ${result.result}`; | |
| } else { | |
| progressText.textContent = "Error!"; | |
| output.textContent = `Error: ${result.message}`; | |
| } | |
| } catch (error) { | |
| progressText.textContent = "Failed!"; | |
| output.textContent = `Error: ${error.message}`; | |
| } finally { | |
| // Skrytí progress baru po dokončení | |
| setTimeout(() => { | |
| progressContainer.style.display = "none"; | |
| }, 3000); | |
| } | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <h1>AI DUB API Client</h1> | |
| <form onsubmit="event.preventDefault(); sendApiRequest();"> | |
| <label for="api_key">API Key:</label> | |
| <input type="text" id="api_key" placeholder="Enter your API Key" required><br><br> | |
| <label for="video">Upload Video:</label> | |
| <input type="file" id="video" name="video" accept="video/*" required><br><br> | |
| <label for="target_language">Target Language:</label> | |
| <select id="target_language" name="target_language" required> | |
| <option value="Czech (cs)">Czech</option> | |
| <option value="English (en)">English</option> | |
| <option value="Spanish (es)">Spanish</option> | |
| </select><br><br> | |
| <button type="submit">Process</button> | |
| </form> | |
| <div id="output"></div> | |
| <div id="progress-container" style="display: none;"> | |
| <p id="progress-text">Processing...</p> | |
| <progress id="progress-bar" value="0" max="100" style="width: 100%;"></progress> | |
| </div> | |
| </body> | |
| </html> | |