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

# Casos de uso

> Padrões reais de integração com a Shappire Media API

## Bot de Telegram / Discord

1. Usuário envia link no chat
2. Backend resolve metadados e mostra preview (título + thumbnail)
3. Usuário confirma → enfileira download
4. Bot envia arquivo quando `status: completed`

```javascript theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
// Pseudo-fluxo
const media = await resolveMedia(userUrl);
await bot.sendPhoto(chatId, media.thumbnail, { caption: media.title });
const jobId = await enqueueDownload(media.id, 'video_best');
const job = await waitForJob(jobId);
await bot.sendDocument(chatId, job.result.download_url);
```

## SaaS de clipping

* Resolve URL do creator
* Lista formatos para o usuário escolher qualidade
* Download assíncrono em worker separado
* Armazena no S3/R2 antes de `expires_at`

## Agregador de conteúdo

* Cron diário busca URLs de um feed
* Resolve em batch (respeite rate limit: 60/min)
* Enfileira apenas URLs novas
* Persiste `media_id` + `job_id` no banco

## App mobile (via backend)

```
Mobile App → seu API Gateway → Shappire API
```

Nunca chame a Shappire direto do app — use seu backend como proxy.

## Pipeline de áudio

1. Resolve URL de podcast / SoundCloud / Vimeo
2. Download com `format: audio_best`
3. Transcreve ou processa o arquivo localmente

Veja [Extrair áudio](/tutorials/extrair-audio).

## Monitoramento de jobs

| Status              | Ação recomendada                                 |
| ------------------- | ------------------------------------------------ |
| `queued`            | Aguardar — worker ocupado                        |
| `processing`        | Polling a cada 3–5 s                             |
| `completed`         | Baixar `download_url` imediatamente              |
| `failed`            | Logar `error.code` e reenfileirar se transitório |
| `404 job_not_found` | Job expirou — novo resolve + download            |

## Limites a considerar

| Limite           | Valor             |
| ---------------- | ----------------- |
| Req/min          | 60 por API key    |
| Req/dia          | 1.000 por projeto |
| Jobs simultâneos | 2 por projeto     |

Planeje filas (Redis, SQS, BullMQ) para não estourar concorrência.
