feat: Add functionality to move thumbnails to video folder

This commit is contained in:
Peifan Li
2025-12-14 20:20:12 -05:00
parent dd94d80311
commit c79f34f853
12 changed files with 53 additions and 13 deletions

View File

@@ -2,6 +2,11 @@
## v1.5.14 (2025-12-14)
### Feat
- feat: Add functionality to move thumbnails to video folder (dd94d80)
## v1.5.13 (2025-12-14)
### Refactor

View File

@@ -9,7 +9,7 @@ const Footer = () => {
<Box
component="footer"
sx={{
py: 3,
py: 2,
px: 2,
mt: 'auto',
backgroundColor: theme.palette.mode === 'light'
@@ -26,20 +26,19 @@ const Footer = () => {
href="https://github.com/franklioxygen/MyTube"
target="_blank"
rel="noopener noreferrer"
color="inherit"
color="text.secondary"
underline="none"
sx={{ display: 'flex', alignItems: 'center' }}
variant="caption"
sx={{ display: 'flex', alignItems: 'center', mr: 2 }}
>
<GitHub sx={{ fontSize: 16, mr: 0.5 }} />
<Typography variant="body2" color="text.secondary" sx={{ mr: 2 }}>
MyTube
</Typography>
<GitHub sx={{ fontSize: 'inherit', mr: 0.5 }} />
MyTube
</Link>
<Typography variant="body2" color="text.secondary">
<Typography variant="caption" color="text.secondary">
v{import.meta.env.VITE_APP_VERSION}
</Typography>
</Box>
<Typography variant="body2" color="text.secondary" sx={{ mt: 1 }}>
<Typography variant="caption" color="text.secondary" sx={{ mt: 0.5 }}>
Created by franklioxygen
</Typography>
</Box>

View File

@@ -256,6 +256,10 @@ export const ar = {
moveSubtitlesToVideoFolderOn: 'مع الفيديو',
moveSubtitlesToVideoFolderOff: 'في مجلد الترجمات المعزول',
moveSubtitlesToVideoFolderDescription: 'عند التمكن، سيتم نقل ملفات الترجمة إلى نفس المجلد الموجود به ملف الفيديو. عند التعطيل، سيتم نقلها إلى مجلد الترجمات المعزول.',
moveThumbnailsToVideoFolder: 'موقع الصور المصغرة',
moveThumbnailsToVideoFolderOn: 'مع الفيديو',
moveThumbnailsToVideoFolderOff: 'في مجلد صور معزول',
moveThumbnailsToVideoFolderDescription: 'عند التفعيل، سيتم نقل ملفات الصور المصغرة إلى نفس المجلد الموجود به ملف الفيديو. عند التعطيل، سيتم نقلها إلى مجلد الصور المعزول.',
// Snackbar Messages
videoDownloading: "جاري تنزيل الفيديو",

View File

@@ -431,4 +431,8 @@ export const de = {
moveSubtitlesToVideoFolderOn: 'Zusammen mit Video',
moveSubtitlesToVideoFolderOff: 'Im isolierten Untertitel-Ordner',
moveSubtitlesToVideoFolderDescription: 'Wenn aktiviert, werden Untertiteldateien in denselben Ordner wie die Videodatei verschoben. Wenn deaktiviert, werden sie in den isolierten Untertitelordner verschoben.',
moveThumbnailsToVideoFolder: 'Thumbnail-Speicherort',
moveThumbnailsToVideoFolderOn: 'Zusammen mit Video',
moveThumbnailsToVideoFolderOff: 'In isoliertem Bilderordner',
moveThumbnailsToVideoFolderDescription: 'Wenn aktiviert, werden Thumbnail-Dateien in denselben Ordner wie die Videodatei verschoben. Wenn deaktiviert, werden sie in den isolierten Bilderordner verschoben.',
};

View File

@@ -27,6 +27,10 @@ export const es = {
moveSubtitlesToVideoFolderOn: 'Junto al video',
moveSubtitlesToVideoFolderOff: 'En carpeta de subtítulos aislada',
moveSubtitlesToVideoFolderDescription: 'Cuando está habilitado, los archivos de subtítulos se moverán a la misma carpeta que el archivo de video. Cuando está deshabilitado, se moverán a la carpeta de subtítulos aislada.',
moveThumbnailsToVideoFolder: 'Ubicación de miniaturas',
moveThumbnailsToVideoFolderOn: 'Junto con el video',
moveThumbnailsToVideoFolderOff: 'En carpeta de imágenes aislada',
moveThumbnailsToVideoFolderDescription: 'Cuando está habilitado, los archivos de miniaturas se moverán a la misma carpeta que el archivo de video. Cuando está deshabilitado, se moverán a la carpeta de imágenes aislada.',
fromYouTube: "De YouTube",
loadingYouTubeResults: "Cargando resultados de YouTube...",
noYouTubeResults: "No se encontraron resultados de YouTube",

View File

@@ -469,4 +469,8 @@ export const fr = {
moveSubtitlesToVideoFolderOn: 'Avec la vidéo',
moveSubtitlesToVideoFolderOff: 'Dans le dossier de sous-titres isolé',
moveSubtitlesToVideoFolderDescription: 'Si activé, les fichiers de sous-titres seront déplacés dans le même dossier que le fichier vidéo. Si désactivé, ils seront déplacés vers le dossier de sous-titres isolé.',
moveThumbnailsToVideoFolder: 'Emplacement des miniatures',
moveThumbnailsToVideoFolderOn: 'Avec la vidéo',
moveThumbnailsToVideoFolderOff: 'Dans un dossier d\'images isolé',
moveThumbnailsToVideoFolderDescription: 'Si activé, les fichiers de miniatures seront déplacés dans le même dossier que le fichier vidéo. Si désactivé, ils seront déplacés dans le dossier d\'images isolé.',
};

View File

@@ -457,5 +457,9 @@ export const ja = {
moveSubtitlesToVideoFolder: '字幕の場所',
moveSubtitlesToVideoFolderOn: '動画と同じ場所',
moveSubtitlesToVideoFolderOff: '独立した字幕フォルダー',
moveSubtitlesToVideoFolderDescription: '有効にすると、字幕ファイルは動画ファイルと同じフォルダーに移動されます。無効にすると、独立した字幕フォルダーに移動されます。',
moveSubtitlesToVideoFolderDescription: '有効にすると、字幕ファイルは動画ファイルと同じフォルダーに移動ます。無効にすると、独立した字幕フォルダーに移動ます。',
moveThumbnailsToVideoFolder: 'サムネイルの場所',
moveThumbnailsToVideoFolderOn: '動画と一緒',
moveThumbnailsToVideoFolderOff: '独立した画像フォルダ',
moveThumbnailsToVideoFolderDescription: '有効にすると、サムネイルファイルは動画ファイルと同じフォルダに移動されます。無効にすると、独立した画像フォルダに移動されます。',
};

View File

@@ -451,5 +451,9 @@ export const ko = {
moveSubtitlesToVideoFolder: '자막 위치',
moveSubtitlesToVideoFolderOn: '동영상과 함께',
moveSubtitlesToVideoFolderOff: '격리된 자막 폴더',
moveSubtitlesToVideoFolderDescription: '활성화하면 자막 파일이 동영상 파일과 같은 폴더로 이동니다. 비활성화하면 리된 자막 폴더로 이동니다.',
moveSubtitlesToVideoFolderDescription: '활성화하면 자막 파일이 동영상 파일과 같은 폴더로 이동니다. 비활성화하면 리된 자막 폴더로 이동니다.',
moveThumbnailsToVideoFolder: '썸네일 위치',
moveThumbnailsToVideoFolderOn: '동영상과 함께',
moveThumbnailsToVideoFolderOff: '분리된 이미지 폴더',
moveThumbnailsToVideoFolderDescription: '활성화하면 썸네일 파일이 동영상 파일과 같은 폴더로 이동합니다. 비활성화하면 분리된 이미지 폴더로 이동합니다.',
};

View File

@@ -463,4 +463,8 @@ export const pt = {
moveSubtitlesToVideoFolderOn: 'Junto com o vídeo',
moveSubtitlesToVideoFolderOff: 'Na pasta de legendas isolada',
moveSubtitlesToVideoFolderDescription: 'Quando ativado, os arquivos de legenda serão movidos para a mesma pasta do arquivo de vídeo. Quando desativado, eles serão movidos para a pasta de legendas isolada.',
moveThumbnailsToVideoFolder: 'Localização da miniatura',
moveThumbnailsToVideoFolderOn: 'Junto com o vídeo',
moveThumbnailsToVideoFolderOff: 'Em pasta de imagens isolada',
moveThumbnailsToVideoFolderDescription: 'Quando ativado, os arquivos de miniatura serão movidos para a mesma pasta do arquivo de vídeo. Quando desativado, eles serão movidos para a pasta de imagens isolada.',
};

View File

@@ -30,6 +30,10 @@ export const ru = {
moveSubtitlesToVideoFolderOn: 'Вместе с видео',
moveSubtitlesToVideoFolderOff: 'В изолированной папке субтитров',
moveSubtitlesToVideoFolderDescription: 'Если включено, файлы субтитров будут перемещены в ту же папку, что и видеофайл. Если отключено, они будут перемещены в изолированную папку субтитров.',
moveThumbnailsToVideoFolder: 'Расположение миниатюр',
moveThumbnailsToVideoFolderOn: 'Вместе с видео',
moveThumbnailsToVideoFolderOff: 'В отдельной папке изображений',
moveThumbnailsToVideoFolderDescription: 'Если включено, файлы миниатюр будут перемещены в ту же папку, что и видеофайл. Если выключено, они будут перемещены в отдельную папку изображений.',
loadingYouTubeResults: "Загрузка результатов YouTube...",
noYouTubeResults: "Результаты YouTube не найдены",
noVideosYet: "Видео пока нет. Отправьте URL видео, чтобы скачать первое!",

View File

@@ -447,5 +447,9 @@ export const zh = {
moveSubtitlesToVideoFolder: '字幕位置',
moveSubtitlesToVideoFolderOn: '与视频在同一文件夹',
moveSubtitlesToVideoFolderOff: '在独立字幕文件夹',
moveSubtitlesToVideoFolderDescription: '启用后,字幕文件将被移动到与视频文件相同的文件夹中。禁用后,它们将被移动到独立字幕文件夹。',
moveSubtitlesToVideoFolderDescription: '启用后,字幕文件将被移动到与视频文件相同的文件夹中。禁用后,它们将被移动到独立字幕文件夹。',
moveThumbnailsToVideoFolder: '封面位置',
moveThumbnailsToVideoFolderOn: '与视频在一起',
moveThumbnailsToVideoFolderOff: '在独立的图片文件夹中',
moveThumbnailsToVideoFolderDescription: '启用后,封面文件将被移动到与视频文件相同的文件夹中。禁用后,它们将被移动到独立的图片文件夹中。',
};

View File

@@ -1,7 +1,7 @@
{
"name": "mytube",
"version": "1.5.13",
"description": "YouTube video downloader and player application",
"description": "Multiple platform video downloader and player application",
"main": "index.js",
"scripts": {
"start": "concurrently \"npm run start:backend\" \"npm run start:frontend\"",