# EasyDebrid Integration

EasyDebrid is a debrid service with a simpler API than Real-Debrid. Found through STRMR APK reverse engineering.

## API Base URL

```
https://easydebrid.com/api/
```

Auth: `Authorization: Bearer <apiKey>` header

## Key Endpoints

### Check Cache (Batch)

```
POST v1/link/lookupdetails
Body: {
  "magnet": [
    "magnet:?xt=urn:btih:HASH1&dn=name",
    "magnet:?xt=urn:btih:HASH2&dn=name"
  ]
}
Response: {
  "data": {
    "magnet:?xt=urn:btih:HASH1...": {
      "status": "cached" | "uncached",
      "filenames": [
        { "filename": "movie.mkv", "size": 12345 },
        ...
      ]
    },
    ...
  }
}
```

### Generate Direct Link

```
POST v1/link/generate
Body: {
  "magnet": "magnet:?xt=urn:btih:HASH&dn=name"
}
Response: {
  "data": {
    "download_url": "https://cdn.easydebrid.com/..."
  }
}
```

### User Info

```
GET v1/user/details
Response: {
  "data": {
    "username": "...",
    "email": "...",
    "premium": true,
    "expires_at": "..."
  }
}
```

## Differences from Real-Debrid

| Aspect | Real-Debrid | EasyDebrid |
|--------|-------------|------------|
| Auth | `Authorization: Bearer KEY` | Same |
| Cache check | Add magnet + check status (3-step) | **Batch POST** with magnets (1-step) |
| File selection | `selectFiles` + `unrestrict` (2-step) | **Direct link** from magnet (1-step) |
| Rate limits | 60/min | Unknown |
| `instantAvailability` | **Deprecated** (error 37) | N/A (never had it) |

EasyDebrid's batch lookup is significantly simpler than RD's addMagnet→info→delete flow. If a user has EasyDebrid, prefer it over RD for cache checking.

## STRMR Implementation Patterns

From the decompiled STRMR APK (`/home/rurouni/apk-analysis/scraper-engine/strmr/debrid/`):

- `EasyDebridLookupRequest` — wraps a list of magnet URIs
- `EasyDebridLookupResponse` — maps each magnet URI to `{ status, filenames[{filename, size}] }`
- `EasyDebridGenerateRequest` — wraps a single magnet URI
- `EasyDebridGenerateResponse` — returns `{ download_url, filename, size }`
- File selection logic: filter to video extensions (`.mkv`, `.mp4`, `.avi`, `.mov`, `.wmv`, `.m4v`, `.webm`), prefer largest file, match by season/episode filename for TV
