Spaces:
Sleeping
Sleeping
UI: Improve JS for API link, add YouTube note
Browse files
app.py
CHANGED
@@ -285,6 +285,7 @@ with gr.Blocks() as app:
|
|
285 |
gr.Markdown("### Use this endpoint from another application (e.g., another Hugging Face Space).")
|
286 |
gr.Markdown("The `process_video_input` function is exposed here.")
|
287 |
api_interface.render()
|
|
|
288 |
|
289 |
with gr.Tab("Demo (for Manual Testing)"):
|
290 |
gr.Markdown("### Manually test video URLs or paths and observe the response.")
|
@@ -296,26 +297,46 @@ if __name__ == "__main__":
|
|
296 |
# This attempts to change the text a few times in case Gradio renders elements late.
|
297 |
js_code = """
|
298 |
(function() {
|
|
|
299 |
function attemptChangeApiLinkText() {
|
300 |
-
const links = document.querySelectorAll('a');
|
301 |
-
let
|
|
|
302 |
for (let i = 0; i < links.length; i++) {
|
303 |
-
|
304 |
-
if (
|
305 |
links[i].textContent = 'Use as an MCP or via API';
|
306 |
-
changed
|
307 |
-
|
308 |
-
|
309 |
}
|
310 |
}
|
311 |
-
return
|
312 |
}
|
313 |
|
314 |
let attempts = 0;
|
315 |
-
const maxAttempts =
|
|
|
316 |
const intervalId = setInterval(() => {
|
|
|
|
|
|
|
|
|
317 |
if (attemptChangeApiLinkText() || attempts >= maxAttempts) {
|
318 |
clearInterval(intervalId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
319 |
}
|
320 |
attempts++;
|
321 |
}, 100);
|
|
|
285 |
gr.Markdown("### Use this endpoint from another application (e.g., another Hugging Face Space).")
|
286 |
gr.Markdown("The `process_video_input` function is exposed here.")
|
287 |
api_interface.render()
|
288 |
+
gr.Markdown("**Note:** Some YouTube videos may fail to download if they require login or cookie authentication due to YouTube's restrictions. Direct video links are generally more reliable for automated processing.")
|
289 |
|
290 |
with gr.Tab("Demo (for Manual Testing)"):
|
291 |
gr.Markdown("### Manually test video URLs or paths and observe the response.")
|
|
|
297 |
# This attempts to change the text a few times in case Gradio renders elements late.
|
298 |
js_code = """
|
299 |
(function() {
|
300 |
+
console.log('[MCP Script] Initializing script to change API link text...');
|
301 |
function attemptChangeApiLinkText() {
|
302 |
+
const links = document.querySelectorAll('a');
|
303 |
+
let foundAndChanged = false;
|
304 |
+
// console.log('[MCP Script] Found ' + links.length + ' anchor tags on this attempt.'); // Can be too verbose for interval
|
305 |
for (let i = 0; i < links.length; i++) {
|
306 |
+
const linkText = links[i].textContent ? links[i].textContent.trim() : '';
|
307 |
+
if (linkText === 'Use via API') {
|
308 |
links[i].textContent = 'Use as an MCP or via API';
|
309 |
+
console.log('[MCP Script] Successfully changed \"Use via API\" link text.');
|
310 |
+
foundAndChanged = true;
|
311 |
+
break;
|
312 |
}
|
313 |
}
|
314 |
+
return foundAndChanged;
|
315 |
}
|
316 |
|
317 |
let attempts = 0;
|
318 |
+
const maxAttempts = 50; // Try for up to 5 seconds (50 * 100ms)
|
319 |
+
let initialScanDone = false;
|
320 |
const intervalId = setInterval(() => {
|
321 |
+
if (!initialScanDone && attempts === 0) {
|
322 |
+
console.log('[MCP Script] Performing initial scan for API link text.');
|
323 |
+
initialScanDone = true;
|
324 |
+
}
|
325 |
if (attemptChangeApiLinkText() || attempts >= maxAttempts) {
|
326 |
clearInterval(intervalId);
|
327 |
+
if (attempts >= maxAttempts && !foundAndChanged) {
|
328 |
+
// Check if the link was ever found and changed by a concurrent script or if it's truly not there
|
329 |
+
let stillNotFound = true;
|
330 |
+
const finalLinks = document.querySelectorAll('a');
|
331 |
+
for (let i = 0; i < finalLinks.length; i++) {
|
332 |
+
if (finalLinks[i].textContent && finalLinks[i].textContent.trim() === 'Use as an MCP or via API') {
|
333 |
+
stillNotFound = false; break;
|
334 |
+
}
|
335 |
+
}
|
336 |
+
if (stillNotFound) {
|
337 |
+
console.log('[MCP Script] Max attempts reached. \"Use via API\" link was not found or changed. It might not be rendered or has a different text.');
|
338 |
+
}
|
339 |
+
}
|
340 |
}
|
341 |
attempts++;
|
342 |
}, 100);
|