Docs
API, WordPress connector and webhook. All Premium.
API v1
Authenticate with your key from /cuenta in the Authorization. Same quotas as the site: each entry counts, 20 requests per minute, up to 8 URLs per request.
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"]}'Response: { "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 known player › directo stable video file › player looks like a player by its path › iframe unknown host. The first server is the best one. vence: true means the link expires in hours.
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/"}'Response: { "fichas": ["https://…", …], "siguiente": "https://…/page/21/" }. Up to 20 pages per request; paste siguiente to continue. YouTube playlists and channels work too (50 per page).
Errors
401missing or unknown key402quota exhausted (planSugerido)403the key's plan has no API access422the URL is not a listing429too many requests per minute (Retry-After: 60)
WordPress connector
- Download embedfinder-conector.zip and install it in Plugins → Add new → Upload.
- Activate it. Under Settings → Embedfinder you get the site URL and a key.
- In
/cuenta→ Connectors, add a WordPress connector with those two values and press Test. - After any extraction, use Send to… → your site. Entries arrive as drafts (or published) with title, description, featured image, genres and the players. With DooPlay they are created as movies with the players filled in.
The plugin never extracts or calls out: it only receives JSON on /wp-json/embedfinder/v1/recibir authenticated with the X-Embedfinder-Key.
Webhook
Add a webhook connector with your URL. We POST { "fichas": [Ficha, …] } with the header X-Embedfinder-Signature: HMAC-SHA256 (hex) of the raw body, keyed with the secret shown once when you created the connector. Test sends { "prueba": true }.
Verify the signature (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;Lost the secret? Delete the connector and create it again. Respond 2xx within 15 seconds; we retry once on connection failure, never on timeout.