diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 5c4c2b5..af830ae 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v3
with:
@@ -65,7 +65,7 @@ jobs:
if: contains(github.ref, '/tags/v')
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: create release
id: create_release
uses: actions/create-release@v1
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index dc3da85..452f5a3 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -30,7 +30,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml
index d329c96..f82b7e3 100644
--- a/.github/workflows/docker-pr.yml
+++ b/.github/workflows/docker-pr.yml
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set hash
id: vars
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
@@ -28,7 +28,7 @@ jobs:
- name: setup multi-arch docker build
uses: docker/setup-buildx-action@v2
- name: build & push images
- uses: docker/build-push-action@v4
+ uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml
index 12af2ef..58d0e5a 100644
--- a/.github/workflows/docker-release.yml
+++ b/.github/workflows/docker-release.yml
@@ -15,7 +15,7 @@ jobs:
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set hash
id: vars
@@ -47,7 +47,7 @@ jobs:
- name: Generate Docker image metadata
id: docker-meta
- uses: docker/metadata-action@v4
+ uses: docker/metadata-action@v5
with:
images: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO }}
@@ -63,20 +63,20 @@ jobs:
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build & push images
- uses: docker/build-push-action@v4
+ uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 8980090..562b5d8 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set hash
id: vars
@@ -48,7 +48,7 @@ jobs:
- name: Generate Docker image metadata
id: docker-meta
- uses: docker/metadata-action@v4
+ uses: docker/metadata-action@v5
# Defaults:
# DOCKERHUB_USERNAME : tzahi12345
# DOCKERHUB_REPO : youtubedl-material
@@ -63,20 +63,20 @@ jobs:
type=sha,prefix=sha-,format=short
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build & push images
- uses: docker/build-push-action@v4
+ uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
diff --git a/.github/workflows/mocha.yml b/.github/workflows/mocha.yml
index 34ad7d5..50904ba 100644
--- a/.github/workflows/mocha.yml
+++ b/.github/workflows/mocha.yml
@@ -21,7 +21,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: '${{ matrix.node }}'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: 'Cache node_modules'
uses: actions/cache@v3
with:
diff --git a/backend/app.js b/backend/app.js
index 178fd98..758af3d 100644
--- a/backend/app.js
+++ b/backend/app.js
@@ -590,17 +590,6 @@ function generateEnvVarConfigItem(key) {
return {key: key, value: process['env'][key]};
}
-// currently only works for single urls
-async function getUrlInfos(url) {
- const {parsed_output, err} = await youtubedl_api.runYoutubeDL(url, ['--dump-json']);
- if (!parsed_output || parsed_output.length !== 1) {
- logger.error(`Failed to retrieve available formats for url: ${url}`);
- if (err) logger.error(err);
- return null;
- }
- return parsed_output[0];
-}
-
// youtube-dl functions
async function startYoutubeDL() {
@@ -1871,11 +1860,11 @@ app.post('/api/clearAllLogs', optionalJwt, async function(req, res) {
});
app.post('/api/getFileFormats', optionalJwt, async (req, res) => {
- let url = req.body.url;
- let result = await getUrlInfos(url);
+ const url = req.body.url;
+ const result = await downloader_api.getVideoInfoByURL(url);
res.send({
- result: result,
- success: !!result
+ result: result && result.length === 1 ? result[0] : null,
+ success: result && result.length === 0
})
});
diff --git a/backend/youtube-dl.js b/backend/youtube-dl.js
index f9bf5e4..7dcd9e3 100644
--- a/backend/youtube-dl.js
+++ b/backend/youtube-dl.js
@@ -118,10 +118,16 @@ async function downloadLatestYoutubeDLBinaryGeneric(youtubedl_fork, new_version,
const download_url = `${exports.youtubedl_forks[youtubedl_fork]['download_url']}${file_ext}`;
const output_path = custom_output_path || getYoutubeDLPath(youtubedl_fork);
- await utils.fetchFile(download_url, output_path, `${youtubedl_fork} ${new_version}`);
- fs.chmod(output_path, 0o777);
+ try {
+ await utils.fetchFile(download_url, output_path, `${youtubedl_fork} ${new_version}`);
+ fs.chmod(output_path, 0o777);
- updateDetailsJSON(new_version, youtubedl_fork, output_path);
+ updateDetailsJSON(new_version, youtubedl_fork, output_path);
+ } catch (e) {
+ logger.error(`Failed to download new ${youtubedl_fork} version: ${new_version}`);
+ logger.error(e);
+ return;
+ }
}
exports.getLatestUpdateVersion = async (youtubedl_fork) => {
diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts
index 3a4058b..fb6e656 100644
--- a/src/app/main/main.component.ts
+++ b/src/app/main/main.component.ts
@@ -548,7 +548,7 @@ export class MainComponent implements OnInit {
}
if (!(this.cachedAvailableFormats[url] && this.cachedAvailableFormats[url]['formats'])) {
this.cachedAvailableFormats[url]['formats_loading'] = true;
- this.postsService.getFileFormats([url]).subscribe(res => {
+ this.postsService.getFileFormats(url).subscribe(res => {
this.cachedAvailableFormats[url]['formats_loading'] = false;
const infos = res['result'];
if (!infos || !infos.formats) {
diff --git a/src/app/posts.services.ts b/src/app/posts.services.ts
index c166d82..f897a48 100644
--- a/src/app/posts.services.ts
+++ b/src/app/posts.services.ts
@@ -460,7 +460,7 @@ export class PostsService {
return this.http.post(this.path + 'deleteArchiveItems', body, this.httpOptions);
}
- getFileFormats(url) {
+ getFileFormats(url: string) {
const body: GetFileFormatsRequest = {url: url};
return this.http.post(this.path + 'getFileFormats', body, this.httpOptions);
}
diff --git a/src/assets/i18n/messages.ca.xlf b/src/assets/i18n/messages.ca.xlf
index 022ab97..9c4e763 100644
--- a/src/assets/i18n/messages.ca.xlf
+++ b/src/assets/i18n/messages.ca.xlf
@@ -4142,6 +4142,163 @@
363
+
+ Video
+ Vídeo
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 40
+
+
+
+ Extractor
+ Extractor
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 57
+
+ Extractor
+
+
+ Archives empty
+ Arxius buits
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 72
+
+ Archives empty
+
+
+ Delete selected
+ Elimina seleccionat
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 77
+
+ Delete selected
+
+
+ None
+ Cap
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 84
+
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 126
+
+
+ src/app/dialogs/generate-rss-url/generate-rss-url.component.html
+ 27
+
+
+ src/app/dialogs/generate-rss-url/generate-rss-url.component.html
+ 36
+
+ None
+
+
+ Download archive
+ Descarregar arxiu
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 80
+
+ Download archive
+
+
+ Would you like to delete archive(s)?
+ T'agradaria eliminar arxiu(s)?
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 153
+
+
+
+ Successfully deleted archive items!
+ Elements de l'arxiu eliminats amb èxit!
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 172
+
+
+
+ Archives
+ Arxius
+
+ src/app/app.component.html
+ 26
+
+ Archives menu label
+
+
+ Upload
+ Pujar
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 137
+
+
+ src/app/dialogs/cookies-uploader-dialog/cookies-uploader-dialog.component.html
+ 30
+
+ Upload
+
+
+ Audio
+ Àudio
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 44
+
+
+
+ Delete
+ Suprimir
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 154
+
+
+ src/app/settings/settings.component.ts
+ 160
+
+
+
+ Archive successfully imported!
+ Arxiu importat amb èxit!
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 130
+
+
+
+ ID
+ ID
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 47
+
+ ID
+
+
+ Delete archives
+ Elimina arxius
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 152
+
+
+
+ Filter
+ Filtres
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 3
+
+ Filter
+
Profile
+ Perfil
src/app/app.component.html
19
@@ -12,6 +13,7 @@
Dark
+ Escuro
src/app/app.component.html
23
@@ -24,6 +26,7 @@
About
+ Sobre
src/app/app.component.html
32
@@ -32,6 +35,7 @@
Home
+ Início
src/app/app.component.html
43
@@ -40,6 +44,7 @@
Login
+ Login
src/app/app.component.html
44
@@ -56,6 +61,7 @@
Subscriptions
+ Inscrições
src/app/app.component.html
45
@@ -64,6 +70,7 @@
Downloads
+ Downloads
src/app/app.component.html
46
@@ -72,6 +79,7 @@
Tasks
+ Tarefas
src/app/app.component.html
47
@@ -80,6 +88,7 @@
Settings
+ Configurações
src/app/app.component.html
50
@@ -92,6 +101,7 @@
Date
+ Data
src/app/components/downloads/downloads.component.html
7
@@ -100,6 +110,7 @@
Title
+ Título
src/app/components/downloads/downloads.component.html
13
@@ -112,6 +123,7 @@
Subscription
+ Inscrição
src/app/components/downloads/downloads.component.html
23
@@ -128,6 +140,7 @@
Progress
+ Progresso
src/app/components/downloads/downloads.component.html
42
@@ -136,6 +149,7 @@
Actions
+ Ações
src/app/components/downloads/downloads.component.html
55
@@ -164,6 +178,7 @@
Cancel
+ Cancelar
src/app/components/downloads/downloads.component.html
61
@@ -240,6 +255,7 @@
Pause all downloads
+ Pausar todos os downloads
src/app/components/downloads/downloads.component.html
83
@@ -248,6 +264,7 @@
Resume all downloads
+ Retomar todos os downloads
src/app/components/downloads/downloads.component.html
84
@@ -264,6 +281,7 @@
No downloads available!
+ Nenhum download disponível!
src/app/components/downloads/downloads.component.html
90
@@ -272,6 +290,7 @@
Creating download
+ Criando download
src/app/components/downloads/downloads.component.ts
58
@@ -279,6 +298,7 @@
Getting info
+ Obtendo informações
src/app/components/downloads/downloads.component.ts
59
@@ -286,6 +306,7 @@
Downloading file
+ Baixando arquivo
src/app/components/downloads/downloads.component.ts
60
@@ -293,6 +314,7 @@
Complete
+ Terminado
src/app/components/downloads/downloads.component.ts
61
@@ -314,6 +336,7 @@
Clear
+ Limpar
src/app/components/downloads/downloads.component.ts
131
@@ -321,6 +344,7 @@
Error for
+ Erro para
src/app/components/downloads/downloads.component.ts
238
@@ -328,6 +352,7 @@
Copy to clipboard
+ Copiar para a área de transferência
src/app/components/downloads/downloads.component.ts
240
@@ -335,6 +360,7 @@
Close
+ Fechar
src/app/components/downloads/downloads.component.ts
241
@@ -342,6 +368,7 @@
Copied to clipboard!
+ Copiado para a área de transferência!
src/app/components/downloads/downloads.component.ts
249
@@ -349,6 +376,7 @@
Register
+ Registrar
src/app/components/login/login.component.html
38
@@ -361,6 +389,7 @@
Lines:
+ Linhas:
src/app/components/logs-viewer/logs-viewer.component.html
22
@@ -369,6 +398,7 @@
Clear logs
+ Limpar logs
src/app/components/logs-viewer/logs-viewer.component.html
34
@@ -377,6 +407,7 @@
Manage role
+ Editar perfil de usuário
src/app/components/manage-role/manage-role.component.html
1
@@ -385,6 +416,7 @@
Yes
+ Sim
src/app/components/manage-role/manage-role.component.html
9
@@ -397,6 +429,7 @@
No
+ Não
src/app/components/manage-role/manage-role.component.html
10
@@ -409,6 +442,7 @@
Close
+ Fechar
src/app/components/manage-role/manage-role.component.html
18
@@ -453,6 +487,7 @@
Manage user
+ Editar usuário
src/app/components/manage-user/manage-user.component.html
1
@@ -465,6 +500,7 @@
User UID:
+ UID do Usuário:
src/app/components/manage-user/manage-user.component.html
4
@@ -473,6 +509,7 @@
New password
+ Nova senha
src/app/components/manage-user/manage-user.component.html
8
@@ -481,6 +518,7 @@
Set new password
+ Criar nova senha
src/app/components/manage-user/manage-user.component.html
10
@@ -497,6 +535,7 @@
Search
+ Buscar
src/app/components/modify-users/modify-users.component.html
7
@@ -512,7 +551,8 @@
search field description
- User name
+ User name
+ Nome de usuário
src/app/components/modify-users/modify-users.component.html
17
@@ -520,7 +560,8 @@
Username users table header
- Role
+ Role
+ Perfil
src/app/components/modify-users/modify-users.component.html
35
@@ -528,7 +569,8 @@
Role users table header
- Actions
+ Actions
+ Ações
src/app/components/modify-users/modify-users.component.html
55
@@ -537,6 +579,7 @@
Save
+ Salvar
src/app/components/modify-users/modify-users.component.html
58
@@ -561,6 +604,7 @@
Edit user
+ Editar dados de usuário
src/app/components/modify-users/modify-users.component.html
66
@@ -569,6 +613,7 @@
Delete user
+ Deletar usuário
src/app/components/modify-users/modify-users.component.html
73
@@ -577,6 +622,7 @@
Add Users
+ Adicionar usuário
src/app/components/modify-users/modify-users.component.html
90
@@ -585,6 +631,7 @@
Edit Role
+ Editar Perfil
src/app/components/modify-users/modify-users.component.html
95
@@ -609,6 +656,7 @@
File type
+ Tipo de arquivo
src/app/components/recent-videos/recent-videos.component.html
52
@@ -617,6 +665,7 @@
Both
+ Ambos
src/app/components/recent-videos/recent-videos.component.html
54
@@ -640,7 +689,7 @@
Audio only
- See more.
+ See more.
src/app/components/see-more/see-more.component.html
4,6
@@ -648,7 +697,7 @@
See more
- See less.
+ See less.
src/app/components/see-more/see-more.component.html
7,9
@@ -1012,6 +1061,7 @@
Audio
+ Áudio
src/app/create-playlist/create-playlist.component.html
12
@@ -1020,6 +1070,7 @@
Video
+ Vídeo
src/app/create-playlist/create-playlist.component.html
13
@@ -1176,6 +1227,7 @@
User name
+ Nome de usuário
src/app/dialogs/add-user-dialog/add-user-dialog.component.html
6
@@ -1184,6 +1236,7 @@
Password
+ Senha
src/app/dialogs/add-user-dialog/add-user-dialog.component.html
11
@@ -1272,6 +1325,7 @@
Drag and Drop
+ Arraste e Solte
src/app/dialogs/cookies-uploader-dialog/cookies-uploader-dialog.component.html
11
@@ -1515,7 +1569,7 @@
Randomize order when playing checkbox label
- Normal order
+ Normal order
src/app/dialogs/modify-playlist/modify-playlist.component.html
18
@@ -1523,7 +1577,7 @@
Normal order
- Reverse order
+ Reverse order
src/app/dialogs/modify-playlist/modify-playlist.component.html
19
@@ -1847,7 +1901,7 @@
Category property
- Quality
+ Quality
src/app/main/main.component.html
19,20
@@ -1863,7 +1917,7 @@
YT search Use URL button for searched video
- View
+ View
src/app/main/main.component.html
55,57
@@ -1871,7 +1925,7 @@
YT search View button for searched video
- Only Audio
+ Only Audio
src/app/main/main.component.html
65,67
@@ -1879,7 +1933,7 @@
Only Audio checkbox
- Autoplay
+ Autoplay
src/app/main/main.component.html
70,72
@@ -1887,7 +1941,7 @@
Autoplay checkbox
- Download
+ Download
src/app/main/main.component.html
79,82
@@ -1895,7 +1949,7 @@
Main download button
- Cancel
+ Cancel
src/app/main/main.component.html
84,87
@@ -1903,7 +1957,7 @@
Cancel download button
- Advanced
+ Advanced
src/app/main/main.component.html
96,99
@@ -1911,7 +1965,7 @@
Advanced download mode panel
- Simulated command:
+ Simulated command:
src/app/main/main.component.html
102,104
@@ -1919,7 +1973,7 @@
Simulated command label
- Use custom args
+ Use custom args
src/app/main/main.component.html
110,112
@@ -1927,7 +1981,7 @@
Use custom args checkbox
- Replace args
+ Replace args
src/app/main/main.component.html
116,118
@@ -1935,7 +1989,7 @@
Replace args
- No need to include URL, just everything after. Args are delimited using two commas like so: ,,
+ No need to include URL, just everything after. Args are delimited using two commas like so: ,,
src/app/main/main.component.html
123,125
@@ -1943,7 +1997,7 @@
Custom Args input hint
- Use custom output
+ Use custom output
src/app/main/main.component.html
131,133
@@ -1959,7 +2013,7 @@
Custom output placeholder
- Use authentication
+ Use authentication
src/app/main/main.component.html
145,147
@@ -1975,7 +2029,7 @@
YT Username placeholder
- Crop file
+ Crop file
src/app/main/main.component.html
160,162
@@ -2610,7 +2664,7 @@
Test connection string button
- Transfer DB to
+ Transfer DB to
src/app/settings/settings.component.html
329
@@ -2872,6 +2926,580 @@
Select a version
+
+ Archives empty
+ Arquivos vazios
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 72
+
+ Archives empty
+
+
+ Delete
+ Deletar
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 154
+
+
+ src/app/settings/settings.component.ts
+ 160
+
+
+
+ Audio
+ Áudio
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 44
+
+
+
+ Resume
+ Retomar
+
+ src/app/components/downloads/downloads.component.ts
+ 74
+
+
+ src/app/components/downloads/downloads.component.ts
+ 80
+
+
+
+ Successfully created playlist!
+ Playlist criada com sucesso!
+
+ src/app/components/custom-playlists/custom-playlists.component.ts
+ 56
+
+
+
+ Cancel
+ Cancelar
+
+ src/app/components/downloads/downloads.component.ts
+ 86
+
+
+ src/app/dialogs/confirm-dialog/confirm-dialog.component.ts
+ 15
+
+
+
+ Restart
+ Reiniciar
+
+ src/app/components/downloads/downloads.component.ts
+ 62
+
+
+
+ Pause
+ Pausar
+
+ src/app/components/downloads/downloads.component.ts
+ 68
+
+
+
+ Failed to clear logs!
+ Não foi possível remover os logs!
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 77
+
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 80
+
+
+
+ Use advanced download mode
+ Usar o modo de download avançado
+
+ src/app/components/manage-role/manage-role.component.ts
+ 21
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 23
+
+
+
+ File manager
+ Gerenciador de arquivos
+
+ src/app/components/manage-role/manage-role.component.ts
+ 17
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 19
+
+
+
+ Use downloads manager
+ Usar o gerenciador de downloads
+
+ src/app/components/manage-role/manage-role.component.ts
+ 22
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 24
+
+
+
+ Use tasks manager
+ Usar o gerenciador de tarefas
+
+ src/app/components/manage-role/manage-role.component.ts
+ 23
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 25
+
+
+
+ Subscriptions
+ Inscrições
+
+ src/app/components/manage-role/manage-role.component.ts
+ 19
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 21
+
+
+
+ Clear downloads
+ Limpar downloads
+
+ src/app/components/downloads/downloads.component.html
+ 91
+
+ Clear downloads
+
+
+ Finished downloads
+ Downloads terminados
+
+ src/app/components/downloads/downloads.component.ts
+ 182
+
+
+
+ Paused downloads
+ Downloads pausados
+
+ src/app/components/downloads/downloads.component.ts
+ 186
+
+
+
+ Errored downloads
+ Downloads com erro
+
+ src/app/components/downloads/downloads.component.ts
+ 190
+
+
+
+ Failed to pause download! See server logs for more info.
+ Não foi possível pausar o downloads! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 214
+
+
+ src/app/components/downloads/downloads.component.ts
+ 266
+
+
+
+ Failed to pause all downloads! See server logs for more info.
+ Não foi possível pausar todos os downloads! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 222
+
+
+
+ Cleared downloads!
+ Downloads removidos!
+
+ src/app/components/downloads/downloads.component.ts
+ 203
+
+
+
+ Failed to resume download! See server logs for more info.
+ Não foi possível retomar o download! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 230
+
+
+
+ Failed to resume all downloads! See server logs for more info.
+ Não foi possível retomar todos os downloads! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 238
+
+
+
+ Failed to restart download! See server logs for more info.
+ Não foi possível reiniciar o download! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 246
+
+
+
+ Failed to cancel download! See server logs for more info.
+ Não foi possível cancelar o download! Veja os logs do servidor para mais informações.
+
+ src/app/components/downloads/downloads.component.ts
+ 258
+
+
+
+ Confirm Password
+ Confirme a Senha
+
+ src/app/components/login/login.component.html
+ 32
+
+ Confirm Password
+
+
+ Failed to retrieve logs!
+ Não foi possível recuperar os logs!
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 46
+
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 51
+
+
+
+ Logs copied to clipboard!
+ Logs copiados para a área de transferência!
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 56
+
+
+
+ Archives
+ Arquivos
+
+ src/app/app.component.html
+ 26
+
+ Archives menu label
+
+
+ ID
+ ID
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 47
+
+ ID
+
+
+ Extractor
+ Extrator
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 57
+
+ Extractor
+
+
+ Filter
+ Filtrar
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 3
+
+ Filter
+
+
+ None
+ Nenhum
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 84
+
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 126
+
+
+ src/app/dialogs/generate-rss-url/generate-rss-url.component.html
+ 27
+
+
+ src/app/dialogs/generate-rss-url/generate-rss-url.component.html
+ 36
+
+ None
+
+
+ Download archive
+ Baixar arquivo
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 80
+
+ Download archive
+
+
+ Archive successfully imported!
+ Arquivo importado com sucesso!
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 130
+
+
+
+ Delete archives
+ Deletar arquivos
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 152
+
+
+
+ Would you like to delete archive(s)?
+ Você gostaria de apagar arquivo(s)?
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 153
+
+
+
+ Successfully deleted archive items!
+ Itens deletados com sucesso!
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 172
+
+
+
+ Failed to delete archive items!
+ Não foi possível deletar os arquivos!
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 174
+
+
+
+ ERROR: failed to create playlist!
+ ERRO: Não foi possível criar a playlist!
+
+ src/app/components/custom-playlists/custom-playlists.component.ts
+ 58
+
+
+
+ Playlist successfully removed.
+ Playlist removida com sucesso.
+
+ src/app/components/custom-playlists/custom-playlists.component.ts
+ 100
+
+
+
+ Clear downloads
+ Limpar downloads
+
+ src/app/components/downloads/downloads.component.ts
+ 175
+
+
+
+ Select downloads to clear
+ Selecione os downloads para limpar
+
+ src/app/components/downloads/downloads.component.ts
+ 176
+
+
+
+ Logs successfully cleared!
+ Logs limpos com sucesso!
+
+ src/app/components/logs-viewer/logs-viewer.component.ts
+ 75
+
+
+
+ Remove
+ Remover
+
+ src/app/components/notifications-list/notifications-list.component.html
+ 23
+
+ Remove
+
+
+ Finished downloading
+ Download terminado
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 17
+
+
+
+ Download failed
+ Download falhou
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 18
+
+
+
+ No notifications available
+ Nenhuma notificação disponível
+
+ src/app/components/notifications/notifications.component.html
+ 1
+
+ No notifications available
+
+
+ Download completed
+ Download terminado
+
+ src/app/components/notifications/notifications.component.ts
+ 23
+
+
+
+ Watch content
+ Ver conteúdo
+
+ src/app/components/downloads/downloads.component.ts
+ 50
+
+
+
+ Show error
+ Mostrar erro
+
+ src/app/components/downloads/downloads.component.ts
+ 56
+
+
+
+ Task finished
+ Tarefa terminada
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 19
+
+
+
+ Play
+ Play
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 30
+
+
+
+ Retry download
+ Tentar baixar novamente
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 31
+
+
+
+ View error
+ Ver erro
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 32
+
+
+
+ View task
+ Ver tarefa
+
+ src/app/components/notifications-list/notifications-list.component.ts
+ 33
+
+
+
+ Delete selected
+ Apagar selecionados
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 77
+
+ Delete selected
+
+
+ Upload
+ Upload
+
+ src/app/components/archive-viewer/archive-viewer.component.html
+ 137
+
+
+ src/app/dialogs/cookies-uploader-dialog/cookies-uploader-dialog.component.html
+ 30
+
+ Upload
+
+
+ Video
+ Vídeo
+
+ src/app/components/archive-viewer/archive-viewer.component.ts
+ 40
+
+
+
+ Error
+ Erro
+
+ src/app/components/downloads/downloads.component.html
+ 39
+
+ Error
+
+
+ Failed to clear finished downloads!
+ Não foi possível limpar os downloads terminados!
+
+ src/app/components/downloads/downloads.component.ts
+ 201
+
+
+
+ Share files
+ Compartilhar arquivos
+
+ src/app/components/manage-role/manage-role.component.ts
+ 20
+
+
+ src/app/components/manage-user/manage-user.component.ts
+ 22
+
+