# Build with MediaFilez

Choose the hosted API, a standalone worker, or a local application.

MediaFilez downloads public video, images, albums, and audio. Choose the part that fits your project. You do not need to run every component.

## Choose your path

| You want to                                 | Start with                                                             | Runs where                        |
| ------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------- |
| Add downloads to a bot, website, or backend | [First API download](/docs/en/quickstart)                              | Your backend calls the hosted API |
| Run your own media processing               | [Worker overview](/docs/en/worker/overview)                            | Your server or Node.js process    |
| Save media on a Windows PC                  | [Desktop app](/docs/en/desktop/overview)                               | On the user's device              |
| Inspect a direct media URL                  | [MediaAnalyzer](/docs/en/analyzer/overview)                            | Java command line                 |
| Download without building an integration    | [Web downloader](/docs/en/download) or [Discord bot](/docs/en/discord) | Browser or Discord                |

## How the hosted service works

```mermaid
sequenceDiagram
    accTitle: Hosted download lifecycle
    accDescr: A backend submits a job, the worker processes it, and file lookup returns a storage URL.
    participant Client as Your backend
    participant API as MediaFilez API
    participant Queue as Queue and worker
    participant Store as Storage
    Client->>API: POST /media/download + API key
    API-->>Client: 202 + job.id
    API->>Queue: Dispatch persistent job
    Queue->>Queue: Download, validate, process
    Queue->>Store: Commit every result file
    Queue-->>API: Completion and file identities
    Client->>API: GET /jobs/:id
    API-->>Client: completed + result.files
    Client->>API: GET /files/:fileId + API key
    API-->>Client: file.url
    Client->>Store: Fetch URL without the API key
    Store-->>Client: File bytes
```

The API authenticates the caller and tracks work. The worker downloads and checks the media, processes it when requested, and stores the result. Your application asks the API for a download URL when the job finishes.

A `202 Accepted` response means the job was accepted. It does not mean the source has been downloaded successfully.

## Find the right documentation

- **Guides** explain complete tasks and common failure cases.
- **API reference** lists methods, authentication, request bodies, and response fields.
- **Worker**, **Desktop**, and **MediaAnalyzer** cover those projects separately.
- **Changelog** links to verified releases and explains compatibility.

Use search or press `Ctrl+K` (`⌘K` on macOS). Every code block has a copy button. The page menu also provides the original Markdown.

> Use media you have permission to download. Source sites can refuse access or change their behavior; a recognized platform is not a guarantee that a particular link will work.

Questions about access? Contact [partner@mediafilez.online](mailto:partner@mediafilez.online). For help with an existing integration, use [support@mediafilez.online](mailto:support@mediafilez.online).
