web: add support for dubbed youtube audio tracks

This commit is contained in:
wukko
2024-10-28 23:15:01 +06:00
parent 1373d16286
commit ea2dd5bb35
6 changed files with 121 additions and 17 deletions

View File

@@ -22,7 +22,7 @@ const request = async (url: string) => {
audioBitrate: getSetting("save", "audioBitrate"),
audioFormat: getSetting("save", "audioFormat"),
tiktokFullAudio: getSetting("save", "tiktokFullAudio"),
youtubeDubBrowserLang: getSetting("save", "youtubeDubBrowserLang"),
youtubeDubLang: getSetting("save", "youtubeDubLang"),
youtubeVideoCodec: getSetting("save", "youtubeVideoCodec"),
videoQuality: getSetting("save", "videoQuality"),

View File

@@ -25,7 +25,7 @@ const defaultSettings: CobaltSettings = {
twitterGif: true,
videoQuality: "1080",
youtubeVideoCodec: "h264",
youtubeDubBrowserLang: false,
youtubeDubLang: "original",
youtubeHLS: false,
},
privacy: {

View File

@@ -0,0 +1,95 @@
export const youtubeLanguages = [
"original",
"af",
"am",
"ar",
"as",
"az",
"be",
"bg",
"bn",
"bs",
"ca",
"cs",
"da",
"de",
"el",
"en",
"es",
"et",
"eu",
"fa",
"fi",
"fil",
"fr",
"gl",
"gu",
"hi",
"hr",
"hu",
"hy",
"id",
"is",
"it",
"iw",
"ja",
"ka",
"kk",
"km",
"kn",
"ko",
"ky",
"lo",
"lt",
"lv",
"mk",
"ml",
"mn",
"mr",
"ms",
"my",
"no",
"ne",
"nl",
"or",
"pa",
"pl",
"pt",
"ro",
"ru",
"si",
"sk",
"sl",
"sq",
"sr",
"sv",
"sw",
"ta",
"te",
"th",
"tr",
"uk",
"ur",
"uz",
"vi",
"zh-CN",
"zh-HK",
"zh-TW",
"zu"
] as const;
export const namedYoutubeLanguages = () => {
return youtubeLanguages.reduce((obj, lang) => {
const intlName = new Intl.DisplayNames([lang], { type: 'language' }).of(lang);
let name = `${intlName} (${lang})`;
if (lang === "original") {
name = lang;
}
return {
...obj,
[lang]: name,
};
}, {}) as Record<typeof youtubeLanguages[number], string>;
}

View File

@@ -1,5 +1,6 @@
import languages from '$i18n/languages.json';
import type { RecursivePartial } from './generic';
import languages from "$i18n/languages.json";
import { youtubeLanguages } from "$lib/settings/youtube-lang";
import type { RecursivePartial } from "$lib/types/generic";
export const themeOptions = ["auto", "light", "dark"] as const;
export const audioBitrateOptions = ["320", "256", "128", "96", "64", "8"] as const;
@@ -47,7 +48,7 @@ type CobaltSettingsSave = {
twitterGif: boolean,
videoQuality: typeof videoQualityOptions[number],
youtubeVideoCodec: typeof youtubeVideoCodecOptions[number],
youtubeDubBrowserLang: boolean,
youtubeDubLang: typeof youtubeLanguages[number],
youtubeHLS: boolean,
};