diff --git a/api/src/processing/services/vk.js b/api/src/processing/services/vk.js index 4e2d8548ff..67c91802c8 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 71720af5a6..4d9ac5a69d 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",