> ## Documentation Index
> Fetch the complete documentation index at: https://webscraping.titannet.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Example: media-aware scraping task

> This example shows a task that returns both structured fields and media references.

## Scenario

You want to scrape product data and also retain a product image that should remain available through Titan-managed URLs.

## Media flow

```mermaid theme={null}
sequenceDiagram
    participant Worker
    participant Ingestion
    participant Storage as Object Storage
    participant TaskService as Task Service
    Worker->>Ingestion: Upload media
    Ingestion->>Storage: Store binary
    Ingestion->>TaskService: Commit media URL
    TaskService-->>User: Stable media URL in result
```

## Example output schema

```json theme={null}
{
  "type": "object",
  "properties": {
    "product_name": { "type": "string" },
    "price": { "type": "string" },
    "image_url": { "type": "string", "format": "media" }
  }
}
```

## What the output looks like conceptually

| Field type           | Returned as            |
| -------------------- | ---------------------- |
| Regular scalar field | Normal JSON value      |
| Media field          | Stable Titan media URL |

## Recommended client pattern

1. Export the structured result
2. Keep media URLs in the exported payload
3. Resolve media only in the application layer that needs the asset

This avoids mixing binary transport into your main structured data pipeline.

## Why this model is useful

Titan's media flow keeps:

* Scraping output structured
* Access control centralized
* Object storage details out of user-facing payloads

## Next steps

* [Download results and access media](/use-the-platform/download-results-and-access-media)
* [Datasets and media](/about-platform/datasets-and-media)
* [How workers return data to the platform](/worker-guides/how-workers-return-data-to-the-platform)
