Я хотел бы получить информацию о 5 последних видео, которые приходят с выбранных каналов YouTube. Я написал функцию, которая позволяет мне это делать, но у нее довольно много API-вызовов. Могу ли я сделать это лучше?
const { google } = require("googleapis");
const youtube = google.youtube({
version: "v3",
auth: "my API key"
});
const fetchVideos = async () => {
const channels = await youtube.channels.list({
part: "contentDetails",
id: "channel_1_id, channel_2_id, channel_3_id"
});
const playlistIds = channels.data.items.map(
channel => channel.contentDetails.relatedPlaylists.uploads
);
const playlistItemsPromiseArray = playlistIds.map(id =>
youtube.playlistItems.list({
part: "snippet",
playlistId: id
})
);
const playlistItems = await Promise.all(playlistItemsPromiseArray);
const videos = playlistItems
.reduce((prev, curr) => [...prev, ...curr.data.items], [])
.sort(
(a, b) =>
new Date(b.snippet.publishedAt) - new Date(a.snippet.publishedAt)
)
.slice(0, 5);
return videos;
}