Merge branch 'VueTubeApp:main' into main

This commit is contained in:
Adam Iskandar 2022-09-05 11:12:35 +08:00 committed by GitHub
commit 257e087e29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 392 additions and 143 deletions

View File

@ -1,26 +1,24 @@
<template>
<v-app>
<center>
<v-icon size="100">mdi-alert-circle</v-icon>
<h1
class="background--text"
:class="$vuetify.theme.dark ? 'text--lighten-4' : 'text--darken-4'"
>
An error occured!
</h1>
<v-btn to="/">Reload Application</v-btn>
<v-btn to="/mods/logs">Show Logs</v-btn>
<center style="padding: 10% 0;">
<v-icon size="100">mdi-heart-broken</v-icon>
<h1>Something went wrong</h1>
<v-btn rounded to="/" color="primary darken-2"><v-icon>mdi-restart</v-icon>Restart</v-btn>
<v-btn rounded @click="exit"><v-icon>mdi-close</v-icon>Exit</v-btn>
<div style="margin-top: 5em; color: #999; font-size: 0.75em">
<div style="font-size: 1.4em">Error Information</div>
<div>Code: {{ error.statusCode }}</div>
<div style="font-size: 1.4em">Crash Information</div>
<div>Reason: {{ error.message }}</div>
<div>Path: {{ $route.fullPath }}</div>
<div>Code: {{ error.statusCode }}</div>
</div>
</center>
</v-app>
</template>
<script>
import { App } from '@capacitor/app';
export default {
layout: "empty",
props: {
@ -29,5 +27,10 @@ export default {
default: null,
},
},
method: {
exit() {
App.exitApp()
}
}
};
</script>

View File

@ -12,12 +12,12 @@
"dependencies": {
"@capacitor/splash-screen": "^1.2.2",
"@capacitor/status-bar": "^1.0.8",
"core-js": "^3.19.3",
"core-js": "^3.25.0",
"nuxt": "^2.15.8",
"vue": "^2.6.14",
"vue-server-renderer": "^2.6.14",
"vue-template-compiler": "^2.6.14",
"vuetify": "^2.6.1",
"vue": "^2.7.10",
"vue-server-renderer": "^2.7.10",
"vue-template-compiler": "^2.7.10",
"vuetify": "^2.6.9",
"webpack": "^4.46.0"
},
"devDependencies": {
@ -26,7 +26,7 @@
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-loader": "^4.0.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^8.2.0",
"prettier": "^2.5.1"
}

View File

@ -1,77 +0,0 @@
<template>
<div>
<center>
<h2 style="margin: 2em;">{{ lang.packageinstaller }}</h2>
</center>
<v-list-item-group>
<v-list-item v-for="(item, i) in assets" :key="i" @click="dl(item)">
<v-list-item-icon>
<v-icon v-text="item.icon" />
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title v-text="item.name" />
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</div>
</template>
<script>
export default {
layout: "empty",
data() {
return {
lang: {},
releases: {},
assets: [],
icons: {
apk: "android",
ipa: "apple",
zip: "folder-zip"
}
};
},
async mounted() {
const allReleases = await this.$vuetube.releases;
this.releases = allReleases[this.$route.query.v].assets;
this.lang = this.$lang("events");
for (const i in this.releases) {
const asset = this.releases[i];
let icon = new String();
//--- Get Icon Type ---//
const fileExt = asset.name.split(".")
for (const i in this.icons) {
if (fileExt.includes(i)) {
icon = this.icons[i];
}
}
//--- Build Asset For Listing ---//
this.assets.push({
name: asset.name,
icon: "mdi-"+icon,
download_url: asset.browser_download_url
})
}
},
methods: {
dl(item) {
window.open(item.download_url, '_blank');
this.$router.push(`/mods/updates`);
}
}
};
</script>

View File

@ -11,6 +11,7 @@
<!-- Add New Key Button -->
<center>
<v-btn
rounded
@click="
addDialog = !addDialog;
selectedKey = null;

View File

@ -1,5 +1,6 @@
<template>
<div class="mainContainer pt-1">
<!-- Language Picker -->
<v-card
flat
class="pb-5 background"
@ -11,6 +12,25 @@
<language />
</v-card-text>
</v-card>
<!-- Backup -->
<v-card
flat
class="pb-5 background"
:class="$vuetify.theme.dark ? 'lighten-1' : 'darken-1'"
:style="{ borderRadius: `${roundTweak / 2}rem` }"
>
<v-card-title>{{ lang.backup }}</v-card-title>
<v-card-text>
<p>Backup or restore your application settings</p>
</v-card-text>
<v-card-actions>
<v-btn rounded color="primary darken-2" @click="registryBackup">{{ lang.backup }}</v-btn>
<v-btn rounded @click="registryRestore">{{ lang.restore }}</v-btn>
</v-card-actions>
</v-card>
</div>
</template>
@ -34,6 +54,45 @@ export default {
const lang = this.$lang();
this.lang = lang.mods.general;
},
methods: {
download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
},
getRegistry() {
let keys = [];
const localStorageKeys = Object.keys(localStorage);
for (const i in localStorageKeys) {
const key = localStorageKeys[i];
const keyValue = localStorage.getItem(key);
keys.push({ key: key, value: keyValue });
}
return keys;
},
registryBackup() {
const file = JSON.stringify({
scheme: "VueTube Backup",
version: process.env.version,
channel: process.env.channel,
date: Date.now(),
registry: this.getRegistry()
});
this.download("vuetube-backup.json",file);
},
registryRestore() {
}
}
};
</script>

View File

@ -7,7 +7,27 @@ module.exports = {
library: "媒体库",
restart: "重新启动",
later: "稍后",
settingRestart: "此设置修改后需要重新启动应用程序才会生效。"
settingRestart: "此设置修改后需要重新启动应用程序才会生效。",
okay: "确定",
},
pages: {
index: "",
home: "首页",
library: "媒体库",
search: "搜索",
settings: "设置",
subscriptions: "订阅内容",
watch: "观看",
about: "关于",
developer: "开发者",
general: "常用",
player: "播放器",
plugins: "插件",
startup: "启动选项",
theme: "主题",
tweaks: "界面调整",
updates: "更新"
},
index: {
@ -26,12 +46,14 @@ module.exports = {
updates: "更新",
logs: "日志",
about: "关于",
devmode: "注册表编辑工具",
devmode: "开发者模式",
},
mods: {
general: {
language: "语言",
backup: "备份",
restore: "从备份回复",
},
theme: {
normal: "正常",
@ -54,6 +76,7 @@ module.exports = {
defaultpage: "默认页",
},
updates: {
updating: "下载更新中",
checking: "检查更新中",
available: "有更新可用",
noupdate: "没有更新可用",
@ -62,9 +85,14 @@ module.exports = {
installed: "目前版本",
latest: "最新版本",
published: "发布日期",
users: "用家数目",
size: "更新大小",
okay: "確定",
refresh: "刷新",
update: "更新",
later: "稍後",
later: "稍",
},
logs: {
more: "更多",
@ -81,20 +109,34 @@ module.exports = {
github: "GitHub",
discord: "Discord",
},
developer: {
registryeditor: "注册表编辑工具",
registrywarning: "更改项目可能会令应用程序损毁!",
createentry: "加入项目",
createentryfull: "加入注册表项目",
cancel: "取消",
create: "加入",
key: "键",
value: "值项",
confirmdelete: "确认删除",
areyousure: "您确认要删除",
delete: "删除",
change: "更改",
},
},
events: {
welcome: "欢迎使用 VueTube",
tagline: "流媒体的未来",
next: "下一步",
updated: "VueTube 已更新!",
updated: "VueTube 已更新",
awesome: "真棒!",
langsetup: "来选择一种语言吧!",
featuresetup: "来拣选一些功能吧!",
enableryd: "启用 Return YouTube Dislike",
enablespb: "启用 SponsorBlock",
thanks: "谢谢使用 VueTube",
enjoy: "祝你有一个愉快的体验",
enjoy: "祝有一个愉快的体验",
packageinstaller: "选择要下载的应用包"
},
};

View File

@ -7,7 +7,27 @@ module.exports = {
library: "媒體庫",
restart: "重新啟動",
later: "稍後",
settingRestart: "此設定更改後需要重新啟動應用程式才會生效。"
settingRestart: "此設定更改後需要重新啟動應用程式才會生效。",
okay: "確定",
},
pages: {
index: "",
home: "主頁",
library: "媒體庫",
search: "搜尋",
settings: "設定",
subscriptions: "訂閲項目",
watch: "觀看",
about: "關於",
developer: "開發人員",
general: "一般",
player: "播放器",
plugins: "插件",
startup: "啟動",
theme: "主題",
tweaks: "介面調整",
updates: "更新"
},
index: {
@ -26,12 +46,14 @@ module.exports = {
updates: "更新",
logs: "紀錄檔",
about: "關於",
devmode: "登錄檔編輯工具",
devmode: "開發人員模式",
},
mods: {
general: {
language: "語言",
backup: "備份",
restore: "從備份回復",
},
theme: {
normal: "正常",
@ -54,6 +76,7 @@ module.exports = {
defaultpage: "預設頁",
},
updates: {
updating: "下載更新中",
checking: "檢查更新中",
available: "有更新可用",
noupdate: "沒有更新可用",
@ -62,7 +85,12 @@ module.exports = {
installed: "目前版本",
latest: "最新版本",
published: "發佈日期",
users: "用家數目",
size: "更新大小",
okay: "確定",
refresh: "重新整理",
update: "更新",
later: "稍後",
},
@ -81,20 +109,34 @@ module.exports = {
github: "GitHub",
discord: "Discord",
},
developer: {
registryeditor: "登錄檔編輯工具",
registrywarning: "更改項目可能會令應用程式損毀!",
createentry: "加入項目",
createentryfull: "加入登錄檔項目",
cancel: "取消",
create: "加入",
key: "鍵",
value: "值項",
confirmdelete: "確定刪除",
areyousure: "您確定要刪除",
delete: "刪除",
change: "更改",
},
},
events: {
welcome: "歡迎使用 VueTube",
tagline: "影音串流的未來",
next: "下一步",
updated: "VueTube 已更新!",
updated: "VueTube 已更新",
awesome: "真棒!",
langsetup: "來選擇一種語言吧!",
featuresetup: "來揀選一些功能吧!",
enableryd: "啟用 Return YouTube Dislike",
enablespb: "啟用 SponsorBlock",
thanks: "謝謝使用 VueTube",
enjoy: "祝你有一個愉快的體驗",
packageinstaller: "選擇要下載的套件"
enjoy: "祝有一個愉快的體驗",
packageinstaller: "選擇要下載的套件",
},
};

View File

@ -12,6 +12,25 @@ module.exports = {
okay: "Okay",
},
pages: {
index: "",
home: "Home",
library: "Library",
search: "Search",
settings: "Settings",
subscriptions: "Subscriptions",
watch: "Watch",
about: "About",
developer: "Developer",
general: "General",
player: "Player",
plugins: "Plugins",
startup: "Startup",
theme: "Theme",
tweaks: "Tweaks",
updates: "Updates"
},
index: {
connecting: "Connecting",
plugins: "Loading Plugins",
@ -34,6 +53,8 @@ module.exports = {
mods: {
general: {
language: "Language",
backup: "Backup",
restore: "Restore"
},
theme: {
normal: "Normal",

View File

@ -7,7 +7,28 @@ module.exports = {
library: "라이브러리",
restart: "재시작",
later: "나중에",
settingRestart: "이 설정을 수정하려면 애플리케이션을 다시 시작해야 변경 사항이 적용됩니다."
settingRestart:
"이 설정을 수정하려면 애플리케이션을 다시 시작해야 변경 사항이 적용됩니다.",
okay: "확인",
},
pages: {
index: "",
home: "홈",
library: "라이브러리",
search: "검색",
settings: "설정",
subscriptions: "구독",
watch: "시청",
about: "정보",
developer: "개발자 모드",
general: "일반",
player: "플레이어",
plugins: "플러그인",
startup: "시작 옵션",
theme: "테마",
tweaks: "UI 트윅",
updates: "업데이트",
},
index: {
@ -32,6 +53,8 @@ module.exports = {
mods: {
general: {
language: "언어",
backup: "백업",
restore: "복원",
},
theme: {
normal: "기본",
@ -58,7 +81,8 @@ module.exports = {
checking: "업데이트 확인 중",
available: "사용 가능한 업데이트가 있습니다",
noupdate: "사용 가능한 업데이트가 없습니다",
noupdatemessage: "VueTube의 최신 버전을 사용하고 있습니다. 나중에 다시 확인해주세요.",
noupdatemessage:
"VueTube의 최신 버전을 사용하고 있습니다. 나중에 다시 확인해주세요.",
installed: "설치된 버전",
latest: "최신 버전",
@ -87,6 +111,20 @@ module.exports = {
github: "GitHub",
discord: "Discord",
},
developer: {
registryeditor: "레지스트리 편집기",
registrywarning: "엔트리 변경 시 애플리케이션이 정상적으로 작동하지 않을 수 있습니다!",
createentry: "엔트리 생성",
createentryfull: "레지스트리 엔트리 생성",
cancel: "취소",
create: "생성",
key: "키",
value: "값",
confirmdelete: "삭제 확인",
areyousure: "정말로 삭제하시겠습니까?",
delete: "삭제",
change: "변경",
},
},
events: {

View File

@ -1,10 +1,10 @@
{
"dependencies": {
"@capacitor-community/http": "^1.4.1",
"@capacitor/android": "^3.4.0",
"@capacitor/android": "^3.7.0",
"@capacitor/app": "^1.1.1",
"@capacitor/cli": "^3.4.0",
"@capacitor/core": "^3.4.0",
"@capacitor/cli": "^3.7.0",
"@capacitor/core": "^3.7.0",
"@capacitor/device": "^1.1.2",
"@capacitor/filesystem": "^1.1.0",
"@capacitor/haptics": "^1.1.4",

View File

@ -277,5 +277,5 @@ Other VueTube repos
<hr>
<p align="center">
<sub>VueTube, making people happy and inspiring their hearts since 2022.</sub>
<img src="resources/bottom_banner_readme.png" width="800">
</p>

View File

@ -4,14 +4,14 @@
</a>
</br>
<details>
<summary>Mostrar créditos del Readme</summary>
<summary>Mostrar créditos de la documentación</summary>
<sub>Logo por <a href="https://github.com/afnzmn">@afnzmn</a>, traducción por <a href="https://github.com/gayolgate">@gayolgate</a></sub></br>
<sub>Contribuidores del Readme en Inglés: <a href="https://github.com/404-Program-not-found">@404-Program-not-found</a>, <a href="https://github.com/Frontesque">@Frontesque</a>, <a href="https://github.com/gayolGate">@gayolGate</a>, <a href="https://github.com/ThatOneCalculator">@ThatOneCalculator</a>, <a href="https://github.com/afnzmn">@afnzmn</a>, <a href="https://github.com/tired6488">@tired6488</a>, <a href="https://github.com/DARKDRAGON532">@DARKDRAGON532</a>, <a href="https://github.com/PickleNik">@PickleNik</a> y <a href="https://github.com/Zyborg777">@Zyborg777</a></sub>
</details>
<p align="center">
<strong>Un cliente sencillo de streaming de vídeo FOSS diseñado para recrear TODAS las características de sus respectivas aplicaciones (y más) </strong>
<strong>Un cliente sencillo y abierto de streaming de vídeo diseñado para recrear TODAS las características de sus respectivas aplicaciones (y más) </strong>
</br>
Se pronuncia Viu Tuf (<code>/ˈvjuːˌtjuːb/</code>)
</p>
@ -27,52 +27,89 @@ Se pronuncia Viu Tuf (<code>/ˈvjuːˌtjuːb/</code>)
**Leer en otros idiomas:** [English,](/readme.md) [Español,](readme.es.md) [简体中文,](readme.zh-hans.md) [繁體中文,](readme.zh-hant.md) [日本語,](readme.ja.md) [עִברִית,](readme.he.md) [Nederlands,](readme.nl.md) [தமிழ்,](readme.ta.md) [Bahasa Melayu,](readme.ms.md) [Македонски,](readme.mk.md) [Français,](readme.fr.md) [Português Brasileiro,](readme.pt-br.md) [Bahasa Indonesia,](readme.id.md) [Polski,](readme.pl.md) [Български,](readme.bg.md) [Italiano,](readme.it.md) [Magyar,](readme.hu.md) [한국어,](readme.kr.md) [Tiếng Việt,](readme.vi.md) [Română](readme.ro.md)
## Características
<h2 align="left">
<sub>
<img src="/resources/readme_icon_features.png"
height="30"
width="30">
</sub>
Características
</h2>
<img src="../resources/readme-es/Features.es.svg" alt="VueTube icon" height="100"/>
- 🎨 **Temas:** Claro, Oscuro, OLED y todos los colores del arcoíris
- 🖌️ **Interfaz personalizable:** Puedes personalizar completamente el color principal, y otras partes de la interfaz para eliminar características que no usas.
- ⬆️ **Actualizaciones automáticas:** Recibe una notificación cuando haya una actualización disponible y baja de versión si no te gusta.
- 👁️ **Protección contra el rastreo:** No se envían datos desde tu dispositivo por defecto. ¡La privacidad es necesaria!
- 📺 **Reproductor de vídeo personalizado:** Un reproductor integrado en la aplicación con todo lo que necesitas para ser feliz, cómo velocidad 16x.
- 👎 **Return YouTube Dislike** - [_Más información_](https://returnyoutubedislike.com)
- 💰 **SponsorBlock** - [_Más información_](https://sponsor.ajay.app)
- 🎨 **Temas:** ¡Claro, oscuro, OLED y todos los colores del arcoíris! Elige el color de acento y de fondo según tus preferencias.
- 🖌️ **Interfaz personalizable:** Personaliza los botones, las esquinas y desactiva partes de la interfaz que no usas para una experiencia óptima.
- ⬆️ **Actualizaciones automáticas:** ¡Recibe una notificación cuando haya una actualización disponible, descárgala desde la app y baja de versión si no te gusta!
- 👁️ **Protección contra el rastreo:** No se envían datos desde tu dispositivo por defecto. y no usamos APIs externas. ¡La privacidad es necesaria!
- 📺 **Reproductor de vídeo personalizado:** Hay un reproductor integrado en la aplicación con todo lo que necesitas para ser feliz, cómo velocidad 16x.
- 🌍 **Traducciones:** ¡La app está disponible en más de 25 idiomas! El idioma predeterminado se determina según los ajustes de tu dispositivo.
- 👎 **Return YouTube Dislike** - Activa de nuevo los contadores de dislikes. [_Más información_](https://returnyoutubedislike.com)
- 💰 **SponsorBlock** - Salta automáticamente patrocinadores y segmentos molestos en vídeos. [_Más información_](https://sponsor.ajay.app)
## Instalar
<h2 align="left">
<sub>
<img src="/resources/readme_icon_install.png"
height="30"
width="30">
</sub>
Instalar
</h2>
<img src="../resources/readme-es/Install.es.svg" alt="VueTube icon" height="100"/>
Para instalar, por favor, visita www.vuetube.app/install
Para instalar, por favor, visita www.vuetube.app/install o mira todas las versiones disponibles:
<details>
<summary>O haz clic aquí para mostrar todas las versiones disponibles</summary>
<summary>🖱️ Haz clic para mostrar las versiones </summary>
<br />
### Android
| <a href=https://nightly.link/VueTubeApp/VueTube/workflows/ci/main/android.zip><img id="im" width="200" src=../resources/getunstable.png></a> | <a href=https://github.com/VueTubeApp/VueTube/releases/download/0.2/VueTube-Canary-June-15-2022.apk><img id="im" width="200" src=../resources/getcanary.png></a> | <a href=https://vuetube.app/install><img id="im" width="200" src=../resources/getstable.png></a> |
| ------------- | ------------- | ------------- |
| Un montón de bugs, pero acceso anticipado a funciones | Menos bugs que la inestable, aún así más funciones que la estable | No disponible hasta que la app este más desarrollada |
### iOS
| <a href=https://nightly.link/VueTubeApp/VueTube/workflows/ci/main/iOS.zip><img id="im" width="200" src=../resources/getunstable.png></a> | <a href=https://cdn.discordapp.com/attachments/949908267855921163/972164558930198528/VueTube-Canary-May-6-2022.ipa><img id="im" width="200" src=../resources/getcanary.png></a> | <a href=https://vuetube.app/install><img id="im" width="200" src=../resources/getstable.png></a> |
| ------------- | ------------- | ------------- |
| Un montón de bugs, pero acceso anticipado a funciones | Menos bugs que la inestable, aún así más funciones que la estable | No disponible hasta que la app este más desarrollada |
</details>
## Planes
<h2 align="left">
<sub>
<img src="/resources/readme_icon_plans.png"
height="30"
width="30">
</sub>
Planes
</h2>
<img src="../resources/readme-es/Plans.es.svg" alt="VueTube icon" height="100"/>
- **🔍 Búsqueda avanzada:** Ordena los resultados por fecha, duración, likes o cualquier otro factor.
- **🗞️ Historial de búsqueda local:** Obtén tus últimos vídeos vistos sin iniciar sesión.
- ✂️ **Shorts (Cortos):** Videos cortos que duran entre 15 y 60 segundos.
- ✂️ **Shorts (Cortos):** Videos cortos verticales que duran entre 15 y 60 segundos.
- 🧑 **Inicio de sesión con tu cuenta de Google:** Inicia sesión para tener una experiencia completa votando y comentando vídeos y suscribiendote a canales.
- 🖼️ **Modo Imagen en imagen:** Te permite ver vídeos en una ventana flotante mientras usas otra aplicación.
- 🧩 **Complementos:** ¡Instala complementos de terceros hechos por la comunidad con funciones útiles!
- ¡y más!
## Capturas de pantalla
<h2 align="left">
<sub>
<img src="/resources/readme_icon_screenshots.png"
height="30"
width="30">
</sub>
Capturas de pantalla
</h2>
Echalas un vistazo en nuestro sitio web: www.vuetube.app/info/screenshots
[Echalas un vistazo en nuestro sitio web](www.vuetube.app/info/screenshots) o haz clic abajo para mostrarlas.
<details>
<summary> O haz clic aquí para mostrar las capturas </summary>
<summary>🖱️ Haz clic para mostrar las capturas </summary>
<br />
<img src="https://vuetube.app/wtch.png" width="400">
@ -81,10 +118,32 @@ Echalas un vistazo en nuestro sitio web: www.vuetube.app/info/screenshots
</details>
## Progreso
<h2 align="left">
<sub>
<img src="/resources/readme_icon_community.png"
height="30"
width="30">
</sub>
Comunidad
</h2>
Usamos diferentes plataformas para comunicarnos con nuestra comunidad. Puedes participar activamente en el desarrollo de VueTube o simplemente mantenerte al día de las novedades uniéndote a estos grupos (de habla inglesa):
- Servidor de Discord (https://vuetube.app/discord)
- Grupo de Telegram (https://t.me/vuetube)
- Página de Reddit (https://www.reddit.com/r/vuetube)
<h2 align="left">
<sub>
<img src="/resources/readme_icon_progress.png"
height="30"
width="30">
</sub>
Progreso
</h2>
<details>
<summary> Haz clic aquí para mostrar el progreso </summary>
<summary>🖱️ Haz clic aquí para mostrar el progreso </summary>
<br>
@ -118,43 +177,104 @@ Echalas un vistazo en nuestro sitio web: www.vuetube.app/info/screenshots
<a href="https://capacitorjs.com/solution/vue"><img src="https://cdn.discordapp.com/attachments/953538236716814356/955694368742834176/Capacitator-Dark.svg" height=40/></a> <a href="https://vuetifyjs.com/"><img src="https://cdn.discordapp.com/attachments/810799100940255260/973719873467342908/Vuetify-Dark.svg" height=40/></a> <a href="https://nuxtjs.org/"><img src="https://github.com/tandpfun/skill-icons/raw/main/icons/NuxtJS-Dark.svg" height=40/></a> <a href="https://vuejs.org/"><img src="https://github.com/tandpfun/skill-icons/raw/main/icons/VueJS-Dark.svg" height=40/></a> <a href="https://javascript.com/"><img src="https://github.com/tandpfun/skill-icons/raw/main/icons/JavaScript.svg" height=40/></a> <a href="https://java.com/"><img src="https://github.com/tandpfun/skill-icons/raw/main/icons/Java-Dark.svg" height=40/></a> <a href="https://gradle.com/"><img src="https://cdn.discordapp.com/attachments/810799100940255260/955691550560636958/Gradle.svg" height=40/></a> <a href="https://developer.apple.com/swift/"><img src="https://github.com/tandpfun/skill-icons/raw/main/icons/Swift.svg" height=40/></a>
### ¿Porque estoy haciendo esto?
### ¿Porque estamos haciendo esto?
Bueno, esto ha estado en el servidor de Discord de Return YouTube Dislike durante bastante tiempo, ¡así que pensé que probablemente debería lanzarlo!
VueTube fue creado con la intención de darle al mundo una alternativa gratuita, abierta y completa a las grandes tecnólogicas, con muchas opciones de personalización e inicio de sesión disponible. El proyecto fue creciendo, atrayendo a miles de usuarios y ayudantes alreredor del mundo. Puedes unirte a nosotros y contribuir de la forma que más se adapte a ti...
### ¿Quieres contribuir?
Por favor, lee en nuestro sitio web cómo hacerlo: www.vuetube.app/contributing
¡Gracias por estar interesado en contribuir! Por favor, lee en nuestro sitio web cómo hacerlo: www.vuetube.app/contributing
Si quieres traducir la app, [haz clic aquí](/NUXT/plugins/languages) y lee cómo hacerlo
Si quieres traducir la app, [haz clic aquí](/NUXT/plugins/languages) y lee las instrucciones. Si GitHub es incómodo o díficil para ti, puedes mandarnos los campos traducidos en un archivo de texto en nuestro [Discord](https://vuetube.app/discord) y nosotros los implementaremos. ¡No te preocupes!
## Colaboradores
<h2 align="left">
<sub>
<img src="/resources/readme_icon_github.png"
height="30"
width="30">
</sub>
Colaboradores de GitHub
</h2>
<a href="https://github.com/VueTubeApp/VueTube/graphs/contributors">
<img src="https://contrib.rocks/image?repo=VueTubeApp/VueTube" />
</a>
<sub>Hecho con [contrib.rocks](https://contrib.rocks). </sub>
<sub>Panel hecho automáticamente con [contrib.rocks](https://contrib.rocks). </sub>
## Agradecimientos
<h2 align="left">
<sub>
<img src="/resources/readme_icon_acknowledgements.png"
height="30"
width="30">
</sub>
Agradecimientos
</h2>
- Emojis por el [equipo de Twemoji](https://twemoji.twitter.com/), Con licencia [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/)
- Logo de VueTube por [@afnzmn](https://github.com/afnzmn)
- Estadísticas públicas de dislikes proporcionadas por [Return YouTube Dislike](https://returnyoutubedislike.com)
- Ajay y su comunidad por proporcionarnos la [API de Sponsorblock](https://sponsor.ajay.app), Licenciada bajo [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
## Donar
<h2 align="left">
<sub>
<img src="/resources/readme_icon_donate.png"
height="30"
width="30">
</sub>
Donar
</h2>
VueTube es y siempre será gratuito y de código abierto, pero puedes apoyar a nuestros desarrolladores con una donación que servirá para mantener el proyecto.
VueTube es y siempre será gratuito y de código abierto, pero puedes apoyar a nuestros desarrolladores con una donación que servirá para mantener el proyecto y desarrollar nuevas funciones. ¡Cualquier ayuda es bien recibida! Estas son las opciones de donación disponibles:
[Donar en Ko-Fi.com](https://ko-fi.com/vuetube) (Oficial)
[Donar a PickleNik en GitHub](https://github.com/sponsors/PickleNik) (Mantenedor)
[Donar a PickleNik en GitHub](https://github.com/sponsors/PickleNik) (Encargado de mantenimiento)
## Aviso legal
<h2 align="left">
<sub>
<img src="/resources/readme_icon_disclaimer.png"
height="30"
width="30">
</sub>
Aviso legal
</h2>
El proyecto VueTube y sus contenidos no están afiliados, financiados, autorizados, respaldados o asociados de ninguna manera con YouTube, Google LLC o cualquiera de sus filiales y subsidiarias. El sitio web oficial de YouTube se encuentra en [www.youtube.com](https://www.youtube.com).
Cualquier marca comercial, de servicio, nombre comercial u otros derechos de propiedad intelectual utilizados en el proyecto VueTube son propiedad de sus respectivos dueños.
En caso de conflicto entre las traducciones del aviso legal, tiene preferencia la versión en inglés.
<h2 align="left">
<sub>
<img src="/resources/readme_icon_otherrepos.png"
height="30"
width="30">
</sub>
Otros repositorios de VueTube
</h2>
<details>
<summary> 🖱️ Haz clic para mostrar los repositorios </summary>
<br>
[![VueTube Extractor](https://github-readme-stats.vercel.app/api/pin/?username=VueTubeApp&repo=VueTube-Extractor)](https://github.com/VueTubeApp/VueTube-Extractor)
**VueTube Extractor** es una librería para extraer datos de servicios de streaming, diseñada para ser usada en VueTube.
[![VueTube Translator](https://github-readme-stats.vercel.app/api/pin/?username=VueTubeApp&repo=VueTube-Translator)](https://github.com/VueTubeApp/VueTube-Translator)
**VueTube Translator** es una herramienta para traducir campos de archivos de GitHub como JSON o JS y exportar el resultado con la estructura correcta. Fue creado para ayudar a la comunidad de traductores de VueTube pero puede ser usado para cualquier otro propósito.
[![VueTube HTTP](https://github-readme-stats.vercel.app/api/pin/?username=VueTubeApp&repo=vuetube-http)](https://github.com/VueTubeApp/vuetube-http)
**VueTube HTTP** es un plugin para peticiones nativas de HTTP, descargas y subidas de archivos y la administración de cookies. Es una reinvención del [proyecto original de HTTP](https://github.com/capacitor-community/http) de Capacitor Community, con adiciones por el equipo de VueTube.
</details>
<hr>
<p align="center">
<sub>VueTube, haciendo a la gente feliz e iluminando sus corazones desde 2022.</sub>
</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB