mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-12-09 00:37:31 +00:00
Compare commits
4 Commits
86caef342d
...
a82b5962b8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a82b5962b8 | ||
|
|
b9c6c98e38 | ||
|
|
0326630a19 | ||
|
|
f8892c7267 |
340
README.md
340
README.md
@ -1,8 +1,47 @@
|
||||
# 🚨 Spotube is banned from using "Spotify™ API" 🚨
|
||||
|
||||
### The developer of Spotube has received a cease and desist letter from Spotify USA Inc. and Spotify AB, asserting a legal threat concerning the distribution and development of any application that utilizes Spotify’s data API in conjunction with content from YouTube® to facilitate ad-free playback of music tracks. The letter contends that this specific use of the Spotify™ APIs contravenes the Spotify™ Agreements and may also infringe upon the rights of music rights holders.
|
||||
|
||||
### Consequently, as the official maintainer of Spotube, I will immediately cease all forms of official distribution and development of Spotube that continue to employ the aforementioned 'Spotify™ APIs'
|
||||
|
||||
### <ins>Their exact reasoning</ins>: (any) "uses of Spotify’s data API in connection with content from YouTube to provide ad-free playback of music tracks. The use of the Spotify APIs in this manner violates the Spotify Agreements and may also violate the rights of music rights holders."
|
||||
|
||||
## So what's now?
|
||||
|
||||
> In short, we are cooked (legally)
|
||||
|
||||
For now, I've to:
|
||||
|
||||
1. Stop distributing/developing Spotube/any app that uses "Spotify™ APIs"
|
||||
|
||||
That means, I can no longer distribute Spotube through the website, GitHub, any app store and immediately have to take down the versions that uses Spotify™ APIs.
|
||||
|
||||
1. Stop using their logo/image/name/intellectual property in a manner that "seems infringement"
|
||||
1. Forever desist from aiding or assisting any other person or entity in the activities described above
|
||||
|
||||
---
|
||||
|
||||
**For the users of Spotube:**
|
||||
|
||||
Don't worry, Spotube is banned only from (or assisting other) using those APIs. As long as the app isn't using them or no way helps anyone else to use them, it's ok.
|
||||
|
||||
In future, I'll try to rewrite Spotube to ensure it operates within the bounds of copyright law and platform policies. And give ways for the users to extend the app to their use cases. Work is already in progress to implement this! So expect some big updates soon!
|
||||
|
||||
But for eternity, you can't download versions of Spotube that still uses "Spotify™ APIs" from official means (website/Github/app stores). Those will be taken down.
|
||||
|
||||
**But newer version of Spotube that _doesn't_ use "Spotify™ APIs" will be available to replace those.**
|
||||
|
||||
That means, in the upcoming new versions, you will no longer be able to login with your "Spotify™ Account", access your saved playlists, albums, tracks, followed artists or perform any action on that account or anything that is from "Spotify™" or owned by "Spotify™" (yes the API public data (e.g. track metadata) as well) through Spotube.
|
||||
|
||||
**Conclusion:** I'm extremely sorry for this disruption to your day to day music listening experience. Spotube existed and it used by a large number of users because they find it better. And we'll continue to be better than others but legally\* from now on
|
||||
|
||||
> Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
|
||||
<div align="center">
|
||||
<img width="600" src="assets/spotube_banner.png" alt="Spotube Logo">
|
||||
|
||||
An open source, cross-platform music client<br />
|
||||
utilizing selected music provider API and YouTube, Piped.video or JioSaavn as an audio source
|
||||
utilizing selected music provider API and YouTube®, Piped.video or JioSaavn as an audio source
|
||||
|
||||
Btw it's not just another Electron app 😉
|
||||
|
||||
@ -18,10 +57,6 @@ Btw it's not just another Electron app 😉
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
## 🌃 Features
|
||||
@ -44,307 +79,12 @@ Btw it's not just another Electron app 😉
|
||||
- 🗣️ **Shows & Podcasts:** Shows and Podcasts will <ins>**never be supported**</ins> because the audio tracks are <ins>_only_</ins> available on music providers and accessing them would require premium.
|
||||
- 🎧 **Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8)
|
||||
|
||||
## 📜 ⬇️ Installation guide
|
||||
|
||||
New versions usually release every 3-4 months.<br />
|
||||
This handy table lists all the methods you can use to install Spotube:
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Platform</th>
|
||||
<th>Package/Installation Method</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-windows-x86_64-setup.exe">
|
||||
<img width="220" alt="Windows Download" src="https://get.todoist.help/hc/article_attachments/4403191721234/WindowsButton.svg">
|
||||
</a>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MacOS</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-macos-universal.dmg">
|
||||
<img width="220" alt="MacOS Download" src="https://reachify.io/wp-content/uploads/2018/09/mac-download-button-1.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Android</td>
|
||||
<td>
|
||||
<a href="https://play.google.com/store/apps/details?id=oss.krtirtho.spotube">
|
||||
<img width="220" alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png">
|
||||
</a>
|
||||
<br>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-android-all-arch.apk">
|
||||
<img width="220" alt="APK download" src="https://user-images.githubusercontent.com/114044633/223920025-83687de0-e463-4c5d-8122-e06e4bb7d40c.png">
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://f-droid.org/packages/oss.krtirtho.spotube">
|
||||
<img width="220" alt="Download from F-Droid" src="https://user-images.githubusercontent.com/61944859/174589876-bace24c0-b3fd-4c4a-bdb4-6fa82b5853ec.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr>
|
||||
<td>iOS</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-iOS.ipa">
|
||||
<img width="220" alt="Download iOS IPA" src="https://github.com/user-attachments/assets/3e50d93d-fb39-435c-be6b-337745f7c423">
|
||||
</a>
|
||||
<br/>
|
||||
<blockquote style="color:red">
|
||||
*iPA file only. Requires sideloading with <a href="https://altstore.io/">AltStore</a> or similar tools.
|
||||
</blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Flatpak</td>
|
||||
<td>
|
||||
<p><code>flatpak install com.github.KRTirtho.Spotube</code></p>
|
||||
<a href="https://flathub.org/apps/details/com.github.KRTirtho.Spotube">
|
||||
<img width="220" alt="Download on Flathub" src="https://flathub.org/assets/badges/flathub-badge-en.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>AppImage</td>
|
||||
<td>AppImage's lacking stability led to it's temporary removal. More information at https://github.com/KRTirtho/spotube/issues/1082</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Debian/Ubuntu</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.deb">
|
||||
<img width="220" alt="Debian/Ubuntu Download" src="https://user-images.githubusercontent.com/61944859/169097994-e92aff78-fd75-4c93-b6e4-f072a4b5a7ed.png">
|
||||
</a>
|
||||
<p>Then run: <code>sudo apt install ./Spotube-linux-x86_64.deb</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arch/Manjaro</td>
|
||||
<td>
|
||||
<p>With pamac: <code>sudo pamac install spotube-bin</code></p>
|
||||
<p>With yay: <code>yay -Sy spotube-bin</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fedora/OpenSuse</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.rpm">
|
||||
<img width="220" alt="Fedora/OpenSuse Download" src="https://user-images.githubusercontent.com/61944859/223638350-5926b9da-04d6-4edd-931d-ad533e4ff058.png">
|
||||
</a>
|
||||
<p>For Fedora: <code>sudo dnf install ./Spotube-linux-x86_64.rpm</code></p>
|
||||
<p>For OpenSuse: <code>sudo zypper in ./Spotube-linux-x86_64.rpm</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Linux (tarball)</td>
|
||||
<td>
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest">
|
||||
<img width="220" alt="Tarball Download" src="https://user-images.githubusercontent.com/61944859/169456985-e0ba1fd4-10e8-4cc0-ab94-337acc6e0295.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Macos - <a href="https://brew.sh">Homebrew</a></td>
|
||||
<td>
|
||||
<pre lang="bash">
|
||||
brew tap krtirtho/apps
|
||||
brew install --cask spotube
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows - <a href="https://chocolatey.org">Chocolatey</a></td>
|
||||
<td>
|
||||
<p><code>choco install spotube</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows - <a href="https://scoop.sh">Scoop</a></td>
|
||||
<td>
|
||||
<p><code>scoop bucket add extras</code></p>
|
||||
<p><code>scoop install spotube</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows - <a href="https://github.com/microsoft/winget-cli">WinGet</a></td>
|
||||
<td>
|
||||
<p><code>winget install --id KRTirtho.Spotube</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### 🔄 Nightly Builds
|
||||
|
||||
Grab the latest nightly builds of Spotube [from the GitHub Releases](https://github.com/KRTirtho/spotube/releases/tag/nightly).
|
||||
|
||||
## 🕳️ Building from source
|
||||
|
||||
<a href="https://github.com/KRTirtho/spotube/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/KRTirtho/spotube/spotube-release-binary.yml?+label=Build%20Status"></a>
|
||||
|
||||
You can compile Spotube's source code by [following these instructions](CONTRIBUTION.md#your-first-code-contribution).
|
||||
|
||||
## 👥 The Spotube team
|
||||
|
||||
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
|
||||
- [RaptaG](https://github.com/RaptaG) - The GitHub Moderator and Community Manager
|
||||
- [Owen Connor](https://github.com/owencz1998) - The Cool Discord Moderator
|
||||
- [Meenbeese](https://github.com/meenbeese) - The Android Developer
|
||||
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
|
||||
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
|
||||
|
||||
## 💼 License
|
||||
|
||||
Spotube is open source and licensed under the [BSD-4-Clause](/LICENSE) License.
|
||||
|
||||
If you are concerned, you can [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<h2><code>[Click to show]</code> 🙏 Services/Package/Plugin Credits</h2>
|
||||
</summary>
|
||||
|
||||
### Services
|
||||
|
||||
1. [Flutter](https://flutter.dev) - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
|
||||
1. [MPV](https://mpv.io) - mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.
|
||||
1. [Piped](https://piped-docs.kavin.rocks/) - Piped is a privacy friendly alternative YouTube frontend, which is efficient and scalable by design.
|
||||
1. [Invidious](https://invidious.io/) - Invidious is an open source alternative front-end to YouTube.
|
||||
1. [YouTube](https://youtube.com/) - YouTube is an American online video-sharing platform headquartered in San Bruno, California. Three former PayPal employees—Chad Hurley, Steve Chen, and Jawed Karim—created the service in February 2005
|
||||
1. [yt-dlp](https://github.com/yt-dlp/yt-dlp) - A feature-rich command-line audio/video downloader
|
||||
1. [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) - NewPipe's core library for extracting data from streaming sites
|
||||
1. [JioSaavn](https://www.jiosaavn.com) - JioSaavn is an Indian online music streaming service and a digital distributor of Bollywood, English and other regional Indian music across the world. Since it was founded in 2007 as Saavn, the company has acquired rights to over 5 crore (50 million) music tracks in 15 languages
|
||||
1. [SongLink](https://song.link) - SongLink is a free smart link service that helps you share music with your audience. It's a one-stop-shop for creating smart links for music, podcasts, and other audio content
|
||||
1. [LRCLib](https://lrclib.net/) - A public synced lyric API
|
||||
1. [Linux](https://www.linux.org) - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
|
||||
1. [AUR](https://aur.archlinux.org) - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
|
||||
1. [Flatpak](https://flatpak.org) - Flatpak is a utility for software deployment and package management for Linux
|
||||
1. [SponsorBlock](https://sponsor.ajay.app) - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.
|
||||
1. [Inno Setup](https://jrsoftware.org/isinfo.php) - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan
|
||||
1. [F-Droid](https://f-droid.org) - F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device
|
||||
1. [LastFM](https://last.fm) - Last.fm is a music streaming and discovery platform that helps users discover and share new music. It tracks users' music listening habits across many devices and platforms.
|
||||
|
||||
### Dependencies
|
||||
|
||||
1. [app_links](https://github.com/llfbandit/app_links) - Android App Links, Deep Links, iOs Universal Links and Custom URL schemes handler for Flutter (desktop included).
|
||||
1. [args](https://pub.dev/packages/args) - Library for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style options.
|
||||
1. [async](https://pub.dev/packages/async) - Utility functions and classes related to the 'dart:async' library.
|
||||
1. [audio_service](https://pub.dev/packages/audio_service) - Flutter plugin to play audio in the background while the screen is off.
|
||||
1. [audio_service_mpris](https://github.com/bdrazhzhov/audio-service-mpris) - audio_service platform interface supporting Media Player Remote Interfacing Specification.
|
||||
1. [audio_session](https://github.com/ryanheise/audio_session) - Sets the iOS audio session category and Android audio attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.
|
||||
1. [auto_route](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
|
||||
1. [auto_size_text](https://github.com/leisim/auto_size_text) - Flutter widget that automatically resizes text to fit perfectly within its bounds.
|
||||
1. [bonsoir](https://bonsoir.skyost.eu) - A Zeroconf library that allows you to discover network services and to broadcast your own. Based on Apple Bonjour and Android NSD.
|
||||
1. [cached_network_image](https://github.com/Baseflow/flutter_cached_network_image) - Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
|
||||
1. [connectivity_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS.
|
||||
1. [device_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
|
||||
1. [dio](https://github.com/cfug/dio) - A powerful HTTP networking package,supports Interceptors,Aborting and canceling a request,Custom adapters, Transformers, etc.
|
||||
1. [drift](https://drift.simonbinder.eu/) - Drift is a reactive library to store relational data in Dart and Flutter applications.
|
||||
1. [duration](https://github.com/desktop-dart/duration) - Utilities to make working with 'Duration's easier. Formats duration in human readable form and also parses duration in human readable form to Dart's Duration.
|
||||
1. [encrypt](https://pub.dev/packages/encrypt) - A set of high-level APIs over PointyCastle for two-way cryptography.
|
||||
1. [envied](https://github.com/petercinibulk/envied) - Explicitly reads environment variables into a dart file from a .env file for more security and faster start up times.
|
||||
1. [file_picker](https://github.com/miguelpruivo/plugins_flutter_file_picker) - A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support.
|
||||
1. [file_selector](https://pub.dev/packages/file_selector) - Flutter plugin for opening and saving files, or selecting directories, using native file selection UI.
|
||||
1. [fluentui_system_icons](https://github.com/microsoft/fluentui-system-icons/tree/main) - Fluent UI System Icons are a collection of familiar, friendly and modern icons from Microsoft.
|
||||
1. [flutter_cache_manager](https://github.com/Baseflow/flutter_cache_manager/tree/develop/flutter_cache_manager) - Generic cache manager for flutter. Saves web files on the storages of the device and saves the cache info using sqflite.
|
||||
1. [flutter_discord_rpc](https://pub.dev/packages/flutter_discord_rpc) - Discord RPC support for Flutter desktop platforms
|
||||
1. [flutter_displaymode](https://github.com/ajinasokan/flutter_displaymode) - A Flutter plugin to set display mode (resolution, refresh rate) on Android platform. Allows to enable high refresh rate on supported devices.
|
||||
1. [flutter_feather_icons](https://github.com/muj-programmer/flutter_feather_icons) - Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and usability.
|
||||
1. [flutter_form_builder](https://github.com/flutter-form-builder-ecosystem) - This package helps in creation of forms in Flutter by removing the boilerplate code, reusing validation, react to changes, and collect final user input.
|
||||
1. [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) - A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
|
||||
1. [flutter_inappwebview](https://inappwebview.dev/) - A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
|
||||
1. [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.
|
||||
1. [flutter_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
||||
1. [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - Flutter Secure Storage provides API to store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android.
|
||||
1. [flutter_sharing_intent](https://github.com/bhagat-techind/flutter_sharing_intent.git) - A flutter plugin that allow flutter apps to receive photos, videos, text, urls or any other file types from another app.
|
||||
1. [flutter_undraw](https://github.com/KRTirtho/flutter_undraw) - Undraw.co Illustrations for Flutter with customization options
|
||||
1. [form_builder_validators](https://github.com/flutter-form-builder-ecosystem) - Form Builder Validators set of validators for FlutterFormBuilder. Provides common validators and a way to make your own.
|
||||
1. [form_validator](https://github.com/TheMisir/form-validator) - Simplest form validation library for flutter's form field widgets
|
||||
1. [freezed_annotation](https://pub.dev/packages/freezed_annotation) - Annotations for the freezed code-generator. This package does nothing without freezed too.
|
||||
1. [fuzzywuzzy](https://github.com/sphericalkat/dart-fuzzywuzzy) - An implementation of the popular fuzzywuzzy package in Dart, to suit all your fuzzy string matching/searching needs!
|
||||
1. [gap](https://github.com/letsar/gap) - Flutter widgets for easily adding gaps inside Flex widgets such as Columns and Rows or scrolling views.
|
||||
1. [google_fonts](https://pub.dev/packages/google_fonts) - A Flutter package to use fonts from fonts.google.com. Supports HTTP fetching, caching, and asset bundling.
|
||||
1. [home_widget](https://pub.dev/packages/home_widget) - A plugin to provide a common interface for creating HomeScreen Widgets for Android and iOS.
|
||||
1. [hooks_riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
||||
1. [html](https://pub.dev/packages/html) - APIs for parsing and manipulating HTML content outside the browser.
|
||||
1. [html_unescape](https://github.com/filiph/html_unescape) - A small library for un-escaping HTML. Supports all Named Character References, Decimal Character References and Hexadecimal Character References.
|
||||
1. [http](https://pub.dev/packages/http) - A composable, multi-platform, Future-based API for HTTP requests.
|
||||
1. [image_picker](https://pub.dev/packages/image_picker) - Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.
|
||||
1. [intl](https://pub.dev/packages/intl) - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
|
||||
1. [invidious](https://pub.dev/packages/invidious) - Invidious API client for Dart and Flutter.
|
||||
1. [jiosaavn](https://github.com/KRTirtho/jiosaavn) - Unofficial API client for jiosaavn.com
|
||||
1. [json_annotation](https://pub.dev/packages/json_annotation) - Classes and helper functions that support JSON code generation via the `json_serializable` package.
|
||||
1. [local_notifier](https://github.com/leanflutter/local_notifier) - This plugin allows Flutter desktop apps to displaying local notifications.
|
||||
1. [logger](https://pub.dev/packages/logger) - Small, easy to use and extensible logger which prints beautiful logs.
|
||||
1. [logging](https://pub.dev/packages/logging) - Provides APIs for debugging and error logging, similar to loggers in other languages, such as the Closure JS Logger and java.util.logging.Logger.
|
||||
1. [lrc](https://pub.dev/packages/lrc) - A Dart-only package that creates, parses, and handles LRC, which is a format that stores song lyrics.
|
||||
1. [media_kit](https://github.com/media-kit/media-kit) - A cross-platform video player & audio player for Flutter & Dart. Performant, stable, feature-proof & modular.
|
||||
1. [media_kit_libs_audio](https://github.com/media-kit/media-kit.git) - package:media_kit audio (only) playback native libraries for all platforms.
|
||||
1. [metadata_god](https://pub.dev/packages/metadata_god) - Plugin for retrieving and writing audio tags/metadata from audio files
|
||||
1. [mime](https://pub.dev/packages/mime) - Utilities for handling media (MIME) types, including determining a type from a file extension and file contents.
|
||||
1. [open_file](https://pub.dev/packages/open_file) - A plug-in that can call native APP to open files with string result in flutter, support iOS(UTI) / android(intent) / PC(ffi) / web(dart:html)
|
||||
1. [package_info_plus](https://github.com/fluttercommunity/plus_plugins) - Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.
|
||||
1. [palette_generator](https://pub.dev/packages/palette_generator) - Flutter package for generating palette colors from a source image.
|
||||
1. [path](https://pub.dev/packages/path) - A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.
|
||||
1. [path_provider](https://pub.dev/packages/path_provider) - Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
|
||||
1. [permission_handler](https://pub.dev/packages/permission_handler) - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
|
||||
1. [piped_client](https://github.com/KRTirtho/piped_client) - API Client for piped.video
|
||||
1. [riverpod](https://riverpod.dev) - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
|
||||
1. [scroll_to_index](https://github.com/quire-io/scroll-to-index) - Scroll to a specific child of any scrollable widget in Flutter
|
||||
1. [shadcn_flutter](https://github.com/sunarya-thito/shadcn_flutter) - Beautifully designed components from Shadcn/UI is now available for Flutter
|
||||
1. [shared_preferences](https://pub.dev/packages/shared_preferences) - Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.
|
||||
1. [shelf](https://pub.dev/packages/shelf) - A model for web server middleware that encourages composition and easy reuse.
|
||||
1. [shelf_router](https://pub.dev/packages/shelf_router) - A convenient request router for the shelf web-framework, with support for URL-parameters, nested routers and routers generated from source annotations.
|
||||
1. [shelf_web_socket](https://pub.dev/packages/shelf_web_socket) - A shelf handler that wires up a listener for every connection.
|
||||
1. [simple_icons](https://teavelopment.com/) - The Simple Icon pack available as Flutter Icons. Provides over 1500 Free SVG icons for popular brands.
|
||||
1. [skeletonizer](https://github.com/Milad-Akarie/skeletonizer) - Converts already built widgets into skeleton loaders with no extra effort.
|
||||
1. [sliding_up_panel](https://github.com/akshathjain/sliding_up_panel) - A draggable Flutter widget that makes implementing a SlidingUpPanel much easier!
|
||||
1. [sliver_tools](https://github.com/Kavantix) - A set of useful sliver tools that are missing from the flutter framework
|
||||
1. [smtc_windows](https://pub.dev/packages/smtc_windows) - Windows `SystemMediaTransportControls` implementation for Flutter giving access to Windows OS Media Control applet.
|
||||
1. [sqlite3](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3) - Provides lightweight yet convenient bindings to SQLite by using dart:ffi
|
||||
1. [sqlite3_flutter_libs](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3_flutter_libs) - Flutter plugin to include native sqlite3 libraries with your app
|
||||
1. [stroke_text](https://github.com/MohamedAbd0/stroke_text) - A Simple Flutter plugin for applying stroke (border) style to a text widget
|
||||
1. [system_theme](https://github.com/bdlukaa/system_theme/tree/master/system_theme) - A plugin to get the current system theme info. Supports Android, Web, Windows, Linux and macOS
|
||||
1. [test](https://pub.dev/packages/test) - A full featured library for writing and running Dart tests across platforms.
|
||||
1. [timezone](https://pub.dev/packages/timezone) - Time zone database and time zone aware DateTime.
|
||||
1. [titlebar_buttons](https://github.com/gtk-flutter/titlebar_buttons) - A package which provides most of the titlebar buttons from windows, linux and macos.
|
||||
1. [tray_manager](https://github.com/leanflutter/tray_manager) - This plugin allows Flutter desktop apps to defines system tray.
|
||||
1. [url_launcher](https://pub.dev/packages/url_launcher) - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.
|
||||
1. [uuid](https://pub.dev/packages/uuid) - RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart
|
||||
1. [version](https://github.com/dartninja/version) - Provides a simple class for parsing and comparing semantic versions as defined by http://semver.org/
|
||||
1. [very_good_infinite_list](https://github.com/VeryGoodOpenSource/very_good_infinite_list) - A library for easily displaying paginated data, created by Very Good Ventures. Great for activity feeds, news feeds, and more.
|
||||
1. [visibility_detector](https://pub.dev/packages/visibility_detector) - A widget that detects the visibility of its child and notifies a callback.
|
||||
1. [web_socket_channel](https://pub.dev/packages/web_socket_channel) - StreamChannel wrappers for WebSockets. Provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel.
|
||||
1. [wikipedia_api](https://github.com/KRTirtho/wikipedia_api) - Wikipedia API for dart and flutter
|
||||
1. [win32_registry](https://pub.dev/packages/win32_registry) - A package that provides a friendly Dart API for accessing the Windows Registry.
|
||||
1. [window_manager](https://github.com/leanflutter/window_manager) - This plugin allows Flutter desktop apps to resizing and repositioning the window.
|
||||
1. [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key.
|
||||
1. [http_parser](https://pub.dev/packages/http_parser) - A platform-independent package for parsing and serializing HTTP formats.
|
||||
1. [collection](https://pub.dev/packages/collection) - Collections and utilities functions and classes related to collections.
|
||||
1. [otp_util](https://github.com/dushiling) - otp_util is a dart package to generate and verify one-time passwords,it It provides two methods TOPT and HOTP.They are Time-based OTPs and Counter-based OTPs.
|
||||
1. [dio_http2_adapter](https://github.com/cfug/dio) - An adapter that combines HTTP/2 and dio. Supports reusing connections, header compression, etc.
|
||||
1. [build_runner](https://pub.dev/packages/build_runner) - A build system for Dart code generation and modular compilation.
|
||||
1. [envied_generator](https://github.com/petercinibulk/envied) - Generator for the Envied package. See https://pub.dev/packages/envied.
|
||||
1. [flutter_gen_runner](https://github.com/FlutterGen/flutter_gen) - The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
|
||||
1. [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the task of updating your Flutter app's launcher icon.
|
||||
1. [flutter_lints](https://pub.dev/packages/flutter_lints) - Recommended lints for Flutter apps, packages, and plugins to encourage good coding practices.
|
||||
1. [json_serializable](https://pub.dev/packages/json_serializable) - Automatically generate code for converting to and from JSON by annotating Dart classes.
|
||||
1. [freezed](https://pub.dev/packages/freezed) - Code generation for immutable classes that has a simple syntax/API without compromising on the features.
|
||||
1. [process_run](https://github.com/tekartik/process_run.dart/blob/master/packages/process_run) - Process run helpers for Linux/Win/Mac and which like feature for finding executables.
|
||||
1. [pubspec_parse](https://pub.dev/packages/pubspec_parse) - Simple package for parsing pubspec.yaml files with a type-safe API and rich error reporting.
|
||||
1. [pub_api_client](https://github.com/leoafarias/pub_api_client) - An API Client for Pub to interact with public package information.
|
||||
1. [xml](https://github.com/renggli/dart-xml) - A lightweight library for parsing, traversing, querying, transforming and building XML documents.
|
||||
1. [io](https://pub.dev/packages/io) - Utilities for the Dart VM Runtime including support for ANSI colors, file copying, and standard exit code values.
|
||||
1. [drift_dev](https://drift.simonbinder.eu/) - Dev-dependency for users of drift. Contains the generator and development tools.
|
||||
1. [auto_route_generator](https://github.com/Milad-Akarie/auto_route_library) - AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
|
||||
1. [desktop_webview_window](https://github.com/MixinNetwork/flutter-plugins/tree/main/packages/desktop_webview_window) - Show a webview window on your flutter desktop application.
|
||||
1. [disable_battery_optimization](https://github.com/pvsvamsi/Disable-Battery-Optimizations) - Flutter plugin to check and disable battery optimizations. Also shows custom steps to disable the optimizations in devices like mi, xiaomi, samsung, oppo, huawei, oneplus etc
|
||||
1. [draggable_scrollbar](https://github.com/fluttercommunity/flutter-draggable-scrollbar) - A scrollbar that can be dragged for quickly navigation through a vertical list. Additional option is showing label next to scrollthumb with information about current item.
|
||||
1. [flutter_broadcasts](https://github.com/KRTirtho/flutter_broadcasts.git) - A plugin for sending and receiving broadcasts with Android intents and iOS notifications.
|
||||
1. [scrobblenaut](https://github.com/Nebulino/Scrobblenaut) - A deadly simple LastFM API Wrapper for Dart. So deadly simple that it's gonna hit the mark.
|
||||
1. [yt_dlp_dart](https://github.com/KRTirtho/yt_dlp_dart.git) - yt-dlp binding in Dart
|
||||
1. [flutter_new_pipe_extractor](https://github.com/KRTirtho/flutter_new_pipe_extractor) - NewPipeExtractor binding for Flutter (Android only)
|
||||
</details>
|
||||
|
||||
<div align="center"><h4>© Copyright Spotube 2025</h4></div>
|
||||
|
||||
405
lib/l10n/app_zh_TW.arb
Normal file
405
lib/l10n/app_zh_TW.arb
Normal file
@ -0,0 +1,405 @@
|
||||
{
|
||||
"guest": "訪客",
|
||||
"browse": "瀏覽",
|
||||
"search": "搜尋",
|
||||
"library": "音樂庫",
|
||||
"lyrics": "歌詞",
|
||||
"settings": "設定",
|
||||
"genre_categories_filter": "篩選類別或曲風...",
|
||||
"genre": "曲風",
|
||||
"personalized": "為您打造",
|
||||
"featured": "推薦",
|
||||
"new_releases": "新歌熱播",
|
||||
"songs": "歌曲",
|
||||
"playing_track": "播放 {track}",
|
||||
"queue_clear_alert": "這將清空目前的播放隊列。{track_length} 首歌曲將被移除\n您確定要繼續嗎?",
|
||||
"load_more": "載入更多",
|
||||
"playlists": "播放清單",
|
||||
"artists": "藝人",
|
||||
"albums": "專輯",
|
||||
"tracks": "歌曲",
|
||||
"downloads": "下載",
|
||||
"filter_playlists": "篩選播放清單...",
|
||||
"liked_tracks": "已點讚的歌曲",
|
||||
"liked_tracks_description": "您點贊過的所有歌曲",
|
||||
"create_playlist": "創建播放清單",
|
||||
"create_a_playlist": "創建一個播放清單",
|
||||
"update_playlist": "更新播放清單",
|
||||
"create": "創建",
|
||||
"cancel": "取消",
|
||||
"update": "更新",
|
||||
"playlist_name": "播放清單名稱",
|
||||
"name_of_playlist": "播放清單的名稱",
|
||||
"description": "描述",
|
||||
"public": "公開",
|
||||
"collaborative": "共享協作",
|
||||
"search_local_tracks": "搜尋本機歌曲...",
|
||||
"play": "播放",
|
||||
"delete": "刪除",
|
||||
"none": "無",
|
||||
"sort_a_z": "依 A-Z 排序",
|
||||
"sort_z_a": "依 Z-A 排序",
|
||||
"sort_artist": "依藝人排序",
|
||||
"sort_album": "依專輯排序",
|
||||
"sort_duration": "依時長排序",
|
||||
"sort_tracks": "排序方式",
|
||||
"currently_downloading": "正在下載 ({tracks_length})",
|
||||
"cancel_all": "取消全部",
|
||||
"filter_artist": "篩選藝人...",
|
||||
"followers": "{followers} 名關注者",
|
||||
"add_artist_to_blacklist": "將此藝人加入黑名單",
|
||||
"top_tracks": "熱門歌曲",
|
||||
"fans_also_like": "粉絲也喜歡",
|
||||
"loading": "載入中...",
|
||||
"artist": "藝人",
|
||||
"blacklisted": "已黑名單",
|
||||
"following": "關注中",
|
||||
"follow": "關注",
|
||||
"artist_url_copied": "藝人的分享連結已複製至剪貼簿",
|
||||
"added_to_queue": "已新增 {tracks} 首歌曲到播放隊列",
|
||||
"filter_albums": "篩選專輯...",
|
||||
"synced": "同步",
|
||||
"plain": "無同步",
|
||||
"shuffle": "隨機播放",
|
||||
"search_tracks": "搜尋歌曲...",
|
||||
"released": "發行時間",
|
||||
"error": "錯誤 {error}",
|
||||
"title": "標題",
|
||||
"time": "時長",
|
||||
"more_actions": "更多操作",
|
||||
"download_count": "下載 ({count}) 首歌曲",
|
||||
"add_count_to_playlist": "新增 ({count}) 首歌曲到播放清單中",
|
||||
"add_count_to_queue": "新增 ({count}) 首歌曲到播放隊列中",
|
||||
"play_count_next": "接下來播放 ({count}) 首歌曲",
|
||||
"album": "專輯",
|
||||
"copied_to_clipboard": "已將 {data} 複製至剪貼簿",
|
||||
"add_to_following_playlists": "新增 {track} 到以下播放清單",
|
||||
"add": "新增",
|
||||
"added_track_to_queue": "新增 {track} 到播放隊列",
|
||||
"add_to_queue": "新增到播放隊列",
|
||||
"track_will_play_next": "{track} 將在下一首播放",
|
||||
"play_next": "下一首播放",
|
||||
"removed_track_from_queue": "將 {track} 從播放隊列中移除",
|
||||
"remove_from_queue": "從播放隊列移除",
|
||||
"remove_from_favorites": "取消點贊",
|
||||
"save_as_favorite": "點贊",
|
||||
"add_to_playlist": "新增到播放清單",
|
||||
"remove_from_playlist": "從播放清單中移除",
|
||||
"add_to_blacklist": "新增到黑名單",
|
||||
"remove_from_blacklist": "從黑名單中移除",
|
||||
"share": "分享",
|
||||
"mini_player": "小窗模式",
|
||||
"slide_to_seek": "滑動以前進或後退",
|
||||
"shuffle_playlist": "隨機播放播放清單",
|
||||
"unshuffle_playlist": "取消隨機播放播放清單",
|
||||
"previous_track": "上一首歌曲",
|
||||
"next_track": "下一首歌曲",
|
||||
"pause_playback": "暫停播放",
|
||||
"resume_playback": "恢復播放",
|
||||
"loop_track": "單曲循環",
|
||||
"repeat_playlist": "播放清單循環",
|
||||
"queue": "播放隊列",
|
||||
"alternative_track_sources": "其它音訊來源",
|
||||
"download_track": "下載歌曲",
|
||||
"tracks_in_queue": "{tracks} 首歌曲在播放隊列中",
|
||||
"clear_all": "清除全部",
|
||||
"show_hide_ui_on_hover": "懸停時顯示/隱藏控制列",
|
||||
"always_on_top": "置頂",
|
||||
"exit_mini_player": "退出小窗模式",
|
||||
"download_location": "下載路徑",
|
||||
"local_library": "本機音樂庫",
|
||||
"add_library_location": "新增到音樂庫",
|
||||
"remove_library_location": "從音樂庫中刪除",
|
||||
"account": "帳戶",
|
||||
"login_with_spotify": "使用 Spotify 登入",
|
||||
"connect_with_spotify": "與 Spotify 帳戶連接",
|
||||
"logout": "登出",
|
||||
"logout_of_this_account": "登出該帳戶",
|
||||
"language_region": "語言和地區",
|
||||
"language": "語言",
|
||||
"system_default": "系統預設",
|
||||
"market_place_region": "市場地區",
|
||||
"recommendation_country": "選擇國家與地區以獲取對應推薦",
|
||||
"appearance": "外觀",
|
||||
"layout_mode": "佈局模式",
|
||||
"override_layout_settings": "將覆蓋響應式佈局設定",
|
||||
"adaptive": "自適應",
|
||||
"compact": "緊湊",
|
||||
"extended": "寬廣",
|
||||
"theme": "主題",
|
||||
"dark": "深色",
|
||||
"light": "淺色",
|
||||
"system": "系統",
|
||||
"accent_color": "主色調",
|
||||
"sync_album_color": "匹配封面顏色",
|
||||
"sync_album_color_description": "選取專輯封面主題色作為主色調",
|
||||
"playback": "播放",
|
||||
"audio_quality": "音質",
|
||||
"high": "高",
|
||||
"low": "低",
|
||||
"pre_download_play": "先下後播",
|
||||
"pre_download_play_description": "先下載歌曲後再播放而非流式播放(推薦頻寬較高使用者使用)",
|
||||
"skip_non_music": "略過非音樂片段(贊助商阻擋)",
|
||||
"blacklist_description": "已黑名單的歌曲與藝人",
|
||||
"wait_for_download_to_finish": "請等待目前下載任務完成",
|
||||
"desktop": "桌面端設定",
|
||||
"close_behavior": "點擊關閉按鈕行為",
|
||||
"close": "關閉",
|
||||
"minimize_to_tray": "最小化到系統匣",
|
||||
"show_tray_icon": "顯示系統匣圖示",
|
||||
"about": "關於",
|
||||
"u_love_spotube": "我們明白您喜歡 Spotube",
|
||||
"check_for_updates": "檢查更新",
|
||||
"about_spotube": "關於 Spotube",
|
||||
"blacklist": "黑名單",
|
||||
"please_sponsor": "請贊助/捐贈",
|
||||
"spotube_description": "Spotube,一個輕量、跨平台且完全免費的 Spotify 客戶端。",
|
||||
"version": "版本",
|
||||
"build_number": "建置代碼",
|
||||
"founder": "發起人",
|
||||
"repository": "儲存庫",
|
||||
"bug_issues": "錯誤與問題回報",
|
||||
"made_with": "於孟加拉🇧🇩用 ❤️ 發電",
|
||||
"kingkor_roy_tirtho": "Kingkor Roy Tirtho",
|
||||
"copyright": "© 2021-{current_year} Kingkor Roy Tirtho",
|
||||
"license": "許可證",
|
||||
"add_spotify_credentials": "新增您的 Spotify 登入資訊以開始使用",
|
||||
"credentials_will_not_be_shared_disclaimer": "不用擔心,軟體不會收集或分享任何個人資料給第三方",
|
||||
"know_how_to_login": "不知道該怎麼做?",
|
||||
"follow_step_by_step_guide": "請依照以下指南進行",
|
||||
"spotify_cookie": "Spotify {name} Cookie",
|
||||
"cookie_name_cookie": "{name} Cookie",
|
||||
"fill_in_all_fields": "請填寫所有欄位",
|
||||
"submit": "提交",
|
||||
"exit": "退出",
|
||||
"previous": "上一步",
|
||||
"next": "下一步",
|
||||
"done": "完成",
|
||||
"step_1": "步驟 1",
|
||||
"first_go_to": "首先,前往",
|
||||
"login_if_not_logged_in": "如果尚未登入,請登入或者註冊一個帳戶",
|
||||
"step_2": "步驟 2",
|
||||
"step_2_steps": "1. 一旦您已經完成登入, 按 F12 鍵或者滑鼠右擊網頁空白區域 > 選擇「檢查」以打開瀏覽器開發者工具(DevTools)\n2. 然後選擇 \"應用(Application)\" 標籤頁(Chrome、Edge、Brave 等基於 Chromium 的瀏覽器) 或 \"存儲(Storage)\" 標籤頁 (Firefox、Palemoon 等基於 Firefox 的瀏覽器))\n3. 選擇 \"Cookies\" 欄位然後選擇 \"https://accounts.spotify.com\" 子欄位",
|
||||
"step_3": "步驟 3",
|
||||
"step_3_steps": "複製 \"sp_dc\" Cookie 的值",
|
||||
"success_emoji": "成功🥳",
|
||||
"success_message": "您已經成功使用 Spotify 登入。幹得漂亮!",
|
||||
"step_4": "步驟 4",
|
||||
"step_4_steps": "貼上複製的 \"sp_dc\" 值",
|
||||
"something_went_wrong": "某些地方出現了問題",
|
||||
"piped_instance": "管線伺服器實例",
|
||||
"piped_description": "管線伺服器實例用於匹配歌曲",
|
||||
"piped_warning": "它們中的一部分可能並不能正常工作。使用時請自行承擔風險",
|
||||
"invidious_instance": "Invidious 伺服器實例",
|
||||
"invidious_description": "用於音軌匹配的 Invidious 伺服器實例",
|
||||
"invidious_warning": "有些可能無法正常工作。請自行承擔風險",
|
||||
"generate_playlist": "產生播放清單",
|
||||
"track_exists": "歌曲 {track} 已存在",
|
||||
"replace_downloaded_tracks": "取代已下載的歌曲",
|
||||
"skip_download_tracks": "下載時略過已下載的歌曲",
|
||||
"do_you_want_to_replace": "您確定要取代已下載的歌曲嗎??",
|
||||
"replace": "取代",
|
||||
"skip": "略過",
|
||||
"select_up_to_count_type": "選擇多達 {count} 種的類型 {type}",
|
||||
"select_genres": "選擇曲風",
|
||||
"add_genres": "新增曲風",
|
||||
"country": "國家與地區",
|
||||
"number_of_tracks_generate": "產生歌曲的數目",
|
||||
"acousticness": "原聲程度",
|
||||
"danceability": "律動感",
|
||||
"energy": "衝擊感",
|
||||
"instrumentalness": "歌唱部分佔比",
|
||||
"liveness": "現場感",
|
||||
"loudness": "響度",
|
||||
"speechiness": "朗誦比例",
|
||||
"valence": "心理感受",
|
||||
"popularity": "流行度",
|
||||
"key": "曲調",
|
||||
"duration": "歌曲時長 (s)",
|
||||
"tempo": "分鐘節拍數 (BPM)",
|
||||
"mode": "旋律重複度",
|
||||
"time_signature": "音符時值",
|
||||
"short": "短",
|
||||
"medium": "中",
|
||||
"long": "長",
|
||||
"min": "最低",
|
||||
"max": "最高",
|
||||
"target": "目標",
|
||||
"moderate": "中",
|
||||
"deselect_all": "取消全選",
|
||||
"select_all": "全選",
|
||||
"are_you_sure": "您確定嗎?",
|
||||
"generating_playlist": "正在產生您的自訂播放清單...",
|
||||
"selected_count_tracks": "已選擇 {count} 首歌曲",
|
||||
"download_warning": "如果您大量下載這些歌曲,您顯然在侵犯音樂的版權並對音樂創作社區造成了傷害。我希望您能意識到這一點。永遠要尊重並支持藝人們的辛勤工作",
|
||||
"download_ip_ban_warning": "小心,如果出現超出正常的下載請求那您的 IP 可能會被 YouTube 封鎖,這意味著您的裝置將在長達 2-3 個月的時間內無法使用該 IP 存取 YouTube(即使您沒登入)。Spotube 對此不承擔任何責任",
|
||||
"by_clicking_accept_terms": "點擊『同意』代表著您同意以下的條款",
|
||||
"download_agreement_1": "我明白侵犯音樂版權是一件不好的事情",
|
||||
"download_agreement_2": "我將盡可能支持藝人的工作。我現在之所以做不到是因為缺乏資金來購買正版",
|
||||
"download_agreement_3": "我完全瞭解我的 IP 存在被 YouTube 的風險。我同意 Spotube 的所有者與貢獻者們無須對我目前的行為所導致的任何後果負責",
|
||||
"decline": "拒絕",
|
||||
"accept": "同意",
|
||||
"details": "詳細資料",
|
||||
"youtube": "YouTube",
|
||||
"channel": "頻道",
|
||||
"likes": "贊",
|
||||
"dislikes": "踩",
|
||||
"views": "瀏覽次數",
|
||||
"streamUrl": "播放串流 URL",
|
||||
"stop": "停止",
|
||||
"sort_newest": "依最新新增排序",
|
||||
"sort_oldest": "依最舊新增排序",
|
||||
"sleep_timer": "睡眠定時器",
|
||||
"mins": "{minutes} 分",
|
||||
"hours": "{hours} 時",
|
||||
"hour": "{hours} 時",
|
||||
"custom_hours": "自訂時間",
|
||||
"logs": "日誌",
|
||||
"developers": "開發者",
|
||||
"not_logged_in": "您尚未登入",
|
||||
"search_mode": "搜尋模式",
|
||||
"audio_source": "音訊來源",
|
||||
"ok": "確定",
|
||||
"failed_to_encrypt": "加密失敗",
|
||||
"encryption_failed_warning": "Spotube 使用加密來安全地存儲您的資料。但是失敗了。因此,它將回退到不安全的存儲\n如果您使用 Linux,請確保已安裝 gnome-keyring、kde-wallet 與 keepassxc 等秘密服務",
|
||||
"querying_info": "正在查詢資訊...",
|
||||
"piped_api_down": "Piped API不可用",
|
||||
"piped_down_error_instructions": "目前 Piped 實例 {pipedInstance} 不可用\n\n請更改實例或將『API 類型』更改為官方 YouTube API\n\n更改後請確保重新啟動應用程式",
|
||||
"you_are_offline": "您目前處於離線狀態",
|
||||
"connection_restored": "您的網際網路連接已恢復",
|
||||
"use_system_title_bar": "使用系統標題列",
|
||||
"crunching_results": "處理結果中...",
|
||||
"search_to_get_results": "搜尋以獲取結果",
|
||||
"use_amoled_mode": "使用 AMOLED 模式",
|
||||
"pitch_dark_theme": "深色主題",
|
||||
"normalize_audio": "標準化音訊",
|
||||
"change_cover": "更改封面",
|
||||
"add_cover": "新增封面",
|
||||
"restore_defaults": "恢復預設值",
|
||||
"download_music_codec": "下載音樂編解碼器",
|
||||
"streaming_music_codec": "串流媒體音樂編解碼器",
|
||||
"login_with_lastfm": "使用 Last.fm 登入",
|
||||
"connect": "連接",
|
||||
"disconnect_lastfm": "斷開 Last.fm 連接",
|
||||
"disconnect": "斷開連接",
|
||||
"username": "使用者名稱",
|
||||
"password": "密碼",
|
||||
"login": "登入",
|
||||
"login_with_your_lastfm": "使用您的 Last.fm 帳戶登入",
|
||||
"scrobble_to_lastfm": "在 Last.fm 上記錄播放",
|
||||
"go_to_album": "前往專輯",
|
||||
"discord_rich_presence": "Discord 豐富展現",
|
||||
"browse_all": "瀏覽全部",
|
||||
"genres": "曲風",
|
||||
"explore_genres": "探索曲風",
|
||||
"friends": "朋友",
|
||||
"no_lyrics_available": "抱歉,無法找到此曲的歌詞",
|
||||
"start_a_radio": "開始收聽電台",
|
||||
"how_to_start_radio": "您想如何開始收聽電台?",
|
||||
"replace_queue_question": "您想要取代目前隊列還是追加到隊列?",
|
||||
"endless_playback": "無盡播放",
|
||||
"delete_playlist": "刪除播放清單",
|
||||
"delete_playlist_confirmation": "您確定要刪除此播放清單嗎?",
|
||||
"local_tracks": "本機音軌",
|
||||
"local_tab": "本機",
|
||||
"song_link": "歌曲連結",
|
||||
"skip_this_nonsense": "略過此無聊內容",
|
||||
"freedom_of_music": "「音樂的自由」",
|
||||
"freedom_of_music_palm": "「音樂的自由掌握在您手中」",
|
||||
"get_started": "讓我們開始吧",
|
||||
"youtube_source_description": "推薦並且效果最佳。",
|
||||
"piped_source_description": "感覺自由?與 YouTube 一樣但更自由。",
|
||||
"jiosaavn_source_description": "最適合南亞地區。",
|
||||
"invidious_source_description": "類似於 Piped,但可用性更高。",
|
||||
"highest_quality": "最高音質:{quality}",
|
||||
"select_audio_source": "選擇音訊來源",
|
||||
"endless_playback_description": "自動將新歌曲新增到隊列的末尾",
|
||||
"choose_your_region": "選擇您的地區",
|
||||
"choose_your_region_description": "這將幫助 Spotube 為您的位置顯示正確的內容。",
|
||||
"choose_your_language": "選擇您的語言",
|
||||
"help_project_grow": "幫助這個專案成長",
|
||||
"help_project_grow_description": "Spotube 是一個開源專案。您可以通過為專案做出貢獻、回報錯誤或建議新功能來幫助該專案成長。",
|
||||
"contribute_on_github": "在 GitHub 上做出貢獻",
|
||||
"donate_on_open_collective": "在 Open Collective 上捐款",
|
||||
"browse_anonymously": "匿名瀏覽",
|
||||
"enable_connect": "啟用連接",
|
||||
"enable_connect_description": "從其他裝置控制Spotube",
|
||||
"devices": "裝置",
|
||||
"select": "選擇",
|
||||
"connect_client_alert": "您正在被 {client} 控制",
|
||||
"this_device": "此裝置",
|
||||
"remote": "遠端",
|
||||
"stats": "統計",
|
||||
"and_n_more": "和 {count} 更多",
|
||||
"recently_played": "最近播放",
|
||||
"browse_more": "瀏覽更多",
|
||||
"no_title": "沒有標題",
|
||||
"not_playing": "未播放",
|
||||
"epic_failure": "史詩級失敗!",
|
||||
"added_num_tracks_to_queue": "已將 {tracks_length} 首曲目新增到隊列",
|
||||
"spotube_has_an_update": "Spotube 有更新",
|
||||
"download_now": "立即下載",
|
||||
"nightly_version": "Spotube Nightly {nightlyBuildNum} 已發佈",
|
||||
"release_version": "Spotube v{version} 已發佈",
|
||||
"read_the_latest": "閱讀最新",
|
||||
"release_notes": "版本說明",
|
||||
"pick_color_scheme": "選擇配色方案",
|
||||
"save": "儲存",
|
||||
"choose_the_device": "選擇裝置:",
|
||||
"multiple_device_connected": "已連接多個裝置。\n選擇您希望執行此操作的裝置",
|
||||
"nothing_found": "沒有找到任何內容",
|
||||
"the_box_is_empty": "箱子為空",
|
||||
"top_artists": "熱門藝人",
|
||||
"top_albums": "熱門專輯",
|
||||
"this_week": "本週",
|
||||
"this_month": "本月",
|
||||
"last_6_months": "過去6個月",
|
||||
"this_year": "今年",
|
||||
"last_2_years": "過去2年",
|
||||
"all_time": "所有時間",
|
||||
"powered_by_provider": "由 {providerName} 提供支援",
|
||||
"email": "電子郵件",
|
||||
"profile_followers": "關注者",
|
||||
"birthday": "生日",
|
||||
"subscription": "訂閱",
|
||||
"not_born": "尚未出生",
|
||||
"hacker": "黑客",
|
||||
"profile": "個人資料",
|
||||
"no_name": "無名",
|
||||
"edit": "編輯",
|
||||
"user_profile": "使用者資料",
|
||||
"count_plays": "{count} 次播放",
|
||||
"streaming_fees_hypothetical": "*基於 Spotify 每次播放的支付金額\n從 $0.003 到 $0.005 計算。這是一個假設性的\n計算,旨在讓使用者瞭解如果他們在 Spotify 上收聽\n這些歌曲,可能會付給藝人的金額。",
|
||||
"minutes_listened": "聽的分鐘數",
|
||||
"streamed_songs": "已串流媒體歌曲",
|
||||
"count_streams": "{count} 次串流媒體",
|
||||
"owned_by_you": "由您擁有",
|
||||
"copied_shareurl_to_clipboard": "{shareUrl} 已複製到剪貼簿",
|
||||
"spotify_hipotetical_calculation": "*根據 Spotify 每次串流媒體的支付金額\n$0.003 到 $0.005 進行計算。這是一個假設性的\n計算,用於給使用者瞭解他們如果在 Spotify 上\n收聽歌曲會支付給藝人的金額。",
|
||||
"count_mins": "{minutes} 分鐘",
|
||||
"summary_minutes": "分鐘",
|
||||
"summary_listened_to_music": "聽音樂",
|
||||
"summary_songs": "歌曲",
|
||||
"summary_streamed_overall": "總體串流媒體",
|
||||
"summary_owed_to_artists": "本月欠藝人的",
|
||||
"summary_artists": "藝人的",
|
||||
"summary_music_reached_you": "音樂觸及了您",
|
||||
"summary_full_albums": "完整專輯",
|
||||
"summary_got_your_love": "獲得了您的愛",
|
||||
"summary_playlists": "播放清單",
|
||||
"summary_were_on_repeat": "已重複播放",
|
||||
"total_money": "總計 {money}",
|
||||
"webview_not_found": "沒有發現 Webview",
|
||||
"webview_not_found_description": "您的裝置中未安裝 Webview 運行時。\n如果已安裝,請確保它在環境變數 PATH 中\n\n安裝後,重新啟動應用程式",
|
||||
"unsupported_platform": "不支援的平台",
|
||||
"cache_music": "快取音樂",
|
||||
"open": "打開",
|
||||
"cache_folder": "快取資料夾",
|
||||
"export": "匯出",
|
||||
"clear_cache": "清除快取",
|
||||
"clear_cache_confirmation": "您要清除快取嗎?",
|
||||
"export_cache_files": "匯出快取檔案",
|
||||
"found_n_files": "找到 {count} 個檔案",
|
||||
"export_cache_confirmation": "您要匯出這些檔案到",
|
||||
"exported_n_out_of_m_files": "匯出了 {filesExported} / {files} 個檔案"
|
||||
}
|
||||
54
website/src/lib/components/misc/legal.svelte
Normal file
54
website/src/lib/components/misc/legal.svelte
Normal file
@ -0,0 +1,54 @@
|
||||
<script lang="ts">
|
||||
import SvelteMarkdown from "svelte-markdown";
|
||||
import Layout from "$lib/components/markdown/layout.svelte";
|
||||
|
||||
const mdContent = `
|
||||
## 🚨 Spotube is banned from using "Spotify™ API" 🚨
|
||||
|
||||
The developer of Spotube has received a cease and desist letter from Spotify USA Inc. and Spotify AB, asserting a legal threat concerning the distribution and development of any application that utilizes Spotify’s data API in conjunction with content from YouTube® to facilitate ad-free playback of music tracks. The letter contends that this specific use of the Spotify™ APIs contravenes the Spotify™ Agreements and may also infringe upon the rights of music rights holders.
|
||||
|
||||
Consequently, as the official maintainer of Spotube, I will immediately cease all forms of official distribution and development of Spotube that continue to employ the aforementioned 'Spotify™ APIs'
|
||||
|
||||
<ins>Their exact reasoning</ins>: (any) "uses of Spotify’s data API in connection with content from YouTube to provide ad-free playback of music tracks. The use of the Spotify APIs in this manner violates the Spotify Agreements and may also violate the rights of music rights holders."
|
||||
|
||||
## So what's now?
|
||||
|
||||
> In short, we are cooked (legally)
|
||||
|
||||
For now, I've to:
|
||||
|
||||
1. Stop distributing/developing Spotube/any app that uses "Spotify™ APIs"
|
||||
|
||||
That means, I can no longer distribute Spotube through the website, GitHub, any app store and immediately have to take down the versions that uses Spotify™ APIs.
|
||||
|
||||
1. Stop using their logo/image/name/intellectual property in a manner that "seems infringement"
|
||||
1. Forever desist from aiding or assisting any other person or entity in the activities described above
|
||||
|
||||
---
|
||||
|
||||
**For the users of Spotube:**
|
||||
|
||||
Don't worry, Spotube is banned only from (or assisting other) using those APIs. As long as the app isn't using them or no way helps anyone else to use them, it's ok.
|
||||
|
||||
In future, I'll try to rewrite Spotube to ensure it operates within the bounds of copyright law and platform policies. And give ways for the users to extend the app to their use cases. Work is already in progress to implement this! So expect some big updates soon!
|
||||
|
||||
But for eternity, you can't download versions of Spotube that still uses "Spotify™ APIs" from official means (website/Github/app stores). Those will be taken down.
|
||||
|
||||
**But newer version of Spotube that _doesn't_ use "Spotify™ APIs" will be available to replace those.**
|
||||
|
||||
That means, in the upcoming new versions, you will no longer be able to login with your "Spotify™ Account", access your saved playlists, albums, tracks, followed artists or perform any action on that account or anything that is from "Spotify™" or owned by "Spotify™" (yes the API public data (e.g. track metadata) as well) through Spotube.
|
||||
|
||||
**Conclusion:** I'm extremely sorry for this disruption to your day to day music listening experience. Spotube existed and it used by a large number of users because they find it better. And we'll continue to be better than others but legally\* from now on.
|
||||
`
|
||||
</script>
|
||||
|
||||
<div class="bg-primary-100 p-5 rounded-lg overflow-scroll max-h-[95vh]">
|
||||
<Layout>
|
||||
<SvelteMarkdown source={mdContent}/>
|
||||
</Layout>
|
||||
<p class="w-1 h-60"></p>
|
||||
|
||||
<p class="text-surface-500 mt-20">
|
||||
Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
</p>
|
||||
</div>
|
||||
@ -5,7 +5,7 @@
|
||||
// Highlight JS
|
||||
import hljs from 'highlight.js/lib/core';
|
||||
import 'highlight.js/styles/github-dark.css';
|
||||
import { Drawer, getDrawerStore, storeHighlightJs } from '@skeletonlabs/skeleton';
|
||||
import { Drawer, getDrawerStore, getModalStore, Modal, storeHighlightJs, type ModalComponent } from '@skeletonlabs/skeleton';
|
||||
import xml from 'highlight.js/lib/languages/xml'; // for HTML
|
||||
import css from 'highlight.js/lib/languages/css';
|
||||
import javascript from 'highlight.js/lib/languages/javascript';
|
||||
@ -26,12 +26,28 @@
|
||||
import NavDrawer from '../lib/components/navdrawer/navdrawer.svelte';
|
||||
import Fa from 'svelte-fa';
|
||||
import { faGithub } from '@fortawesome/free-brands-svg-icons';
|
||||
import Legal from '$lib/components/misc/legal.svelte';
|
||||
import { onMount } from 'svelte';
|
||||
initializeStores();
|
||||
|
||||
const drawerStore = getDrawerStore();
|
||||
const modalStore = getModalStore();
|
||||
|
||||
const modalRegistry: Record<string, ModalComponent> = {
|
||||
legal: { ref: Legal }
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
// Set the default modal to be open
|
||||
modalStore.trigger({
|
||||
type: "component",
|
||||
component: "legal",
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
||||
<main class="p-2 md:p-4 min-h-[90vh]">
|
||||
<Modal components={modalRegistry} />
|
||||
<Drawer>
|
||||
{#if $drawerStore.id === 'navdrawer'}
|
||||
<NavDrawer />
|
||||
|
||||
@ -56,26 +56,26 @@
|
||||
<a href="https://news.ycombinator.com/item?id=39066136" target="_blank">
|
||||
<img src="https://hackerbadge.vercel.app/api?id=39066136" alt="HackerNews" />
|
||||
</a>
|
||||
<a href="https://flathub.org/apps/com.github.KRTirtho.Spotube" target="_blank">
|
||||
<!-- <a href="https://flathub.org/apps/com.github.KRTirtho.Spotube" target="_blank">
|
||||
<img
|
||||
width="160"
|
||||
alt="Download on Flathub"
|
||||
src="https://flathub.org/api/badge?locale=en"
|
||||
/>
|
||||
</a>
|
||||
</a> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-center">
|
||||
<!-- <div class="flex justify-center">
|
||||
<a href="/downloads" class="flex gap-2 btn variant-filled-primary">
|
||||
Download
|
||||
<Download />
|
||||
</a>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<!-- <br />
|
||||
<Ads adSlot={ADS_SLOTS.rootPageDisplay} adFormat="auto" />
|
||||
<br />
|
||||
<br /> -->
|
||||
|
||||
<div class="flex flex-col gap-4">
|
||||
<h2 class="h2">
|
||||
@ -113,5 +113,5 @@
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<Ads adSlot={ADS_SLOTS.rootPageDisplay} adFormat="auto" />
|
||||
<!-- <Ads adSlot={ADS_SLOTS.rootPageDisplay} adFormat="auto" /> -->
|
||||
</section>
|
||||
|
||||
@ -43,12 +43,13 @@
|
||||
<article class="grid sm:grid-cols-2 md:grid-cols-3 2xl:grid-cols-4">
|
||||
{#each adAddedPosts as post}
|
||||
{#if post.slug === 'ad'}
|
||||
<Ads
|
||||
<p></p>
|
||||
<!-- <Ads
|
||||
adSlot={ADS_SLOTS.blogPageInFeed}
|
||||
adFormat="fluid"
|
||||
adLayoutKey="-6l+eh+17-40+59"
|
||||
fullWidthResponsive={false}
|
||||
/>
|
||||
/> -->
|
||||
{:else}
|
||||
<a
|
||||
href={`/blog/${post.slug}`}
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<script lang="ts">
|
||||
import { ADS_SLOTS, extendedDownloadLinks } from '$lib';
|
||||
// import { ADS_SLOTS, extendedDownloadLinks } from '$lib';
|
||||
import { Download } from 'lucide-svelte';
|
||||
import { History, Sparkles, Package } from 'lucide-svelte';
|
||||
import DownloadItems from '$lib/components/downloads/download-items.svelte';
|
||||
import Ads from '$lib/components/ads/ads.svelte';
|
||||
// import { History, Sparkles, Package } from 'lucide-svelte';
|
||||
// import DownloadItems from '$lib/components/downloads/download-items.svelte';
|
||||
// import Ads from '$lib/components/ads/ads.svelte';
|
||||
|
||||
const otherDownloads: [string, string, any][] = [
|
||||
['/downloads/packages', 'CLI Packages Managers', Package],
|
||||
['/downloads/older', 'Older Versions', History],
|
||||
['/downloads/nightly', 'Nightly Builds', Sparkles]
|
||||
];
|
||||
// const otherDownloads: [string, string, any][] = [
|
||||
// ['/downloads/packages', 'CLI Packages Managers', Package],
|
||||
// ['/downloads/older', 'Older Versions', History],
|
||||
// ['/downloads/nightly', 'Nightly Builds', Sparkles]
|
||||
// ];
|
||||
</script>
|
||||
|
||||
<section class="p-4 md:p-16 md:pb-4">
|
||||
@ -21,13 +21,25 @@
|
||||
<h5 class="h5">Spotube is available for every platform</h5>
|
||||
<br />
|
||||
|
||||
<DownloadItems links={extendedDownloadLinks} />
|
||||
<!-- <DownloadItems links={extendedDownloadLinks} /> -->
|
||||
|
||||
<h3 class="h3 text-red-500">
|
||||
Versions of Spotube (<=v4.0.2) are ceased to work with Spotify™ API.
|
||||
<br />
|
||||
So users can no longer use/download those versions.
|
||||
<br />
|
||||
Please wait for the next version that will remedy this issue by not using such APIs.
|
||||
</h3>
|
||||
|
||||
<p class="text-surface-500 mt-20">
|
||||
Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
</p>
|
||||
|
||||
<br />
|
||||
<Ads adSlot={ADS_SLOTS.downloadPageDisplay} adFormat="auto" />
|
||||
<!-- <Ads adSlot={ADS_SLOTS.downloadPageDisplay} adFormat="auto" /> -->
|
||||
<br />
|
||||
|
||||
<h2 class="h2">Other Downloads</h2>
|
||||
<!-- <h2 class="h2">Other Downloads</h2>
|
||||
<br /><br />
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-2 max-w-3xl">
|
||||
{#each otherDownloads as download}
|
||||
@ -39,6 +51,6 @@
|
||||
</a>
|
||||
{/each}
|
||||
</div>
|
||||
<br />
|
||||
<Ads adSlot={ADS_SLOTS.downloadPageDisplay} adFormat="auto" />
|
||||
<br /> -->
|
||||
<!-- <Ads adSlot={ADS_SLOTS.downloadPageDisplay} adFormat="auto" /> -->
|
||||
</section>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<script>
|
||||
import { AlertTriangle, Bug, Sparkles } from 'lucide-svelte';
|
||||
import DownloadItems from '$lib/components/downloads/download-items.svelte';
|
||||
import { extendedNightlyDownloadLinks } from '$lib';
|
||||
// import DownloadItems from '$lib/components/downloads/download-items.svelte';
|
||||
// import { extendedNightlyDownloadLinks } from '$lib';
|
||||
</script>
|
||||
|
||||
<section class="p-4 md:p-16">
|
||||
@ -29,5 +29,17 @@
|
||||
</aside>
|
||||
<br />
|
||||
|
||||
<DownloadItems links={extendedNightlyDownloadLinks} />
|
||||
<h3 class="h3 text-red-500">
|
||||
Versions of Spotube (<=v4.0.2) are ceased to work with Spotify™ API.
|
||||
<br />
|
||||
So users can no longer use/download those versions.
|
||||
<br />
|
||||
Please wait for the next version that will remedy this issue by not using such APIs.
|
||||
</h3>
|
||||
|
||||
<p class="text-surface-500 mt-20">
|
||||
Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
</p>
|
||||
|
||||
<!-- <DownloadItems links={extendedNightlyDownloadLinks} /> -->
|
||||
</section>
|
||||
|
||||
@ -84,6 +84,17 @@
|
||||
<History />
|
||||
</div>
|
||||
<br /><br />
|
||||
<h3 class="h3 text-red-500">
|
||||
Versions of Spotube (<=v4.0.2) are ceased to work with Spotify™ API.
|
||||
<br />
|
||||
So users can no longer use/download those versions.
|
||||
<br />
|
||||
Please wait for the next version that will remedy this issue by not using such APIs.
|
||||
</h3>
|
||||
|
||||
<p class="text-surface-500 mt-20">
|
||||
Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
</p>
|
||||
<Accordion>
|
||||
<div class="flex flex-col gap-5">
|
||||
{#each data.releases as release}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
import type { PageLoad } from "./$types";
|
||||
import { Octokit } from "@octokit/rest";
|
||||
// import { Octokit } from "@octokit/rest";
|
||||
|
||||
const github = new Octokit();
|
||||
// const github = new Octokit();
|
||||
export const load: PageLoad = async () => {
|
||||
const { data: releases } = await github.repos.listReleases({
|
||||
owner: "KRTirtho",
|
||||
repo: "spotube",
|
||||
});
|
||||
// const { data: releases } = await github.repos.listReleases({
|
||||
// owner: "KRTirtho",
|
||||
// repo: "spotube",
|
||||
// });
|
||||
|
||||
return {
|
||||
releases,
|
||||
releases: [],
|
||||
};
|
||||
};
|
||||
|
||||
@ -6,15 +6,28 @@ author: Kingkor Roy Tirtho
|
||||
<script lang="ts">
|
||||
import { faLinux, faWindows, faApple } from '@fortawesome/free-brands-svg-icons';
|
||||
import Fa from 'svelte-fa';
|
||||
import Ads from '$lib/components/ads/ads.svelte';
|
||||
import { ADS_SLOTS } from '$lib';
|
||||
// import Ads from '$lib/components/ads/ads.svelte';
|
||||
// import { ADS_SLOTS } from '$lib';
|
||||
</script>
|
||||
|
||||
<div class="p-4 md:ps-24">
|
||||
<h2 class="h2">Package Managers</h2>
|
||||
|
||||
Spotube is available in various Package Managers supported by Platform
|
||||
|
||||
<h3 class="h3 text-red-500">
|
||||
Versions of Spotube (<=v4.0.2) are ceased to work with Spotify™ API.
|
||||
<br />
|
||||
So users can no longer use/download those versions.
|
||||
<br />
|
||||
Please wait for the next version that will remedy this issue by not using such APIs.
|
||||
</h3>
|
||||
|
||||
<p class="text-surface-500 mt-20">
|
||||
Spotube has no affiliation with Spotify™ or any of its subsidiaries.
|
||||
</p>
|
||||
|
||||
<!--
|
||||
## <Fa class="inline" icon={faLinux} /> Linux
|
||||
|
||||
### Flatpak📦
|
||||
@ -49,7 +62,6 @@ $ paru -Sy spotube-bin
|
||||
adFormat="fluid"
|
||||
fullWidthResponsive={false}
|
||||
/>
|
||||
|
||||
## <Fa class="inline" icon={faApple} /> MacOS
|
||||
|
||||
### Homebrew🍻
|
||||
@ -96,4 +108,5 @@ $ scoop bucket add extras
|
||||
$ scoop install spotube
|
||||
```
|
||||
|
||||
-->
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user