Посоветуйте API с рандомными совами

Единственный API, который я нашёл, это http://pics.floofybot.moe/owl. Он мне не подходит так как использовать я его хочу для discord.js. После некоторой проверки оказалось, что иногда он даёт ссылки, явно не подходящие для setImage().

введите сюда описание изображения

+я заметил, что там не особо много самих картинок. Они часто повторяются, что... печалит?)

В общем, если что-то знаете по этому поводу, помогите пожалуйста...


Ответы (2 шт):

Автор решения: wylite

Лично я использую либу axios для того, чтобы уже из апи использовать изображение в setImage() (Может мой ответ не очень полезен, но просто совет)

→ Ссылка
Автор решения: Dev18

Я предложу вариант PIXABAY - он бесплатный (и не требует атрибуции, но всё же упоминание приветсвуется), выдаёт прямые ссылки на изображения (подходит для setImage() в Discord.js) и там полно сов ?

import { Client, GatewayIntentBits, EmbedBuilder } from "discord.js";
import fetch from "node-fetch";

const TOKEN = ""; //тут токен бота дискорд
const PIXABAY_KEY = ""; //тут ключ с https://pixabay.com/api/docs/

const client = new Client({
  intents: [GatewayIntentBits.Guilds,
            GatewayIntentBits.GuildMessages,
            GatewayIntentBits.MessageContent],
});

client.once("clientReady", () => {
  console.log(`✅ Бот ${client.user.tag} запущен!`);
});

client.on("messageCreate", async (msg) => {
  if (msg.author.bot) return;
  if (msg.content === "!owl") {
    const res = await fetch(
      `https://pixabay.com/api/?key=${PIXABAY_KEY}`+
      `&q=owl&image_type=photo&category=animals&per_page=50`);
    const data = await res.json();
    const hits = data.hits;
    const random = hits[Math.floor(Math.random() * hits.length)];

    const embed = new EmbedBuilder()
      .setTitle("? Случайная сова")
      .setImage(random.largeImageURL)
      .setColor("Random");

    msg.channel.send({ embeds: [embed] });
  }
});

client.login(TOKEN);

введите сюда описание изображения


GIPHY конечно меньше сов предложил, но .gif формат, поэтому оставлю тут информацию по этому API - он также бесплатный (но с ограничением по количеству запросов и обязательной атрибуцией)

https://api.giphy.com/v1/gifs/search?api_key=${GIPHY_KEY}&q=owl&limit=50&rating=g

введите сюда описание изображения

→ Ссылка