Documentación
API, conector WordPress y webhook. Todo del plan Premium.
API v1
Autenticá con tu clave de /cuenta en la cabecera Authorization. Mismos cupos que el sitio: cada ficha cuenta, 20 pedidos por minuto, hasta 8 URLs por pedido.
POST /api/v1/extraer
curl -X POST https://embedfinder.com/api/v1/extraer \
-H "Authorization: Bearer ef_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com/video/123/", "https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}'Respuesta: { "fichas": [Ficha, …], "restante": 9876 }
{
"url": "https://example.com/video/123/",
"titulo": "…", "descripcion": "…", "portada": "https://…/poster.jpg",
"generos": ["Comedy", "Drama"], "fecha": "2024-05-01T10:00:00Z", "duracion": 1432,
"servidores": [
{ "tipo": "iframe", "clase": "embed", "url": "https://streamtape.com/e/abc", "host": "streamtape.com" },
{ "tipo": "adentro","clase": "directo", "url": "https://cdn.example/v.mp4", "host": "cdn.example", "vence": false }
],
"fuente": "pagina", "avisos": []
}clase: embed reproductor conocido › directo archivo de video estable › player parece reproductor por la ruta › iframe host desconocido. El primer servidor es el mejor. vence: true significa que el link vence en horas.
POST /api/v1/listado
curl -X POST https://embedfinder.com/api/v1/listado \
-H "Authorization: Bearer ef_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/genre/comedy/"}'Respuesta: { "fichas": ["https://…", …], "siguiente": "https://…/page/21/" }. Hasta 20 páginas por pedido; mandá siguiente para seguir. Playlists y canales de YouTube también (50 por página).
Errores
401clave ausente o desconocida402cupo agotado (planSugerido)403el plan de la clave no tiene API422la URL no es un listado429demasiados pedidos por minuto (Retry-After: 60)
Conector WordPress
- Descargá embedfinder-conector.zip e instalalo en Plugins → Añadir nuevo → Subir.
- Activalo. En Ajustes → Embedfinder aparecen la URL del sitio y una clave.
- En
/cuenta→ Conectores, agregá un conector WordPress con esos dos datos y tocá Probar. - Después de cualquier extracción, usá Enviar a… → tu sitio. Las fichas llegan como borrador (o publicadas) con título, descripción, imagen destacada, géneros y los reproductores. Con DooPlay se crean como películas con los reproductores cargados.
El plugin nunca extrae ni llama afuera: solo recibe JSON en /wp-json/embedfinder/v1/recibir autenticado con la cabecera X-Embedfinder-Key.
Webhook
Agregá un conector webhook con tu URL. Te hacemos POST de { "fichas": [Ficha, …] } con la cabecera X-Embedfinder-Signature: HMAC-SHA256 (hex) del cuerpo crudo, con el secreto que se mostró una sola vez al crear el conector. Probar manda { "prueba": true }.
Verificar la firma (PHP):
$cuerpo = file_get_contents('php://input');
$firma = $_SERVER['HTTP_X_EMBEDFINDER_SIGNATURE'] ?? '';
$ok = hash_equals(hash_hmac('sha256', $cuerpo, $SECRETO), $firma);Node:
const firma = req.headers["x-embedfinder-signature"];
const esperada = crypto.createHmac("sha256", SECRETO).update(cuerpoCrudo).digest("hex");
const ok = firma === esperada;¿Perdiste el secreto? Borrá el conector y crealo de nuevo. Respondé 2xx dentro de los 15 segundos; reintentamos una vez si falla la conexión, nunca ante timeout.