From b55898205031a387fb67a58a30aee2f495c90a71 Mon Sep 17 00:00:00 2001 From: localhost Date: Wed, 12 Nov 2025 15:40:58 +0100 Subject: [PATCH] change to new companion data format --- bun.lockb | Bin 52131 -> 53568 bytes package.json | 2 +- src/utils/common.ts | 12 ++++++------ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bun.lockb b/bun.lockb index 8929e42552e10a1050cdd3136ecb5d5233a2020b..62e448dc793cd9c86397619701b6c2ae1bf56eae 100755 GIT binary patch delta 8353 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 diff --git a/package.json b/package.json index b99b926..e0758b4 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "bun run --watch src/index.ts" }, "devDependencies": { - "@types/bun": "latest" + "@types/bun": "^1.3.1" }, "peerDependencies": { "typescript": "^5.0.0" diff --git a/src/utils/common.ts b/src/utils/common.ts index 5a0a963..403dbbf 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -53,23 +53,23 @@ async function checkCaptcha(response: string) { async function createDatabaseVideo(id: string, videoUrl: string) { const data = await getVideo(id) - const channelData = await getChannel(data.basic_info.channel_id) + const channelData = await getChannel(data.videoDetails.channelId) if (data.error) return data if (channelData.error) return channelData - const uploaderAvatar = await uploadImage(data.basic_info.channel_id, channelData.metadata.thumbnail[0].url) - const thumbnailUrl = await uploadImage(id, data.basic_info.thumbnail[0].url) + const uploaderAvatar = await uploadImage(data.videoDetails.channelId, channelData.metadata.thumbnail[0].url) + const thumbnailUrl = await uploadImage(id, data.videoDetails.thumbnail.thumbnails[0].url) await db.insertInto('videos') .values({ uuid: crypto.randomUUID(), id: id, - title: data.basic_info.title, - description: (data.basic_info.short_description).replaceAll('\n', '
'), + title: data.videoDetails.title, + description: (data.videoDetails.short_description).replaceAll('\n', '
'), thumbnail: thumbnailUrl, source: videoUrl, - published: (data.primary_info.published.text.endsWith('ago') ? convertRelativeToDate(data.primary_info.published.text) : new Date(data.primary_info.published.text)).toISOString().slice(0, 10), + published: data.microformat.playerMicroformatRenderer.publishDate.slice(0, 10), archived: (new Date()).toISOString().slice(0, 10), channel: channelData.metadata.title, channelId: channelData.metadata.external_id,