Merge github.com-picklenik:Frontesque/VueTube

This commit is contained in:
Nikita Krupin 2022-12-12 03:41:08 -05:00
commit 0d2c1af444
11 changed files with 275 additions and 66 deletions

View File

@ -54,7 +54,7 @@
}rem 0rem 0rem !important` }rem 0rem 0rem !important`
: '0', : '0',
}" }"
:poster="getThumbnail($route.query.v)" :poster="$youtube.getThumbnail($route.query.v, 'max', [])"
@loadedmetadata="checkDimensions()" @loadedmetadata="checkDimensions()"
@click="controlsHandler()" @click="controlsHandler()"
/> />
@ -352,7 +352,6 @@ import progressbar from "~/components/Player/progressbar.vue";
import sponsorblock from "~/components/Player/sponsorblock.vue"; import sponsorblock from "~/components/Player/sponsorblock.vue";
import backType from "~/plugins/classes/backType"; import backType from "~/plugins/classes/backType";
import Thumbnail from "~/plugins/thumbnail";
export default { export default {
components: { components: {
@ -624,11 +623,6 @@ export default {
this.$refs.player.playbackRate = speed; this.$refs.player.playbackRate = speed;
this.$refs.audio.playbackRate = speed; this.$refs.audio.playbackRate = speed;
}, },
getThumbnail(query) {
const thumbnail = new Thumbnail();
return thumbnail.getThumbnail(query, "max", []);
},
checkDimensions() { checkDimensions() {
if (this.$refs.player.videoHeight > this.$refs.player.videoWidth) { if (this.$refs.player.videoHeight > this.$refs.player.videoWidth) {
this.isVerticalVideo = true; this.isVerticalVideo = true;

View File

@ -14,6 +14,7 @@
</v-card> </v-card>
<!-- Backup --> <!-- Backup -->
<!--
<v-card <v-card
flat flat
class="pb-5 background" class="pb-5 background"
@ -29,6 +30,7 @@
<v-btn rounded @click="registryRestore">{{ lang.restore }}</v-btn> <v-btn rounded @click="registryRestore">{{ lang.restore }}</v-btn>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
-->
</div> </div>

View File

@ -262,6 +262,20 @@ class Innertube {
}); });
} }
// Static methods
static getThumbnail(id, resolution) {
if (resolution == "max") {
const url = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;
let img = new Image();
img.src = url;
img.onload = function () {
if (img.height !== 120) return url;
};
}
return `https://img.youtube.com/vi/${id}/mqdefault.jpg`;
}
// Simple Wrappers // Simple Wrappers
async getRecommendationsAsync() { async getRecommendationsAsync() {
const rec = await this.browseAsync("recommendations"); const rec = await this.browseAsync("recommendations");

View File

@ -1,4 +1,3 @@
module.exports = { module.exports = {
name: "Azerbaijan", name: "Azerbaijan",
@ -6,7 +5,7 @@ module.exports = {
home: "Ev", home: "Ev",
subscriptions: "Abunəliklər", subscriptions: "Abunəliklər",
library: "Kitabxana", library: "Kitabxana",
restart: "Yenidən başladın", restart: "Yenidən başlat",
later: "Daha sonra", later: "Daha sonra",
settingRestart: settingRestart:
"Bu seçimin dəyişdirilməsi dəyişikliklərin tətbiq edilməsi üçün tətbiqin yenidən başladılmasını tələb edir.", "Bu seçimin dəyişdirilməsi dəyişikliklərin tətbiq edilməsi üçün tətbiqin yenidən başladılmasını tələb edir.",
@ -17,7 +16,7 @@ module.exports = {
index: "", index: "",
home: "Ev", home: "Ev",
library: "Kitabxana", library: "Kitabxana",
search: "Axtarın", search: "Axtar",
settings: "Tənzimləmələr", settings: "Tənzimləmələr",
subscriptions: "Abunəliklər", subscriptions: "Abunəliklər",
watch: "İzlə", watch: "İzlə",
@ -54,9 +53,9 @@ module.exports = {
mods: { mods: {
general: { general: {
language: "Dil", language: "Dil",
backup: "Backup", backup: "Nüsxələ",
backupinfo: "Backup or restore your application settings", backupinfo: "Tətbiq tənzimləmələrinizi nüsxələyin və ya bərpa edin",
restore: "Restore" restore: "Bərpa et"
}, },
theme: { theme: {
normal: "Normal", normal: "Normal",
@ -91,11 +90,11 @@ module.exports = {
published: "Dərc edilmişdir", published: "Dərc edilmişdir",
users: "İstifadəçilər", users: "İstifadəçilər",
size: "Ölçüsünü yeniləyin", size: "Ölçüsünü yenilə",
okay: "Oldu", okay: "Oldu",
refresh: "yenilə", refresh: "yenilə",
update: "Yeniləyin", update: "Yenilə",
later: "Daha sonra", later: "Daha sonra",
}, },
logs: { logs: {
@ -116,14 +115,14 @@ module.exports = {
developer: { developer: {
registryeditor: "Reyestr redaktoru", registryeditor: "Reyestr redaktoru",
registrywarning: "GİRİŞLƏRİN DƏYİŞİLMƏSİ TƏTBİQİNİZİN SINMASINA SƏBƏB OLA BİLƏR!", registrywarning: "GİRİŞLƏRİN DƏYİŞİLMƏSİ TƏTBİQİNİZİN SINMASINA SƏBƏB OLA BİLƏR!",
createentry: "Giriş yaradın", createentry: "Giriş yarat",
createentryfull: "Reyestr girişi yaradın", createentryfull: "Reyestr girişi yarat",
cancel: "İmtina", cancel: "İmtina",
create: "Yaradın", create: "Yarat",
key: "Açar", key: "Açar",
value: "Dəyər", value: "Dəyər",
confirmdelete: "Silməni təsdiqləyin", confirmdelete: "Silməni təsdiqlə",
areyousure: "Silmək istədiyinizə əminsiniz", areyousure: "Silmək istədiyinizə əminsiniz?",
delete: "Sil", delete: "Sil",
change: "Dəyiş", change: "Dəyiş",
}, },

View File

@ -122,7 +122,7 @@ module.exports = {
key: "Key", key: "Key",
value: "Value", value: "Value",
confirmdelete: "Confirm delete", confirmdelete: "Confirm delete",
areyousure: "Are you sure that you want to delete", areyousure: "Are you sure that you want to delete?",
delete: "Delete", delete: "Delete",
change: "Change", change: "Change",
}, },

View File

@ -7,14 +7,34 @@ module.exports = {
library: "Pustaka", library: "Pustaka",
restart: "Mulakan semula", restart: "Mulakan semula",
later: "Kemudian", later: "Kemudian",
settingRestart: "Mengubah tetapan ini memerlukan apl untuk dimulakan semula untuk menerapkan tetapan.", settingRestart:
okay: "OK", "Mengubah tetapan ini memerlukan apl untuk dimulakan semula untuk menerapkan tetapan.",
okay: "OK",
},
pages: {
index: "",
home: "Laman Utama",
library: "Pustaka",
search: "Cari",
settings: "Tetapan",
subscriptions: "Langganan",
watch: "Tonton",
about: "Tentang",
developer: "Pembangun",
general: "Umum",
player: "Pemain",
plugins: "Pemalam",
startup: "Permulaan",
theme: "Tema",
tweaks: "Pelarasan",
updates: "Kemaskini"
}, },
index: { index: {
connecting: "Menyambung", connecting: "Menyambung",
plugins: "Memuatkan Pemalam", plugins: "Memuatkan Pemalam",
launching: "Memulakan", launching: "Melancarkan",
}, },
settings: { settings: {
@ -33,6 +53,9 @@ module.exports = {
mods: { mods: {
general: { general: {
language: "Bahasa", language: "Bahasa",
backup: "Sandaran",
backupinfo: "Sandarkan atau pulihkan semula tetapan aplikasi anda",
restore: "Pulihkan semula"
}, },
theme: { theme: {
normal: "Normal", normal: "Normal",
@ -55,10 +78,12 @@ module.exports = {
defaultpage: "Halaman Lalai", defaultpage: "Halaman Lalai",
}, },
updates: { updates: {
updating: "Memuat turun kemaskini",
checking: "Menyemak kemaskini", checking: "Menyemak kemaskini",
available: "Kemaskini Tersedia", available: "Kemaskini tersedia",
noupdate: "Tiada kemaskini tersedia", noupdate: "Tiada kemaskini tersedia",
noupdatemessage: "Anda sedang menggunakan versi terkini VueTube. Sila periksa kemudian untuk kemaskini.", noupdatemessage:
"Anda sedang menggunakan versi terkini VueTube. Sila periksa kemudian untuk kemaskini.",
installed: "Versi Dipasang", installed: "Versi Dipasang",
latest: "Versi Terkini", latest: "Versi Terkini",
@ -87,13 +112,27 @@ module.exports = {
github: "GitHub", github: "GitHub",
discord: "Discord", discord: "Discord",
}, },
developer: {
registryeditor: "Editor Daftaran",
registrywarning: "MENGUBAH SEBARANG ENTRI MUNGKIN MENYEBABKAN APLIKASI ANDA ROSAK!",
createentry: "Cipta entri",
createentryfull: "Cipta entri daftaran",
cancel: "Batal",
create: "Cipta",
key: "Kunci",
value: "Nilai",
confirmdelete: "Sahkan pemadaman",
areyousure: "Adakah anda pasti untuk memadamkannya?",
delete: "Padam",
change: "Ubah",
},
}, },
events: { events: {
welcome: "Selamat Datang ke VueTube", welcome: "Selamat Datang ke VueTube",
tagline: "Masa hadapan penstriman video", tagline: "Masa hadapan penstriman video",
next: "Seterusnya", next: "Seterusnya",
updated: "VueTube telah dikemaskini!", updated: "VueTube telah dikemaskini",
awesome: "Hebat", awesome: "Hebat",
langsetup: "Sila pilih bahasa anda", langsetup: "Sila pilih bahasa anda",
featuresetup: "Sila pilih beberapa ciri", featuresetup: "Sila pilih beberapa ciri",
@ -101,6 +140,6 @@ module.exports = {
enablespb: "Dayakan SponsorBlock", enablespb: "Dayakan SponsorBlock",
thanks: "Terima Kasih kerana Menggunakan VueTube", thanks: "Terima Kasih kerana Menggunakan VueTube",
enjoy: "Kami harap anda mempunyai pengalaman yang menakjubkan", enjoy: "Kami harap anda mempunyai pengalaman yang menakjubkan",
packageinstaller: "Pilih salah satu pakej untuk dimuat turun" packageinstaller: "Pilih salah satu pakej untuk dimuat turun",
}, },
}; };

View File

@ -0,0 +1,145 @@
module.exports = {
name: "മലയാളം",
global: {
home: "ഇല്ലം",
subscriptions: "വരികൾ",
library: "ലൈബ്രറി",
restart: "വീണ്ടുും തുടങ്ങുക",
later: "പിന്നീട്",
settingRestart:
"ഈ ഏർപ്പാടുകൾ മാറ്റിയാൽ, അവ നിലവിൽ വരാനായി ആപ്പ് വീണ്ടുും തുടങ്ങേണ്ടതായി വരുും.",
okay: "ശരി",
},
pages: {
index: "ചൂണ്ടി",
home: "ഇല്ലം",
library: "ലൈബ്രറി",
search: "തിരയുക",
settings: "ഏർപ്പാടുകൾ",
subscriptions: "വരികൾ",
watch: "കാണുക",
about: "കുറിച്ച്",
developer: "ചമയ്ക്കുന്നയാൾ",
general: "പൊതു",
player: "വീഡിയോകാട്ടി",
plugins: "കൂട്ടിച്ചേർക്കലുകൾ",
startup: "തുടക്കം",
theme: "ചായം",
tweaks: "മാറ്റങ്ങൾ",
updates: "മെച്ചപ്പെടുത്തലുകൾ"
},
index: {
connecting: "കൂട്ടിയിണക്കുന്നു",
plugins: "കൂട്ടിച്ചേർക്കലുകൾ കയറ്റുന്നു",
launching: "തുറക്കുന്നു",
},
settings: {
general: "പൊതു",
theme: "ചായം",
player: "വീഡിയോകാട്ടി",
uitweaker: "ഇടപഴക്കമീടു മാറ്റി",
startupoptions: "തുടക്ക ഏർപ്പാടുകൾ",
plugins: "കൂട്ടിച്ചേർക്കലുകൾ",
updates: "മെച്ചപ്പെടുത്തലുകൾ",
logs: "പതിവുകൾ",
about: "കുറിച്ച്",
devmode: "ചമയ്ക്കൽ മട്ട്",
},
mods: {
general: {
language: "മൊഴി",
backup: "പിന്തുണകൊടുക്കുക",
backupinfo: "താങ്കളുടെ ആപ്പ് ഏർപ്പാടുകൾ വീണ്ടെടുക്കുക അല്ലെങ്കിൽ പിന്തുണകൊടുക്കുക",
restore: "വീണ്ടെടുക്കുക"
},
theme: {
normal: "സാധാരണ",
adaptive: "ഇഴുകുന്ന",
custom: "ഇഷ്ട",
dark: "ഇരുൾ",
black: "കറുപ്പ്",
darkmode: "ഇരുൾ മട്ട്",
darkmodetagline: "നിങ്ങൾ ഇരുളിലേക്ക് പോകുന്നു.",
},
tweaks: {
fullscreen: "മുഴുത്തിര",
navbarblur: "നാവ്ബാർ മങ്ങൽ",
roundedcorners: "വട്ടത്തിലുള്ള മൂലകൾ",
roundthumbnails: "വട്ടത്തിലുള്ള ചെറുപടം",
roundwatchpagecomponents: "വട്ടത്തിലുള്ള കാഴ്ചാതാൾ പങ്കുകൾ",
radius: "ആരം",
},
startup: {
defaultpage: "യഥാർത്ഥ താൾ",
},
updates: {
updating: "മെച്ചപ്പെട്ട പതിപ്പ് ഇറക്കിവയ്ക്കുന്നു",
checking: "മെച്ചപ്പെട്ട പതിപ്പിനായി തിരയുന്നു",
available: "മെച്ചപ്പെട്ട പതിപ്പ് ഉണ്ട്",
noupdate: "നിലവിൽ മെച്ചപ്പെട്ട പതിപ്പുകൾ ഇല്ല",
noupdatemessage:
"താങ്കൾ വ്യൂടൂബിന്റെ ഏറ്റവുും പുതിയ പതിപ്പാണ് ഇട്ടിരിക്കുന്നത്. മെച്ചപ്പെട്ട പതിപ്പുകൾക്കായി പിന്നീട് തിരയുക.",
installed: "ഇട്ടിരിക്കുന്ന പതിപ്പ്",
latest: "ഏറ്റവും പുതിയ പതിപ്പ്",
published: "പുറത്തുവിട്ടത്",
users: "ഉപയോഗിക്കുന്നവർ",
size: "പുതുക്കൽ വലിപ്പം",
okay: "ശരി",
refresh: "പുതുക്കുക",
update: "മെച്ചപ്പെടുത്തൽ",
later: "പിന്നീട്",
},
logs: {
more: "കുടുതൽ",
},
about: {
appinformation: "ആപ്പ് വിവരം",
appversion: "ആപ്പ് പതിപ്പ്",
deviceinformation: "ഡിവൈസ് വിവരം",
platform: "തിട്ട",
os: "ഓടൽ ചുറ്റുപാട്",
model: "മാതിരി",
manufacturer: "ഉണ്ടാക്കിയത്",
emulator: "എമുലേറ്റർ",
github: "ഗിറ്റ്ഹബ്",
discord: "ഡിസ്കോർഡ്",
},
developer: {
registryeditor: "Registry editor",
registrywarning: "CHANGING ENTRIES MAY CAUSE YOUR APP TO BREAK!",
createentry: "Create entry",
createentryfull: "Create registry entry",
cancel: "വേണ്ടെന്നു വയ്ക്കുക",
create: "ഉണ്ടാക്കുക",
key: "താഴ്കോൽ",
value: "വില",
confirmdelete: "നീക്കംചെയ്യൽ ഉറപ്പിക്കുക",
areyousure: "നീക്കംചെയ്യണം എന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?",
delete: "നീക്കംചെയ്യുക",
change: "മാറ്റുക",
},
},
events: {
welcome: "വ്യൂടൂബിലേക്ക് വരവേൽപ്പ്",
tagline: "വീഡിയോ കാണിക്കലിന്റെ പുതിയ വരുംകാലം",
next: "അടുത്തത്",
updated: "വ്യൂടൂബ് മെച്ചപ്പെടുത്തി",
awesome: "കൊള്ളാം",
langsetup: "ഒരു മൊഴി തിരഞ്ഞെടുക്കാം!",
featuresetup: "കുറച്ചു തരങ്ങൾ തിരഞ്ഞെടുക്കാം!",
enableryd: "യൂട്ര്യൂബ് ഡിസ്ലൈക്കിലേക്ക് തിരികെ പോകുക",
enablespb: "സ്പോൺസർതടയൽ ചെയ്യുക",
thanks: "വ്യൂടൂബ് ഉപയോഗിച്ചതിൽ നന്നി",
enjoy: "നിങ്ങൾക്ക് ഒരു നല്ല ഇടപഴക്കകം ഉണ്ടാകും എന്ന് ഞങ്ങൾ കരുതുന്നു",
packageinstaller: "ഇറക്കിവയ്ക്കാനായി ഒരു പൊതിക്കെട്ട് തിരഞ്ഞെടുക്കുക",
},
};

View File

@ -1,17 +0,0 @@
class Thumbnail {
getThumbnail(id, resolution, backupThumbnail) {
if (resolution == "max") {
const url = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;
let img = new Image();
img.src = url;
img.onload = function () {
if (img.height !== 120) return url;
};
}
if (backupThumbnail[backupThumbnail.length - 1])
return backupThumbnail[backupThumbnail.length - 1].url;
else return `https://img.youtube.com/vi/${id}/mqdefault.jpg`;
}
}
export default Thumbnail;

View File

@ -91,14 +91,30 @@ const innertubeModule = {
async getVid(id) { async getVid(id) {
try { try {
return await InnertubeAPI.VidInfoAsync(id); return await InnertubeAPI.VidInfoAsync(id);
} catch (error) {} } catch (error) {
}
},
getThumbnail(id, resolution, backupThumbnail) {
if (resolution == "max") {
const url = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;
let img = new Image();
img.src = url;
img.onload = function () {
if (img.height !== 120) return url;
};
}
if (backupThumbnail[backupThumbnail.length - 1])
return backupThumbnail[backupThumbnail.length - 1].url;
else return `https://img.youtube.com/vi/${id}/mqdefault.jpg`;
}, },
async getChannel(url) { async getChannel(url) {
try { try {
const response = await InnertubeAPI.getChannelAsync(url); const response = await InnertubeAPI.getChannelAsync(url);
return response.data; return response.data;
} catch (error) {} } catch (error) {
}
}, },
// It just works™ // It just works™
@ -161,7 +177,8 @@ const innertubeModule = {
try { try {
const response = await InnertubeAPI.getSearchAsync(query); const response = await InnertubeAPI.getSearchAsync(query);
return response.contents.sectionListRenderer; return response.contents.sectionListRenderer;
} catch (err) {} } catch (err) {
}
}, },
async saveApiStats(query, url) { async saveApiStats(query, url) {

View File

@ -87,7 +87,7 @@ available:
Android Android
</h3> </h3>
| <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/tag/0.4.2><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> | | <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/tag/0.5><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> |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. | | Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. |
@ -100,7 +100,7 @@ Android
iOS iOS
</h3> </h3>
| <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> | | <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://github.com/VueTubeApp/VueTube/releases/tag/0.3><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> |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. | | Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. |

View File

@ -6,8 +6,8 @@
<details> <details>
<summary>Tunjukkan kredit Readme</summary> <summary>Tunjukkan kredit Readme</summary>
<sub>Logo oleh <a href="https://github.com/afnzmn">@afnzmn</a></sub></br> <sub>Logo oleh <a href="https://github.com/afnzmn">@afnzmn</a></sub></br>
<sub>Penyumbang-penyumbang Readme Bahasa Melayu: <a href="https://github.com/AdamIskandarAI">@AdamIskandarAI</a></sub> <sub>Penyumbang-penyumbang Readme Bahasa Melayu: <a href="https://github.com/AdamIskandarAI">@AdamIskandarAI</a></sub>
</details> </details>
<p align="center"> <p align="center">
@ -25,7 +25,7 @@ Disebut View Tube (<code>/ˈvjuːˌtjuːb/</code>)
<a href="https://twitter.com/VueTubeApp" alt="Twitter"><img src="https://img.shields.io/twitter/follow/VueTubeApp?label=Follow&style=flat&logo=twitter"></img></a> <a href="https://twitter.com/VueTubeApp" alt="Twitter"><img src="https://img.shields.io/twitter/follow/VueTubeApp?label=Follow&style=flat&logo=twitter"></img></a>
</p> </p>
Baca ini dalam bahasa lain: [English,](../readme.md) [Español,](/readme/readme.es.md) [简体中文,](/readme/readme.zh-hans.md) [繁體中文,](/readme/readme.zh-hant.md) [日本語,](/readme/readme.ja.md) [עִברִית,](/readme/readme.he.md) [Nederlands,](/readme/readme.nl.md) [தமிழ்,](/readme/readme.ta.md) [Bahasa Melayu,](/readme/readme.ms.md) [Македонски,](/readme/readme.mk.md) [Français,](/readme/readme.fr.md) [Português Brasileiro,](/readme/readme.pt-br.md) [Bahasa Indonesia,](/readme/readme.id.md) [Polski,](/readme/readme.pl.md) [Български,](/readme/readme.bg.md) [Italiano,](/readme/readme.it.md) [Magyar,](/readme/readme.hu.md) [한국어,](/readme/readme.kr.md) [Tiếng Việt,](/readme/readme.vi.md) [Română,](/readme/readme.ro.md) [Українська,](/readme/readme.ua.md) [Türkçe](/readme/readme.tr.md/) Baca ini dalam bahasa lain: **Read this page in other languages**: [English,](readme.md) [Español,](/readme/readme.es.md) [简体中文,](/readme/readme.zh-hans.md) [繁體中文,](/readme/readme.zh-hant.md) [日本語,](/readme/readme.ja.md) [עִברִית,](/readme/readme.he.md) [Nederlands,](/readme/readme.nl.md) [தமிழ்,](/readme/readme.ta.md) [Bahasa Melayu,](/readme/readme.ms.md) [Македонски,](/readme/readme.mk.md) [Français,](/readme/readme.fr.md) [Português Brasileiro,](/readme/readme.pt-br.md) [Bahasa Indonesia,](/readme/readme.id.md) [Polski,](/readme/readme.pl.md) [Български,](/readme/readme.bg.md) [Italiano,](/readme/readme.it.md) [Magyar,](/readme/readme.hu.md) [한국어,](/readme/readme.kr.md) [Tiếng Việt,](/readme/readme.vi.md) [Română,](/readme/readme.ro.md) [Українська](/readme/readme.ua.md), [Türkçe](/readme/readme.tr.md/)
<h2 align="left"> <h2 align="left">
<sub> <sub>
@ -64,18 +64,34 @@ Untuk memasang aplikasi VueTube, sila lawati www.vuetube.app/install
<summary> 🖱Klik di sini untuk menunjukkan semua versi </summary> <summary> 🖱Klik di sini untuk menunjukkan semua versi </summary>
<br /> <br />
### Android <h3 align="left">
<sub>
<img src="/resources/readme_icon_android.png"
height="20"
width="20">
</sub>
Android
</h3>
| <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/tag/0.4.2><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> | | <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/tag/0.5><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> |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Agak tidak stabil, tetapi anda boleh mendapat akses awal kepada ciri-ciri baharu | Kurang pepijat daripada tidak stabil sementara mempunyai lebih banyak ciri daripada stabil | Belum tersedia lagi | | Agak tidak stabil, tetapi anda boleh mendapat akses awal kepada ciri-ciri baharu | Kurang pepijat daripada tidak stabil sementara mempunyai lebih banyak ciri daripada stabil | Belum tersedia lagi |
### iOS <h3 align="left">
<sub>
<img src="/resources/readme_icon_ios.png"
height="20"
width="20">
</sub>
iOS
</h3>
| <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> | | <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://github.com/VueTubeApp/VueTube/releases/tag/0.3><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> |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| Agak tidak stabil, tetapi anda boleh mendapat akses awal kepada ciri-ciri baharu | Kurang pepijat daripada tidak stabil sementara mempunyai lebih banyak ciri daripada stabil | Belum tersedia lagi | | Agak tidak stabil, tetapi anda boleh mendapat akses awal kepada ciri-ciri baharu | Kurang pepijat daripada tidak stabil sementara mempunyai lebih banyak ciri daripada stabil | Belum tersedia lagi |
(Apple tidak menyokong _sideloading_, iaitu pemasangan aplikasi dengan hanya menggunakan fail tanpa ia dimuat naik ke Apple App Store. Ia adalah perlu untuk menggunakan kaedah lanjutan untuk memasang VueTube pada peranti iPhone / iPad)
</details> </details>
<h2 align="left"> <h2 align="left">
@ -101,7 +117,7 @@ Anda boleh mencadangkan fungsi baru dengan membuka isu fungsi baru dalam reposit
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_screenshots.png" <img src="/resources/readme_icon_screenshots.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -122,7 +138,7 @@ Tangkapan skrin
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_community.png" <img src="/resources/readme_icon_community.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -137,7 +153,7 @@ Kami menggunakan beberapa platform yang berbeza untuk berhubung dengan komuniti
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_progress.png" <img src="/resources/readme_icon_progress.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -156,7 +172,7 @@ Kemajuan
🟢 Laman Utama (100%) | 🟠 Seekbar / Scrubber (80%) | 🟢 Carian (100%) 🟢 Laman Utama (100%) | 🟠 Seekbar / Scrubber (80%) | 🟢 Carian (100%)
🟢 Pengintegrasian RYD (100%) | 🟠 Skrin Penuh (80%) | 🟠 Maklumat Video (60%) | 🟢 Pengintegrasian RYD (100%) | 🟠 Skrin Penuh (80%) | 🟠 Maklumat Video (60%) |
🟢 Tema (100%) | 🟠 Pemilih Resolusi (720p, HD) (50%) | 🔴 Saluran (0%) | 🟢 Tema (100%) | 🟠 Pemilih Resolusi (720p, HD) (50%) | 🔴 Saluran (0%) |
🟢 Halaman Tonton (100%) | 🔴 Mini-pemain (0%) | 🔴 Komen (0%) | 🟢 Halaman Tonton (100%) | 🔴 Pemain Mini (0%) | 🔴 Komen (0%) |
🟠 Pengintegrasian SponsorBlock (95%) | 🔴 Main video di latar belakang (0%) | 🔴 Sembang Langsung (0%) | 🟠 Pengintegrasian SponsorBlock (95%) | 🔴 Main video di latar belakang (0%) | 🔴 Sembang Langsung (0%) |
🟠 Auto Kemaskini (50%) | 🔴 Picture in Picture (0%) | 🔴 Kandungan Trending (0%) 🟠 Auto Kemaskini (50%) | 🔴 Picture in Picture (0%) | 🔴 Kandungan Trending (0%)
🟠 Halaman Saluran (50%) | 🔴 Kapsyen / Sarikata (0%) | 🔴 Interaksi (0%) | 🟠 Halaman Saluran (50%) | 🔴 Kapsyen / Sarikata (0%) | 🔴 Interaksi (0%) |
@ -191,7 +207,7 @@ Sekiranya anda mahu menterjemahkan aplikasi ini, [klik di sini](/NUXT/plugins/la
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_github.png" <img src="/resources/readme_icon_github.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -206,7 +222,7 @@ Penyumbang-penyumbang GitHub
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_acknowledgements.png" <img src="/resources/readme_icon_acknowledgements.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -220,7 +236,7 @@ Penghargaan
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_donate.png" <img src="/resources/readme_icon_donate.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -235,7 +251,7 @@ VueTube adalah dan sentiasa akan percuma dan sumber terbuka, tetapi anda boleh m
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_disclaimer.png" <img src="/resources/readme_icon_disclaimer.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>
@ -248,7 +264,7 @@ Sebarang tanda dagangan, tanda perkhidmatan, nama dagangan atau hak harta intele
<h2 align="left"> <h2 align="left">
<sub> <sub>
<img src="resources/readme_icon_otherrepos.png" <img src="/resources/readme_icon_otherrepos.png"
height="30" height="30"
width="30"> width="30">
</sub> </sub>