mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-20 06:32:05 +00:00
Compare commits
8 Commits
798bfc0708
...
cbc0077690
| Author | SHA1 | Date | |
|---|---|---|---|
| cbc0077690 | |||
| c43d636549 | |||
| af1513a0b5 | |||
| 3a7d3ff73d | |||
| f22b887a3f | |||
| 5d0116ff2e | |||
| 98a8244f5f | |||
| 127760d509 |
22
README.md
22
README.md
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
# :pear: Pear Desktop
|
# :pear: Pear Desktop
|
||||||
|
|
||||||
[](https://github.com/pear-devs/pear-desktop/releases/)
|
[](https://github.com/pear-devs/pear-desktop/releases/)
|
||||||
[](https://github.com/pear-devs/pear-desktop/blob/master/license)
|
[](https://github.com/pear-devs/pear-desktop/blob/master/license)
|
||||||
[](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
|
[](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
|
||||||
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
||||||
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
||||||
[](https://aur.archlinux.org/packages/youtube-music-bin)
|
<!--[](https://aur.archlinux.org/packages/youtube-music-bin)-->
|
||||||
[](https://snyk.io/test/github/pear-devs/pear-desktop)
|
[](https://snyk.io/test/github/pear-devs/pear-desktop)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -67,12 +67,12 @@ latest version.
|
|||||||
|
|
||||||
### Arch Linux
|
### Arch Linux
|
||||||
|
|
||||||
Install the [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) package from the AUR. For AUR installation instructions, take a look at
|
Install the [`pear-desktop`](https://aur.archlinux.org/packages/pear-desktop) package from the AUR. For AUR installation instructions, take a look at
|
||||||
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
|
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
You can install the app using Homebrew (see the [cask definition](https://github.com/th-ch/homebrew-youtube-music)):
|
You can install the app using Homebrew (see the [cask definition](https://github.com/pear-devs/pear-desktop-homebrew)):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install pear-devs/pear-desktop
|
brew install pear-devs/pear-desktop
|
||||||
@ -86,23 +86,23 @@ If you install the app manually and get an error "is damaged and can’t be open
|
|||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
You can use the [Scoop package manager](https://scoop.sh) to install the `youtube-music` package from
|
You can use the [Scoop package manager](https://scoop.sh) to install the `pear-desktop` package from
|
||||||
the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
|
the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
scoop bucket add extras
|
scoop bucket add extras
|
||||||
scoop install extras/youtube-music
|
scoop install extras/pear-desktop
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
|
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
|
||||||
official CLI package manager to install the `th-ch.YouTubeMusic` package.
|
official CLI package manager to install the `pear-devs.pear-desktop` package.
|
||||||
|
|
||||||
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also
|
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also
|
||||||
true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same
|
true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same
|
||||||
file).*
|
file).*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
winget install th-ch.YouTubeMusic
|
winget install pear-devs.pear-desktop
|
||||||
```
|
```
|
||||||
|
|
||||||
#### How to install without a network connection? (in Windows)
|
#### How to install without a network connection? (in Windows)
|
||||||
@ -190,7 +190,7 @@ export default createPlugin({
|
|||||||
console.log(await context.ipc.invoke('some-event'));
|
console.log(await context.ipc.invoke('some-event'));
|
||||||
},
|
},
|
||||||
// Only renderer available hook
|
// Only renderer available hook
|
||||||
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
|
onPlayerApiReady(api, context) {
|
||||||
// set plugin config easily
|
// set plugin config easily
|
||||||
context.setConfig({ myConfig: api.getVolume() });
|
context.setConfig({ myConfig: api.getVolume() });
|
||||||
},
|
},
|
||||||
|
|||||||
@ -13,7 +13,7 @@ export function getPlugins() {
|
|||||||
|
|
||||||
export async function isEnabled(plugin: string) {
|
export async function isEnabled(plugin: string) {
|
||||||
const pluginConfig = deepmerge(
|
const pluginConfig = deepmerge(
|
||||||
(await allPlugins())[plugin].config ?? { enabled: false },
|
(await allPlugins())[plugin]?.config ?? { enabled: false },
|
||||||
(store.get('plugins') as Record<string, PluginConfig>)[plugin] ?? {},
|
(store.get('plugins') as Record<string, PluginConfig>)[plugin] ?? {},
|
||||||
);
|
);
|
||||||
return pluginConfig !== undefined && pluginConfig.enabled;
|
return pluginConfig !== undefined && pluginConfig.enabled;
|
||||||
|
|||||||
@ -150,6 +150,11 @@
|
|||||||
"visual-tweaks": {
|
"visual-tweaks": {
|
||||||
"label": "Vizualiniai patobulinimai",
|
"label": "Vizualiniai patobulinimai",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
|
"custom-window-title": {
|
||||||
|
"prompt": {
|
||||||
|
"placeholder": "Pavyzdys: YouTube Music"
|
||||||
|
}
|
||||||
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
"default": "Numatytasis",
|
"default": "Numatytasis",
|
||||||
"force-show": "Priversti rodyti",
|
"force-show": "Priversti rodyti",
|
||||||
@ -357,6 +362,10 @@
|
|||||||
},
|
},
|
||||||
"templates": {
|
"templates": {
|
||||||
"title": "Atidaryti antraščių parinkiklį"
|
"title": "Atidaryti antraščių parinkiklį"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"caption-changed": "Subtitrai pakeisti į {{language}}",
|
||||||
|
"caption-disabled": "Subtitrai išjungti"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compact-sidebar": {
|
"compact-sidebar": {
|
||||||
@ -385,6 +394,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"custom-output-device": {
|
||||||
|
"menu": {
|
||||||
|
"device-selector": "Pasirinkti įrenginį"
|
||||||
|
},
|
||||||
|
"name": "Pasirinktinas išvesties įrenginys",
|
||||||
|
"prompt": {
|
||||||
|
"device-selector": {
|
||||||
|
"title": "Pasirinkite išvesties įrenginį"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"disable-autoplay": {
|
"disable-autoplay": {
|
||||||
"description": "Pradeda dainą pristabdytame rėžime",
|
"description": "Pradeda dainą pristabdytame rėžime",
|
||||||
"menu": {
|
"menu": {
|
||||||
@ -408,7 +428,14 @@
|
|||||||
"hide-duration-left": "Slėpti kiek liko laiko",
|
"hide-duration-left": "Slėpti kiek liko laiko",
|
||||||
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
||||||
"play-on-youtube-music": "Leisti ant \"Youtube Music\"",
|
"play-on-youtube-music": "Leisti ant \"Youtube Music\"",
|
||||||
"set-inactivity-timeout": "Nustatyti neveiklumo laiką"
|
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
|
||||||
|
"set-status-display-type": {
|
||||||
|
"submenu": {
|
||||||
|
"artist": "Klausosi {artist]",
|
||||||
|
"title": "Klausosi {song title}",
|
||||||
|
"youtube-music": "Klausosi Youtube Music"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"name": "\"Discord\" Turtingas Buvimas (Rich Presence)",
|
"name": "\"Discord\" Turtingas Buvimas (Rich Presence)",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
@ -464,6 +491,19 @@
|
|||||||
"description": "Atsisiunčia MP3 / šaltinio garsą tiesiogiai iš sąsajos",
|
"description": "Atsisiunčia MP3 / šaltinio garsą tiesiogiai iš sąsajos",
|
||||||
"menu": {
|
"menu": {
|
||||||
"choose-download-folder": "Pasirinkti atsisiuntimų aplanką",
|
"choose-download-folder": "Pasirinkti atsisiuntimų aplanką",
|
||||||
|
"download-finish-settings": {
|
||||||
|
"prompt": {
|
||||||
|
"last-percent": "Po x procentų",
|
||||||
|
"last-seconds": "Paskutinės x sekundės",
|
||||||
|
"title": "Nustatyti kada atsisiųsti"
|
||||||
|
},
|
||||||
|
"submenu": {
|
||||||
|
"enabled": "Įjungtas",
|
||||||
|
"mode": "Laiko rėžimas",
|
||||||
|
"percent": "Procentai",
|
||||||
|
"seconds": "Sekundės"
|
||||||
|
}
|
||||||
|
},
|
||||||
"download-playlist": "Atsisiųsti grojaraštį",
|
"download-playlist": "Atsisiųsti grojaraštį",
|
||||||
"presets": "Iš anksto nustatyti nustatymai",
|
"presets": "Iš anksto nustatyti nustatymai",
|
||||||
"skip-existing": "Praleisti egzistuojančius failus"
|
"skip-existing": "Praleisti egzistuojančius failus"
|
||||||
@ -476,6 +516,13 @@
|
|||||||
"button": "Atsisiųsti"
|
"button": "Atsisiųsti"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"equalizer": {
|
||||||
|
"menu": {
|
||||||
|
"presets": {
|
||||||
|
"label": "Išankstiniai nustatymai"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"exponential-volume": {
|
"exponential-volume": {
|
||||||
"description": "Padaro garsumo slankiklį eksponentinį, kad būtų lengviau pasirinkti mažesnį garsumą.",
|
"description": "Padaro garsumo slankiklį eksponentinį, kad būtų lengviau pasirinkti mažesnį garsumą.",
|
||||||
"name": "Eksponentinis garsas"
|
"name": "Eksponentinis garsas"
|
||||||
@ -512,7 +559,20 @@
|
|||||||
"unknown-user": "Nežinomas Naudotojas"
|
"unknown-user": "Nežinomas Naudotojas"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"click-to-copy-id": "Kopijuoti Vedėjo ID"
|
"click-to-copy-id": "Kopijuoti Vedėjo ID",
|
||||||
|
"permission": {
|
||||||
|
"all": "Leisti svečiams valdyti grojaraštį ir grotuvą",
|
||||||
|
"playlist": "Leisti svečiams valdyti grojaraštį"
|
||||||
|
},
|
||||||
|
"set-permission": "Keisti valdymo leidimus",
|
||||||
|
"status": {
|
||||||
|
"disconnected": "Atsijungta",
|
||||||
|
"guest": "Prisijungta kaip svečias"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"add-song-failed": "Nepavyko pridėti dainos",
|
||||||
|
"remove-song-failed": "Nepavyko pašalinti dainos"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
@ -607,6 +667,17 @@
|
|||||||
"description": "Leidžia pakeisti vaizdo kokybę su mygtuku ant vaizdo perdangos",
|
"description": "Leidžia pakeisti vaizdo kokybę su mygtuku ant vaizdo perdangos",
|
||||||
"name": "Vaizdo Kokybės Pakeitėjas"
|
"name": "Vaizdo Kokybės Pakeitėjas"
|
||||||
},
|
},
|
||||||
|
"scrobbler": {
|
||||||
|
"menu": {
|
||||||
|
"scrobble-alternative-artist": "Naudoti alternatyvius atlikėjus",
|
||||||
|
"scrobble-alternative-title": "Naudoti alternatyvius pavadinimus"
|
||||||
|
},
|
||||||
|
"prompt": {
|
||||||
|
"lastfm": {
|
||||||
|
"api-key": "Last.fm API raktas"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"shortcuts": {
|
"shortcuts": {
|
||||||
"description": "Leidžia nustatyti visuotinius atkūrimo sparčiuosius klavišus (paleisti / pristabdyti / kitą / ankstesnį) ir išjungti medijos OSD nepaisant medijos klavišų, įjungti Ctrl / CMD + F ieškoti, įjungti Linux MPRIS palaikymą medijos klavišams ir pasirinktinius sparčiuosius klavišus pažengusiems vartotojams.",
|
"description": "Leidžia nustatyti visuotinius atkūrimo sparčiuosius klavišus (paleisti / pristabdyti / kitą / ankstesnį) ir išjungti medijos OSD nepaisant medijos klavišų, įjungti Ctrl / CMD + F ieškoti, įjungti Linux MPRIS palaikymą medijos klavišams ir pasirinktinius sparčiuosius klavišus pažengusiems vartotojams.",
|
||||||
"menu": {
|
"menu": {
|
||||||
@ -639,6 +710,11 @@
|
|||||||
"name": "Rėmėjų blokuotojas"
|
"name": "Rėmėjų blokuotojas"
|
||||||
},
|
},
|
||||||
"synced-lyrics": {
|
"synced-lyrics": {
|
||||||
|
"description": "Teikia sinchronizuotus dainų žodžius, naudojantis tiekėjais kaip LRClib.",
|
||||||
|
"errors": {
|
||||||
|
"fetch": "⚠️\t\tĮvyko klaida gaunant dainos žodžius.\n\tPabandykite dar karta vėliau.",
|
||||||
|
"not-found": "⚠️ Šiai dainai nerasti dainos tekstai."
|
||||||
|
},
|
||||||
"refetch-btn": {
|
"refetch-btn": {
|
||||||
"fetching": "Gaunama...",
|
"fetching": "Gaunama...",
|
||||||
"normal": "Atgauti dainos žodžius"
|
"normal": "Atgauti dainos žodžius"
|
||||||
|
|||||||
@ -462,6 +462,7 @@
|
|||||||
"label": "Teks status",
|
"label": "Teks status",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Sedang mendengar {artist}",
|
"artist": "Sedang mendengar {artist}",
|
||||||
|
"title": "Sedang mendengar {tajuk lagu}",
|
||||||
"youtube-music": "Mendengar YouTube Music"
|
"youtube-music": "Mendengar YouTube Music"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -498,6 +499,7 @@
|
|||||||
"converting": "Menukarkan…",
|
"converting": "Menukarkan…",
|
||||||
"done": "Selesai: {{filePath}}",
|
"done": "Selesai: {{filePath}}",
|
||||||
"download-info": "Memuat turun {{artist}} - {{title}} [{{videoId}}",
|
"download-info": "Memuat turun {{artist}} - {{title}} [{{videoId}}",
|
||||||
|
"download-progress": "Muat turun: {{peratus}}%",
|
||||||
"downloading": "Memuat turun…",
|
"downloading": "Memuat turun…",
|
||||||
"downloading-counter": "Memuat turun {{current}}/{{total}}…",
|
"downloading-counter": "Memuat turun {{current}}/{{total}}…",
|
||||||
"downloading-playlist": "Memuat turun senarai main \"{{playlistTitle}}\" - {{playlistSize}} lagu ({{playlistId}})",
|
"downloading-playlist": "Memuat turun senarai main \"{{playlistTitle}}\" - {{playlistSize}} lagu ({{playlistId}})",
|
||||||
@ -508,26 +510,42 @@
|
|||||||
"playlist-has-only-one-song": "Senarai main hanya mempunyai satu item, memuat turunnya terus",
|
"playlist-has-only-one-song": "Senarai main hanya mempunyai satu item, memuat turunnya terus",
|
||||||
"playlist-id-not-found": "ID senarai main tidak dijumpai",
|
"playlist-id-not-found": "ID senarai main tidak dijumpai",
|
||||||
"playlist-is-empty": "Senarai main kosong",
|
"playlist-is-empty": "Senarai main kosong",
|
||||||
|
"playlist-is-mix-or-private": "Ralat dalam mendapatkan senarai info main: pastikan ia tidak peribadi atau di dalam senarai main \"Campuran untuk anda\"\n\n{{ralat}}",
|
||||||
|
"preparing-file": "Menyediakan fail…",
|
||||||
"saving": "Menyimpan…",
|
"saving": "Menyimpan…",
|
||||||
"trying-to-get-playlist-id": "Mencuba untuk mendapatkan ID senarai main: {{playlistId}}",
|
"trying-to-get-playlist-id": "Mencuba untuk mendapatkan ID senarai main: {{playlistId}}",
|
||||||
"video-id-not-found": "Video tidak dijumpai"
|
"video-id-not-found": "Video tidak dijumpai",
|
||||||
|
"writing-id3": "Sedang menulis tag ID3…"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": "Memuat turun audio MP3 / sumber terus dari antara muka",
|
"description": "Memuat turun audio MP3 / sumber terus dari antara muka",
|
||||||
"menu": {
|
"menu": {
|
||||||
"choose-download-folder": "Pilih folder muat turun",
|
"choose-download-folder": "Pilih folder muat turun",
|
||||||
"download-finish-settings": {
|
"download-finish-settings": {
|
||||||
|
"label": "Muat turun selesai",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
|
"last-percent": "Selepas peratus x",
|
||||||
|
"last-seconds": "Saat x terakhir",
|
||||||
"title": "Konfigurasikan masa untuk memuat turun"
|
"title": "Konfigurasikan masa untuk memuat turun"
|
||||||
},
|
},
|
||||||
"submenu": {
|
"submenu": {
|
||||||
|
"advanced": "Lanjutan",
|
||||||
"enabled": "Dinyalakan",
|
"enabled": "Dinyalakan",
|
||||||
"mode": "Mod masa",
|
"mode": "Mod masa",
|
||||||
"percent": "Peratus",
|
"percent": "Peratus",
|
||||||
"seconds": "Saat"
|
"seconds": "Saat"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"download-playlist": "Muat turun senarai main"
|
"download-playlist": "Muat turun senarai main",
|
||||||
|
"presets": "Pratetap",
|
||||||
|
"skip-existing": "Langkau fail sedia ada"
|
||||||
|
},
|
||||||
|
"name": "Pemuat turun",
|
||||||
|
"renderer": {
|
||||||
|
"can-not-update-progress": "Tidak boleh memuat turun perkembangan"
|
||||||
|
},
|
||||||
|
"templates": {
|
||||||
|
"button": "Memuat turun"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lumiastream": {
|
"lumiastream": {
|
||||||
|
|||||||
@ -150,6 +150,13 @@
|
|||||||
"visual-tweaks": {
|
"visual-tweaks": {
|
||||||
"label": "Візуальні налаштування",
|
"label": "Візуальні налаштування",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
|
"custom-window-title": {
|
||||||
|
"label": "Налаштування заголовка вікна",
|
||||||
|
"prompt": {
|
||||||
|
"label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)",
|
||||||
|
"placeholder": "Приклад: YouTube Music"
|
||||||
|
}
|
||||||
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
"default": "За замовчуванням",
|
"default": "За замовчуванням",
|
||||||
"force-show": "Завжди показувати",
|
"force-show": "Завжди показувати",
|
||||||
@ -409,6 +416,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"custom-output-device": {
|
||||||
|
"description": "Налаштування власного пристрою для відтворення пісень",
|
||||||
|
"menu": {
|
||||||
|
"device-selector": "Обрати пристрій"
|
||||||
|
},
|
||||||
|
"name": "Спеціальний пристрій виводу",
|
||||||
|
"prompt": {
|
||||||
|
"device-selector": {
|
||||||
|
"label": "Оберіть пристрій для виводу медіа",
|
||||||
|
"title": "Оберіть пристрій виводу"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"disable-autoplay": {
|
"disable-autoplay": {
|
||||||
"description": "Запуск пісні в режимі \"пауза\"",
|
"description": "Запуск пісні в режимі \"пауза\"",
|
||||||
"menu": {
|
"menu": {
|
||||||
@ -432,7 +452,13 @@
|
|||||||
"hide-duration-left": "Приховати тривалість, яка залишилася",
|
"hide-duration-left": "Приховати тривалість, яка залишилася",
|
||||||
"hide-github-button": "Приховати посилання на GitHub",
|
"hide-github-button": "Приховати посилання на GitHub",
|
||||||
"play-on-youtube-music": "Слухати на YouTube Music",
|
"play-on-youtube-music": "Слухати на YouTube Music",
|
||||||
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності"
|
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності",
|
||||||
|
"set-status-display-type": {
|
||||||
|
"label": "Статус",
|
||||||
|
"submenu": {
|
||||||
|
"youtube-music": "Відтворення з YouTube Music"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"name": "Активність Discord",
|
"name": "Активність Discord",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
|
|||||||
@ -126,6 +126,7 @@ export const onMainLoad = async ({
|
|||||||
|
|
||||||
yt = await Innertube.create({
|
yt = await Innertube.create({
|
||||||
cache: new UniversalCache(false),
|
cache: new UniversalCache(false),
|
||||||
|
player_id: '0004de42',
|
||||||
cookie: await getCookieFromWindow(win),
|
cookie: await getCookieFromWindow(win),
|
||||||
generate_session_locally: true,
|
generate_session_locally: true,
|
||||||
fetch: getNetFetchAsFetch(),
|
fetch: getNetFetchAsFetch(),
|
||||||
|
|||||||
@ -1,381 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 800 300" width="800" height="300"><script xmlns="" id="eppiocemhmnlbhjplcgkofciiegomcon"/><script xmlns=""/><script xmlns=""/>
|
|
||||||
<foreignObject width="100%" height="100%">
|
|
||||||
<div xmlns="http://www.w3.org/1999/xhtml" bis_skin_checked="1">
|
|
||||||
<style>
|
|
||||||
.container {
|
|
||||||
width: 100%;
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
h1.main, p.demos {
|
|
||||||
-webkit-animation-delay: 18s;
|
|
||||||
-moz-animation-delay: 18s;
|
|
||||||
-ms-animation-delay: 18s;
|
|
||||||
animation-delay: 18s;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
position: fixed;
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
.content {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
z-index: 1000;
|
|
||||||
}
|
|
||||||
.container h2 {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
line-height: 100px;
|
|
||||||
height: 90px;
|
|
||||||
margin-top: -90px;
|
|
||||||
font-size: 90px;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple
|
|
||||||
Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
-moz-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
-ms-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
}
|
|
||||||
.container h2.frame-1 {
|
|
||||||
-webkit-animation-delay: 0s;
|
|
||||||
-moz-animation-delay: 0s;
|
|
||||||
-ms-animation-delay: 0s;
|
|
||||||
animation-delay: 0s;
|
|
||||||
}
|
|
||||||
.container h2.frame-2 {
|
|
||||||
-webkit-animation-delay: 3s;
|
|
||||||
-moz-animation-delay: 3s;
|
|
||||||
-ms-animation-delay: 3s;
|
|
||||||
animation-delay: 3s;
|
|
||||||
}
|
|
||||||
.container h2.frame-3 {
|
|
||||||
-webkit-animation-delay: 6s;
|
|
||||||
-moz-animation-delay: 6s;
|
|
||||||
-ms-animation-delay: 6s;
|
|
||||||
animation-delay: 6s;
|
|
||||||
}
|
|
||||||
.container h2.frame-4 {
|
|
||||||
-webkit-animation-delay: 9s;
|
|
||||||
-moz-animation-delay: 9s;
|
|
||||||
-ms-animation-delay: 9s;
|
|
||||||
animation-delay: 9s;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 {
|
|
||||||
-webkit-animation: none;
|
|
||||||
-moz-animation: none;
|
|
||||||
-ms-animation: none;
|
|
||||||
animation: none;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span {
|
|
||||||
-webkit-animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
-moz-animation: blurFadeIn 1s ease-in 12s backwards;
|
|
||||||
-ms-animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span:nth-child(2) {
|
|
||||||
-webkit-animation-delay: 13s;
|
|
||||||
-moz-animation-delay: 13s;
|
|
||||||
-ms-animation-delay: 13s;
|
|
||||||
animation-delay: 13s;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span:nth-child(3) {
|
|
||||||
-webkit-animation-delay: 14s;
|
|
||||||
-moz-animation-delay: 14s;
|
|
||||||
-ms-animation-delay: 14s;
|
|
||||||
animation-delay: 14s;
|
|
||||||
}
|
|
||||||
.circle-link {
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple
|
|
||||||
Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
||||||
bottom: 50px;
|
|
||||||
margin-left: -100px;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 200px;
|
|
||||||
width: 200px;
|
|
||||||
height: 200px;
|
|
||||||
background: #cc0000;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 25px;
|
|
||||||
-webkit-border-radius: 50%;
|
|
||||||
-moz-border-radius: 50%;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1);
|
|
||||||
-webkit-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-moz-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-ms-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-webkit-transform: scale(1) rotate(0deg);
|
|
||||||
-moz-transform: scale(1) rotate(0deg);
|
|
||||||
-o-transform: scale(1) rotate(0deg);
|
|
||||||
-ms-transform: scale(1) rotate(0deg);
|
|
||||||
transform: scale(1) rotate(0deg);
|
|
||||||
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: -250px -250px, 0 0;
|
|
||||||
|
|
||||||
background-image: -webkit-linear-gradient(
|
|
||||||
top left,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: -moz-linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: -o-linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
|
|
||||||
-moz-background-size: 250% 250%, 100% 100%;
|
|
||||||
background-size: 250% 250%, 100% 100%;
|
|
||||||
|
|
||||||
-webkit-transition: background-position 0s ease;
|
|
||||||
-moz-transition: background-position 0s ease;
|
|
||||||
-o-transition: background-position 0s ease;
|
|
||||||
transition: background-position 0s ease;
|
|
||||||
}
|
|
||||||
.circle-link:hover {
|
|
||||||
background-position: 0 0, 0 0;
|
|
||||||
|
|
||||||
-webkit-transition-duration: 0.5s;
|
|
||||||
-moz-transition-duration: 0.5s;
|
|
||||||
transition-duration: 0.5s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-webkit-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
-webkit-transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-webkit-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.5;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 10px #fff;
|
|
||||||
-webkit-transform: scale(1.1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
-webkit-transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
-webkit-transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-moz-keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-moz-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
-moz-transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-moz-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-moz-transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
-moz-transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
-moz-transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-moz-transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
-moz-transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
transform: scale(1.3);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.5;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 10px #fff;
|
|
||||||
transform: scale(1.1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<div class="container" bis_skin_checked="1">
|
|
||||||
<div class="content" bis_skin_checked="1">
|
|
||||||
<h2 class="frame-1">YouTube Music Asztali Alkalmazás</h2>
|
|
||||||
<h2 class="frame-2">Beépített reklámblokkolóval</h2>
|
|
||||||
<h2 class="frame-3">És beépített letöltővel</h2>
|
|
||||||
<h2 class="frame-4">Többplatformos</h2>
|
|
||||||
<h2 class="frame-5">
|
|
||||||
<span>Ingyenes,</span>
|
|
||||||
<span>Nyílt forráskódú</span>
|
|
||||||
</h2>
|
|
||||||
<a class="circle-link" href="https://github.com/th-ch/youtube-music/releases/latest">
|
|
||||||
Letöltés
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</foreignObject>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
@ -1,381 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 800 300" width="800" height="300">
|
|
||||||
<foreignObject width="100%" height="100%">
|
|
||||||
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<style>
|
|
||||||
.container {
|
|
||||||
width: 100%;
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
h1.main, p.demos {
|
|
||||||
-webkit-animation-delay: 18s;
|
|
||||||
-moz-animation-delay: 18s;
|
|
||||||
-ms-animation-delay: 18s;
|
|
||||||
animation-delay: 18s;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
position: fixed;
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
.content {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
z-index: 1000;
|
|
||||||
}
|
|
||||||
.container h2 {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
line-height: 100px;
|
|
||||||
height: 90px;
|
|
||||||
margin-top: -90px;
|
|
||||||
font-size: 90px;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple
|
|
||||||
Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
color: transparent;
|
|
||||||
-webkit-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
-moz-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
-ms-animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
animation: blurFadeInOut 3s ease-in backwards;
|
|
||||||
}
|
|
||||||
.container h2.frame-1 {
|
|
||||||
-webkit-animation-delay: 0s;
|
|
||||||
-moz-animation-delay: 0s;
|
|
||||||
-ms-animation-delay: 0s;
|
|
||||||
animation-delay: 0s;
|
|
||||||
}
|
|
||||||
.container h2.frame-2 {
|
|
||||||
-webkit-animation-delay: 3s;
|
|
||||||
-moz-animation-delay: 3s;
|
|
||||||
-ms-animation-delay: 3s;
|
|
||||||
animation-delay: 3s;
|
|
||||||
}
|
|
||||||
.container h2.frame-3 {
|
|
||||||
-webkit-animation-delay: 6s;
|
|
||||||
-moz-animation-delay: 6s;
|
|
||||||
-ms-animation-delay: 6s;
|
|
||||||
animation-delay: 6s;
|
|
||||||
}
|
|
||||||
.container h2.frame-4 {
|
|
||||||
-webkit-animation-delay: 9s;
|
|
||||||
-moz-animation-delay: 9s;
|
|
||||||
-ms-animation-delay: 9s;
|
|
||||||
animation-delay: 9s;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 {
|
|
||||||
-webkit-animation: none;
|
|
||||||
-moz-animation: none;
|
|
||||||
-ms-animation: none;
|
|
||||||
animation: none;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span {
|
|
||||||
-webkit-animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
-moz-animation: blurFadeIn 1s ease-in 12s backwards;
|
|
||||||
-ms-animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
animation: blurFadeIn 3s ease-in 12s backwards;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span:nth-child(2) {
|
|
||||||
-webkit-animation-delay: 13s;
|
|
||||||
-moz-animation-delay: 13s;
|
|
||||||
-ms-animation-delay: 13s;
|
|
||||||
animation-delay: 13s;
|
|
||||||
}
|
|
||||||
.container h2.frame-5 span:nth-child(3) {
|
|
||||||
-webkit-animation-delay: 14s;
|
|
||||||
-moz-animation-delay: 14s;
|
|
||||||
-ms-animation-delay: 14s;
|
|
||||||
animation-delay: 14s;
|
|
||||||
}
|
|
||||||
.circle-link {
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple
|
|
||||||
Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
||||||
bottom: 50px;
|
|
||||||
margin-left: -100px;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 200px;
|
|
||||||
width: 200px;
|
|
||||||
height: 200px;
|
|
||||||
background: #cc0000;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 25px;
|
|
||||||
-webkit-border-radius: 50%;
|
|
||||||
-moz-border-radius: 50%;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1);
|
|
||||||
-webkit-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-moz-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-ms-animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
animation: fadeInRotate 0.8s ease 16s backwards;
|
|
||||||
-webkit-transform: scale(1) rotate(0deg);
|
|
||||||
-moz-transform: scale(1) rotate(0deg);
|
|
||||||
-o-transform: scale(1) rotate(0deg);
|
|
||||||
-ms-transform: scale(1) rotate(0deg);
|
|
||||||
transform: scale(1) rotate(0deg);
|
|
||||||
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: -250px -250px, 0 0;
|
|
||||||
|
|
||||||
background-image: -webkit-linear-gradient(
|
|
||||||
top left,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: -moz-linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: -o-linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
background-image: linear-gradient(
|
|
||||||
0 0,
|
|
||||||
rgba(255, 255, 255, 0.2) 0%,
|
|
||||||
rgba(255, 255, 255, 0.2) 37%,
|
|
||||||
rgba(255, 255, 255, 0.8) 45%,
|
|
||||||
rgba(255, 255, 255, 0.0) 50%
|
|
||||||
);
|
|
||||||
|
|
||||||
-moz-background-size: 250% 250%, 100% 100%;
|
|
||||||
background-size: 250% 250%, 100% 100%;
|
|
||||||
|
|
||||||
-webkit-transition: background-position 0s ease;
|
|
||||||
-moz-transition: background-position 0s ease;
|
|
||||||
-o-transition: background-position 0s ease;
|
|
||||||
transition: background-position 0s ease;
|
|
||||||
}
|
|
||||||
.circle-link:hover {
|
|
||||||
background-position: 0 0, 0 0;
|
|
||||||
|
|
||||||
-webkit-transition-duration: 0.5s;
|
|
||||||
-moz-transition-duration: 0.5s;
|
|
||||||
transition-duration: 0.5s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-webkit-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
-webkit-transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-webkit-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.5;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 10px #fff;
|
|
||||||
-webkit-transform: scale(1.1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
-webkit-transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
-webkit-transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-webkit-keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-moz-keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-moz-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
-moz-transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
-moz-transform: scale(1.3);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-moz-transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
-moz-transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
-moz-transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@-moz-keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
-moz-transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
-moz-transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes blurFadeInOut {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
transform: scale(1.3);
|
|
||||||
}
|
|
||||||
20%, 75% {
|
|
||||||
opacity: 1;
|
|
||||||
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
text-shadow: 0px 0px 50px #fff;
|
|
||||||
transform: scale(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes blurFadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 40px #fff;
|
|
||||||
transform: scale(1.3);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.5;
|
|
||||||
color: #cc0000;
|
|
||||||
text-shadow: 0px 0px 10px #fff;
|
|
||||||
transform: scale(1.1);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
text-shadow: 0px 0px 1px #fff;
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fadeInBack {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 0.4;
|
|
||||||
transform: scale(2);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0.2;
|
|
||||||
transform: scale(5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes fadeInRotate {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale(0) rotate(360deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: scale(1) rotate(0deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<div class="container">
|
|
||||||
<div class="content">
|
|
||||||
<h2 class="frame-1">YouTube Music Desktop App</h2>
|
|
||||||
<h2 class="frame-2">With built-in ad blocker</h2>
|
|
||||||
<h2 class="frame-3">And built-in downloader</h2>
|
|
||||||
<h2 class="frame-4">Cross-platform</h2>
|
|
||||||
<h2 class="frame-5">
|
|
||||||
<span>Free,</span>
|
|
||||||
<span>Open source</span>
|
|
||||||
</h2>
|
|
||||||
<a class="circle-link" href="https://github.com/th-ch/youtube-music/releases/latest">
|
|
||||||
Download
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</foreignObject>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
Reference in New Issue
Block a user