Pular para o conteúdo principal
Há alguns conceitos importantes para entender ao usar o endpoint POST /2/media/upload. O upload de mídia com OAuth pode ser um pouco complexo, então destacamos alguns pontos a serem considerados, além de um exemplo funcional de como usar este endpoint aqui.

Tenha em mente

  • Você pode anexar até 4 fotos, 1 GIF animado ou 1 vídeo em um Post.
  • A imagem enviada deve ser o binário bruto da imagem ou o binário codificado em base64; não é necessário codificar ou escapar o conteúdo de outra forma, desde que o Content-Type esteja definido adequadamente (em caso de dúvida: application/octet-stream).
  • Ao enviar imagens codificadas em base64, certifique-se de definir “Content-Transfer-Encoding: base64” na parte da imagem da mensagem.
  • As delimitações (boundaries) de mensagens multipart devem estar em sua própria linha e terminar com CRLF.
  • Para exemplos práticos de como fazer POST usando este endpoint, recomendamos testar com o xurl. Além disso, consulte as X Libraries disponíveis.
  • Use o media_id_string fornecido na resposta da API para JavaScript e quaisquer outras linguagens que não conseguem representar com precisão um inteiro longo.

Categorias de mídia

O parâmetro Media Category define o caso de uso do arquivo de mídia a ser carregado e pode afetar os limites de tamanho de arquivo ou outras restrições aplicadas aos envios de mídia. É importante usar a categoria de mídia correta ao fazer upload de mídias para evitar problemas ao tentar utilizá-las. Trata-se de um valor opcional enviado na solicitação INIT como parte do fluxo de upload. Se a categoria de mídia não for especificada, presume-se que a mídia enviada seja para um Post (tweet_image, tweet_video ou tweet_gif), dependendo do tipo de conteúdo. As categorias de mídia mais comuns são as seguintes:
  • tweet_image
  • tweet_video
  • tweet_gif
  • dm_image
  • dm_video
  • dm_gif
  • subtitles
Se você for um parceiro da X Ads API, consulte esta documentação para mais informações sobre a categoria de mídia recomendada para vídeo promovido.

Especificações e recomendações de imagem

Os arquivos de imagem devem atender a todos os seguintes critérios:
  • Tipos de mídia de imagem compatíveis: JPG, PNG, GIF, WEBP
  • Tamanho da imagem: <= 5 MB
  • Tamanho de GIF animado: <= 15 MB
O limite de tamanho de arquivo acima é aplicado pelo endpoint de upload de mídia. Além disso, há um limite de tamanho de arquivo específico do produto que é aplicado ao chamar os endpoints de criação de Post (ou similares) com media_id. O limite de tamanho de arquivo e outras restrições podem variar de acordo com o parâmetro media_category.

Recomendações para GIFs animados

Um GIF pode falhar durante a criação de um Post mesmo estando dentro do limite de tamanho do arquivo. Siga as restrições abaixo para aumentar as chances de sucesso.
  • Resolução: <= 1280x1080 (width x height)
  • Número de quadros: <= 350
  • Número de pixels: <= 300 million (width * height * num_frames)
  • Tamanho do arquivo: <= 15MB
Para processar GIFs maiores, use o endpoint de upload segmentado com o parâmetro media_category. Isso permite que o servidor processe o arquivo GIF de forma assíncrona, o que é necessário para o processamento de arquivos maiores. Passe media_category=tweet_gif para habilitar o comportamento de upload assíncrono para Posts com um GIF animado.

Especificações e recomendações de vídeo

Use o caminho assíncrono para uploads de mídia.
  • Codec de vídeo: H264 High Profile
  • Taxas de quadros: 30 FPS, 60 FPS
  • Resolução de vídeo: 1280x720 (paisagem), 720x1280 (retrato), 720x720 (quadrado). Usuários assinantes podem enviar vídeo em 1080p e obter reprodução em 1080p. Usuários não assinantes podem enviar vídeo em 720p e obter reprodução em 720p.
  • Taxa de bits mínima de vídeo: 5.000 kbps
  • Taxa de bits mínima de áudio: 128 kbps
  • Codec de áudio: AAC LC
  • Proporção de aspecto: 16:9 (paisagem ou retrato), 1:1 (quadrado)

Avançado

  • Taxa de quadros: deve ser de 60 FPS ou menos
  • Dimensões: devem estar entre 32x32 e 1280x1024
  • Tamanho do arquivo: não deve exceder 512 MB
  • Duração: deve estar entre 0,5 segundos e 140 segundos
  • Proporção de aspecto: deve estar entre 1:3 e 3:1
  • Proporção de aspecto de pixel: deve ser 1:1
  • Formato de pixel: apenas YUV 4:2:0 é compatível
  • O áudio deve ser AAC com perfil de baixa complexidade. (AAC de alta eficiência não é compatível)
  • O áudio deve ser mono ou stereo, não 5.1 ou superior
  • Não deve ter open GOP
  • Deve usar progressive scan

Informações adicionais

Na tabela abaixo, cada linha representa uma recomendação de envio, não um requisito. Todos os envios são processados para otimização em várias plataformas.
OrientaçãoLarguraAlturaTaxa de bits de vídeoTaxa de bits de áudio
Paisagem12807202048K128K
Paisagem640360768K64K
Paisagem320180256K64K
Retrato72012802048K128K
Retrato360640768K64K
Retrato180320256K64K
Quadrado7207202048K128K
Quadrado480480768K64K
Quadrado240240256K32K
Para um exemplo de como enviar mídia, consulte a documentação de envio de mídia em partes.

Solução de problemas

Para problemas com as Media APIs, consulte a categoria Media API nos fóruns de desenvolvedores para encontrar uma resposta.
I