Capturas
As capturas do dono.
Publicar uma é o único lugar em que esta API recebe um formulário em vez de JSON, porque uma imagem são bytes.
Cada captura tem duas imagens: image_url, a inteira, para quem abre a captura, e thumbnail_url, um WebP de até 640 pixels de largura com thumbnail_width e thumbnail_height, para grades e cartões. Uma captura publicada antes das miniaturas, ou cuja miniatura não pôde ser feita, tem esses três campos null: mostre image_url.
/api/ v1/ screenshots/ {id}Uma captura visível e seu autor. Capturas removidas não aparecem. Traz a miniatura como a listagem do dono: thumbnail_url, thumbnail_width e thumbnail_height, ou null.
/api/ v1/ screenshotsAs capturas do dono, mais recentes primeiro. As removidas ficam de fora. Cada uma traz image_url, a imagem inteira, e thumbnail_url com thumbnail_width e thumbnail_height: uma miniatura WebP de até 640 pixels de largura para grades e cartões, ou null numa captura que ainda não tem uma, e então use image_url.
/api/ v1/ screenshotsPublica uma imagem, como multipart/form-data e não JSON. Ela é reduzida para caber em 1920 por 1080, nunca ampliada, e guardada como um AVIF de cerca de 650 KB; uma que passe de 2 MB mesmo assim é recusada. Ao lado vai uma miniatura WebP de até 640 pixels de largura. Responde 201 com a captura, inclusive thumbnail_url, thumbnail_width e thumbnail_height, que são null quando a miniatura não pôde ser feita: a captura é publicada assim mesmo. Uma conta pode publicar vinte por hora, contadas à parte da cota da chave, porque imagem custa armazenamento e não uma linha.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
imageobrigatório | file | JPEG, PNG, WebP, GIF ou AVIF, até 15 MB e 40 milhões de pixels, com o conteúdo do tipo enviado. Uma imagem animada é recusada. |
igdb_idobrigatório | integer | O id do jogo no catálogo. |
game_slugobrigatório | string | O slug do jogo. |
description | string | Até 2200 caracteres. |
visibility | string | PUBLIC, FOLLOWERS ou PRIVATE. |
contains_spoilers | string | Campos de formulário são texto, então aqui vai a palavra "true" e não um booleano. |
sensitive | string | Também a palavra "true". |
Exemplo
curl https://uloggd.com/api/v1/screenshots \
-H "Authorization: Bearer ulg_live_..." \
-F [email protected] \
-F igdb_id=14593 \
-F game_slug=hollow-knight \
-F "description=The first time the city opens up"/api/ v1/ screenshots/ {id}Altera a descrição, os avisos, a visibilidade ou comments_scope. A imagem em si não muda: para trocá-la, publique outra e remova esta.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
description | string | Até 2200 caracteres. |
contains_spoilers | boolean | Aqui é JSON, então é um booleano de verdade. |
sensitive | boolean | Aqui é JSON, então é um booleano de verdade. |
visibility | string | PUBLIC, FOLLOWERS ou PRIVATE. |
/api/ v1/ screenshots/ {id}Remove uma imagem, da listagem e do serviço onde ela estava hospedada.