From b034fc94bedf9056149883b81c43ba20e05432e7 Mon Sep 17 00:00:00 2001 From: "rexarrior@yandex.ru" Date: Sat, 8 Aug 2026 20:25:27 +0300 Subject: [PATCH] api/vk: handle clips without titles --- api/src/processing/services/vk.js | 8 +++++--- api/src/util/tests/vk.json | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/api/src/processing/services/vk.js b/api/src/processing/services/vk.js index 4e2d8548..67c91802 100644 --- a/api/src/processing/services/vk.js +++ b/api/src/processing/services/vk.js @@ -125,9 +125,11 @@ export default async function ({ ownerId, videoId, accessKey, quality, subtitleL if (!url) return { error: "fetch.fail" }; - const fileMetadata = { - title: video.title.trim(), - } + const title = video.title?.trim() + || video.description?.trim().split(/\r?\n/, 1)[0] + || `vk_${ownerId}_${videoId}`; + + const fileMetadata = { title } let subtitles; if (subtitleLang && video.subtitles?.length) { diff --git a/api/src/util/tests/vk.json b/api/src/util/tests/vk.json index 71720af5..4d9ac5a6 100644 --- a/api/src/util/tests/vk.json +++ b/api/src/util/tests/vk.json @@ -30,6 +30,24 @@ "status": "tunnel" } }, + { + "name": "clip without title", + "url": "https://vk.com/clip-227182972_456239182", + "params": {}, + "expected": { + "code": 200, + "status": "tunnel" + } + }, + { + "name": "clip without title or description", + "url": "https://vk.com/clip-219815090_456243369", + "params": {}, + "expected": { + "code": 200, + "status": "tunnel" + } + }, { "name": "video, defaults", "url": "https://vk.com/video-57274055_456239399",