Embedfinder

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
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 }

json
{
  "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
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

WordPress connector

  1. Download embedfinder-conector.zip and install it in Plugins → Add new → Upload.
  2. Activate it. Under Settings → Embedfinder you get the site URL and a key.
  3. In /cuenta → Connectors, add a WordPress connector with those two values and press Test.
  4. 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):

php
$cuerpo = file_get_contents('php://input');
$firma  = $_SERVER['HTTP_X_EMBEDFINDER_SIGNATURE'] ?? '';
$ok     = hash_equals(hash_hmac('sha256', $cuerpo, $SECRETO), $firma);

Node:

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.