Compare commits

...
8 Commits
Author SHA1 Message Date
Jonah Brüchert 47a3a4eff4 Handle no formats being found 2026-06-01 03:19:57 +02:00
Jonah Brüchert 5a54836000 Add video url fallback
+ debug logging
2026-06-01 03:19:57 +02:00
Heiko Becker 8b5c95eb6a GIT_SILENT Update Appstream for new release 2026-05-30 17:45:40 +02:00
Heiko Becker 66557d427c GIT_SILENT Upgrade release service version to 26.04.2. 2026-05-30 17:32:58 +02:00
l10n daemon script 7538e8ac2c GIT_SILENT made messages (after extraction) 2026-05-27 02:40:00 +00:00
l10n daemon script 3f2fcc934a GIT_SILENT Sync po/docbooks with svn 2026-05-26 03:25:34 +00:00
Antonio Rojas 016b2f1c89 Explicitly search for Python to fix compilation with ECM 6.26
pybind11 has a bug [1] where the pybind11::embed cmake target does not get correctly linked to Python after a previous find_package(Python3) call without the Development component has been issued.

This affects audiotube after an ECM 6.26 change [2] added such a call, breaking compilation.

As a workaround, add an explicit find_package call for Python that includes the Development component and overrides the ECM one.

[1] https://github.com/pybind/pybind11/issues/6063
[2] https://invent.kde.org/frameworks/extra-cmake-modules/-/commit/e46088158e5631417602322ecdc08cc692192134

CCBUG: 520142


(cherry picked from commit 273d9b926d)

273d9b92 Explicitly search for Python to fix compilation with ECM 6.26

Co-authored-by: Antonio Rojas <[email protected]>
2026-05-15 14:25:25 +00:00
l10n daemon script 342ba595d4 GIT_SILENT Sync po/docbooks with svn 2026-05-06 03:29:32 +00:00
5 changed files with 53 additions and 39 deletions

No files matched your search

+2 -1
View File
@@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.16.0)
# KDE Applications version, managed by release script.
set(RELEASE_SERVICE_VERSION_MAJOR "26")
set(RELEASE_SERVICE_VERSION_MINOR "04")
set(RELEASE_SERVICE_VERSION_MICRO "1")
set(RELEASE_SERVICE_VERSION_MICRO "2")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(audiotube VERSION ${RELEASE_SERVICE_VERSION})
@@ -42,6 +42,7 @@ kde_enable_exceptions()
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql Widgets Multimedia Concurrent DBus)
find_package(KF6 REQUIRED COMPONENTS Kirigami I18n CoreAddons Crash WindowSystem IconThemes Config)
find_package(Python3 COMPONENTS Development.Embed REQUIRED)
set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 REQUIRED)
find_package(Ytdlp REQUIRED RUNTIME)
+7
View File
@@ -93,6 +93,7 @@ SPDX-License-Identifier: CC0-1.0
<name translate="no">KDE</name>
</developer>
<releases>
<release version="26.04.2" date="2026-06-04"/>
<release version="26.04.1" date="2026-05-07"/>
<release version="26.04.0" date="2026-04-16"/>
<release version="25.12.3" date="2026-03-05"/>
@@ -156,6 +157,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Adde pagina de bibliotheca que monstra favoritos e cantos plus reproducite </li>
<li xml:lang="it">Aggiungi una pagina della raccolta che mostra i preferiti e i brani più riprodotti</li>
<li xml:lang="ka">დაემატა ბიბლიოთეკის გვერდი, რომელშიც ჩანს რჩეულები და ყველაზე ხშირად დაკრული სიმღერები</li>
<li xml:lang="ko">책갈피에 등록된 항목과 가장 많이 재생한 곡을 표시하는 라이브러리 페이지 추가</li>
<li xml:lang="lt">Pridėtas bibliotekos puslapis, kuriame rodomos mėgstamos ir dažniausiai atkurtos dainos</li>
<li xml:lang="lv">Pievienota bibliotēkas lapa, kurā redzama izlase un biežāk atskaņotie skaņdarbi</li>
<li xml:lang="nl">Voeg een bibliotheekpagina toe waarop favorieten en meest gespeelde nummers worden weergegeven.</li>
@@ -180,6 +182,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Meliora disposition del popup (emergente) de cerca</li>
<li xml:lang="it">Migliora la disposizione della finestra di ricerca a comparsa</li>
<li xml:lang="ka">გაუმჯობესდა ძებნის მხტუნარას განლაგება</li>
<li xml:lang="ko">검색 팝업 레이아웃 개선</li>
<li xml:lang="lt">Patobulintas paieškos iškylančiojo lango išdėstymas</li>
<li xml:lang="lv">Uzlabots meklēšanas uzlecošais logs</li>
<li xml:lang="nl">Verbeter de indeling van het zoekpop-upvenster.</li>
@@ -204,6 +207,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Melioramentod de prestation general includente startar</li>
<li xml:lang="it">Miglioramenti generali delle prestazioni, incluso l'avvio</li>
<li xml:lang="ka">ზოგადი წარმადობის გაუმჯობესება, გაშვების ჩათვლით</li>
<li xml:lang="ko">시작 등 일반적인 성능 개선</li>
<li xml:lang="lt">Bendri našumo patobulinimai, įskaitant programos paleidimą</li>
<li xml:lang="lv">Pamata veiktspējas uzlabojumi, ieskaitot palaišanu</li>
<li xml:lang="nl">Algemene prestatieverbeteringen, inclusief opstartproblemen</li>
@@ -235,6 +239,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Actualisa le version de ytmusicapi</li>
<li xml:lang="it">Aggiorna la versione di ytmusicapi</li>
<li xml:lang="ka">განახლდა ytmusicapi-ის ვერსია</li>
<li xml:lang="ko">ytmusicapi 버전 업데이트</li>
<li xml:lang="lt">Atnaujinta ytmusicapi versija</li>
<li xml:lang="lv">Atjaunināta „ytmusicapi“ versija</li>
<li xml:lang="nl">Werk de versie van ytmusicapi bij</li>
@@ -259,6 +264,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Re-factorisation de codice general e actualistiones de traduction</li>
<li xml:lang="it">Revisione generale del codice e aggiornamenti delle traduzioni</li>
<li xml:lang="ka">კოდის რეფაქტორინგი და თარგმანის გაუმჯობესებები</li>
<li xml:lang="ko">일반 코드 리팩토링 및 번역 업데이트</li>
<li xml:lang="lt">Bendri kodo pertvarkymo ir vertimų atnaujinimai</li>
<li xml:lang="lv">Pamata koda pārstrukturēšana un tulkojumu atjauninājumi</li>
<li xml:lang="nl">Algemene herziening van code en vertaalupdates</li>
@@ -290,6 +296,7 @@ SPDX-License-Identifier: CC0-1.0
<li xml:lang="ia">Actualisa le version de ytmusicapi</li>
<li xml:lang="it">Aggiorna la versione di ytmusicapi</li>
<li xml:lang="ka">განახლდა ytmusicapi-ის ვერსია</li>
<li xml:lang="ko">ytmusicapi 버전 업데이트</li>
<li xml:lang="lt">Atnaujinta ytmusicapi versija</li>
<li xml:lang="lv">Atjaunināta „ytmusicapi“ versija</li>
<li xml:lang="nl">Werk de versie van ytmusicapi bij</li>
+2 -2
View File
@@ -1,6 +1,6 @@
# Copyright (C) 2023 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# SPDX-FileCopyrightText: 2021, 2022, 2023, 2024, 2025, 2026 Vit Pelcak <[email protected]>
# SPDX-FileCopyrightText: 2021-2026 Vit Pelcak <[email protected]>
#
msgid ""
msgstr ""
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 25.12.3\n"
"X-Generator: Lokalize 26.04.0\n"
#: asyncytmusic.cpp:65
#, kde-format
+20 -31
View File
@@ -1,13 +1,13 @@
# Copyright (C) 2023 This file is copyright:
# This file is distributed under the same license as the audiotube package.
# SPDX-FileCopyrightText: 2021, 2022, 2023, 2024, 2025 Shinjo Park <[email protected]>
# SPDX-FileCopyrightText: 2021, 2022, 2023, 2024, 2025, 2026 Shinjo Park <[email protected]>
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-20 00:44+0000\n"
"PO-Revision-Date: 2025-10-09 00:07+0200\n"
"PO-Revision-Date: 2026-05-25 18:35+0200\n"
"Last-Translator: Shinjo Park <[email protected]>\n"
"Language-Team: Korean <[email protected]>\n"
"Language: ko\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 24.12.3\n"
"X-Generator: Lokalize 25.12.3\n"
#: asyncytmusic.cpp:65
#, kde-format
@@ -69,8 +69,7 @@ msgid "Share"
msgstr "공유"
#: contents/ui/AlbumPage.qml:109
#, fuzzy, kde-format
#| msgid "Album • %1"
#, kde-format
msgctxt "%1 is the artist(s) featured in the album"
msgid "Album • %1"
msgstr "앨범 • %1"
@@ -93,10 +92,7 @@ msgid "Artist"
msgstr "아티스트"
#: contents/ui/ArtistPage.qml:128
#, fuzzy, kde-format
#| msgid ""
#| "Video playback is not supported yet. Do you want to play only the audio "
#| "of \"%1\"?"
#, kde-format
msgctxt "%1 is a video title"
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -126,7 +122,7 @@ msgstr "비디오"
#: contents/ui/BentoCard.qml:158
#, kde-format
msgid "More options"
msgstr ""
msgstr "옵션 더 보기"
#: contents/ui/ConfirmationMessage.qml:16
#, kde-format
@@ -187,24 +183,23 @@ msgstr "재생 목록 이름 바꾸기"
#, kde-format
msgctxt "@title:window"
msgid "Explore"
msgstr ""
msgstr "탐색"
#: contents/ui/HeroCard.qml:128
#, kde-format
msgid "Featured Pick"
msgstr ""
msgstr "추천 픽"
#: contents/ui/HeroCard.qml:167
#, fuzzy, kde-format
#| msgid "Play Next"
#, kde-format
msgid "Play Now"
msgstr "다음 재생"
msgstr "지금 재생"
#: contents/ui/HomePage.qml:18
#, kde-format
msgctxt "@title:window"
msgid "Home"
msgstr ""
msgstr "홈"
#: contents/ui/LibraryPage.qml:32 contents/ui/LibraryPage.qml:135
#: contents/ui/NavigationBar.qml:47 contents/ui/NavigationBar.qml:53
@@ -329,8 +324,7 @@ msgid "Mute Audio"
msgstr "오디오 음소거"
#: contents/ui/MaximizedPlayerPage.qml:709
#, fuzzy, kde-format
#| msgid "%1%"
#, kde-format
msgctxt "%1 is the audio volume in percent"
msgid "%1%"
msgstr "%1%"
@@ -367,10 +361,9 @@ msgstr "대기열 표시"
#: contents/ui/MaximizedPlayerPage.qml:1069
#: contents/ui/MaximizedPlayerPage.qml:1314
#, fuzzy, kde-format
#| msgid "Remove Favorite"
#, kde-format
msgid "Remove Song"
msgstr "책갈피 삭제"
msgstr "곡 삭제"
#: contents/ui/MaximizedPlayerPage.qml:1104
#, kde-format
@@ -392,7 +385,7 @@ msgstr "다음에 재생될 곡"
msgctxt "song count"
msgid "%1 song"
msgid_plural "%1 songs"
msgstr[0] ""
msgstr[0] "%1곡"
#: contents/ui/NavigationBar.qml:23 contents/ui/Sidebar.qml:124
#, kde-format
@@ -450,10 +443,7 @@ msgid "Unknown"
msgstr "알 수 없음"
#: contents/ui/SearchPage.qml:74
#, fuzzy, kde-format
#| msgid ""
#| "Video playback is not supported yet. Do you want to play only the audio "
#| "of \"%1\"?"
#, kde-format
msgctxt "%1 is a video title"
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -483,12 +473,12 @@ msgstr "클립보드에 링크 복사됨"
#: contents/ui/Sidebar.qml:108
#, kde-format
msgid "Home"
msgstr ""
msgstr "홈"
#: contents/ui/Sidebar.qml:176
#, kde-format
msgid "Explore"
msgstr ""
msgstr "탐색"
#: contents/ui/Sidebar.qml:233
#, kde-format
@@ -527,10 +517,9 @@ msgid "Stream music from YouTube Music"
msgstr "YouTube Music에서 음악 스트리밍"
#: main.cpp:92
#, fuzzy, kde-format
#| msgid "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
#, kde-format
msgid "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
msgstr "© 2021-2024 Jonah Brüchert, 2021-2024 KDE Community"
msgstr "© 2021–2024 Jonah Brüchert, 2021–2024 KDE Community"
#: main.cpp:93
#, kde-format
+22 -5
View File
@@ -38,21 +38,38 @@ QUrl VideoInfoExtractor::audioUrl() const
std::vector<video_info::Format> audioFormats;
qWarning() << "available formats:";
for (const auto &f : m_videoInfo.formats) {
qWarning() << " " << "acodec" << f.acodec << "format_id" << f.format_id << "quality" << f.quality << "vcodec" << f.vcodec;
}
// filter audio only formats
std::copy_if(m_videoInfo.formats.begin(), m_videoInfo.formats.end(), std::back_inserter(audioFormats),
[](const video_info::Format &format) {
return (!format.acodec.has_value() || format.acodec != "none") && format.vcodec == "none";
});
std::sort(audioFormats.begin(), audioFormats.end(), [](const video_info::Format &a, const video_info::Format &b) {
return a.quality > b.quality;
});
if (audioFormats.empty()) {
qWarning() << "No audio track found, falling back to worst-quality video";
std::copy_if(m_videoInfo.formats.begin(), m_videoInfo.formats.end(), std::back_inserter(audioFormats), [](const video_info::Format &format) {
return format.acodec != "none";
});
std::sort(audioFormats.begin(), audioFormats.end(), [](const video_info::Format &a, const video_info::Format &b) {
return a.quality < b.quality;
});
}
if (audioFormats.empty()) {
qWarning() << "No audio track found";
return {};
}
std::sort(audioFormats.begin(), audioFormats.end(),
[](const video_info::Format &a, const video_info::Format &b) {
return a.quality > b.quality;
});
qWarning() << "chosen url:" << audioFormats.front().url;
return QUrl(QString::fromStdString(audioFormats.front().url));
}