Compare commits

...
Author SHA1 Message Date
gdlbo a85e55a594 meta data pref 2023-10-12 22:45:43 +03:00
2 changed files with 13 additions and 3 deletions
@@ -3,6 +3,7 @@ package ru.vtosters.lite.music.converter.ts;
import com.arthenica.ffmpegkit.FFmpegKit;
import com.vk.dto.music.Artist;
import com.vk.dto.music.MusicTrack;
import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.lite.music.downloader.M3UDownloader;
import ru.vtosters.lite.utils.IOUtils;
@@ -25,14 +26,18 @@ public class FFMpeg {
+ " -loglevel error"
+ " -hide_banner"
+ " -write_id3v2 1"
+ " -metadata title=\"" + IOUtils.getValidFileName(M3UDownloader.getTitle(track)) + '"'
+ " -metadata artist=\"" + normalizeMetadata(track.L.stream().map(Artist::w1).collect(Collectors.joining(", "))) + '"'
+ " -metadata album=\"" + normalizeMetadata(track.I.getTitle()) + '"'
+ setMetadata(track)
+ " -c copy \"" + out + '"';
var ses = FFmpegKit.execute(cmd);
if (ses.getReturnCode().isValueCancel()) throw new RuntimeException(ses.getLogsAsString());
}
private static String setMetadata(MusicTrack track) {
return Preferences.getBoolValue("setMetaData", false) ? "" : " -metadata title=\"" + IOUtils.getValidFileName(M3UDownloader.getTitle(track)) + '"'
+ " -metadata artist=\"" + normalizeMetadata(track.L.stream().map(Artist::w1).collect(Collectors.joining(", "))) + '"'
+ " -metadata album=\"" + normalizeMetadata(track.I.getTitle()) + '"';
}
private static String normalizeMetadata(String in) {
return in.replaceAll("[\\\\/:*?\"<>|]", "");
}
+5
View File
@@ -45,6 +45,11 @@
android:entryValues="@array/musicdefcatalog"
android:key="musicdefcatalog"
android:title="@string/musicdefcatalog_title"/>
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="setMetaData"
android:summary="Сохранять id3v2 теги для песен для MP3 (Экспериментально)"
android:title="Сохранять метадату песен"/>
<Preference
android:key="audio_download"
android:title="@string/audio_download_title"/>