Convert Figma logo to code with AI

KRTirtho logospotube

🎧 Open source music client! Available for both desktop & mobile!

40,721
1,732
40,721
803

Top Related Projects

Spotify for the terminal written in Rust 🚀

5,429

Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.

10,153

A spotify daemon

Open Source Spotify client library

Quick Overview

Spotube is an open-source Spotify client that allows users to stream music without premium subscriptions. It uses the Spotify API for metadata and YouTube for audio sources, providing a free alternative to the official Spotify app with additional features and customization options.

Pros

  • Free streaming without ads or premium subscription
  • Cross-platform support (Windows, macOS, Linux, Android)
  • Customizable interface with themes and layouts
  • Offline playback and playlist syncing capabilities

Cons

  • Potential legal concerns due to using YouTube as an audio source
  • May not have all features available in the official Spotify app
  • Requires manual installation and updates
  • Possible audio quality differences compared to official Spotify streams

Getting Started

To get started with Spotube:

  1. Visit the Spotube GitHub releases page
  2. Download the appropriate version for your operating system
  3. Install the application following the platform-specific instructions
  4. Launch Spotube and log in with your Spotify account
  5. Start exploring and playing music

Note: For Android users, you may need to enable installation from unknown sources in your device settings before installing the APK file.

Competitor Comparisons

Spotify for the terminal written in Rust 🚀

Pros of spotify-tui

  • Terminal-based interface, ideal for users who prefer command-line tools
  • Lightweight and efficient, consuming minimal system resources
  • Extensive keyboard shortcuts for quick navigation and control

Cons of spotify-tui

  • Limited to terminal environments, lacking a graphical user interface
  • Requires Spotify Premium account for full functionality
  • May have a steeper learning curve for users unfamiliar with CLI applications

Code Comparison

spotify-tui (Rust):

let spotify = Spotify::default()
    .client_credentials_manager(client_credentials_manager)
    .build();

Spotube (Dart):

final spotify = SpotifyApi(
  SpotifyApiCredentials(clientId, clientSecret),
);

Key Differences

  • Spotube is a cross-platform GUI application, while spotify-tui is a terminal-based interface
  • Spotube offers a more user-friendly experience for those accustomed to traditional music players
  • spotify-tui provides a more minimalist and resource-efficient approach
  • Spotube includes additional features like lyrics display and audio caching
  • spotify-tui integrates more tightly with the native Spotify client for playback

Both projects aim to enhance the Spotify experience, with spotify-tui focusing on terminal users and Spotube offering a full-fledged alternative client with extended functionality.

5,429

Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.

Pros of ncspot

  • Written in Rust, offering better performance and memory safety
  • Terminal-based interface, ideal for users who prefer command-line applications
  • Lightweight and resource-efficient, suitable for low-powered devices

Cons of ncspot

  • Limited cross-platform support compared to Spotube's Flutter-based approach
  • Less visually appealing interface for users accustomed to graphical applications
  • Steeper learning curve for users not familiar with terminal-based applications

Code Comparison

ncspot (Rust):

pub fn play(&mut self, track_id: &str) -> Result<(), Box<dyn Error>> {
    self.player.load(track_id, true, 0)?;
    self.player.play()?;
    Ok(())
}

Spotube (Dart):

Future<void> play(String trackId) async {
  await player.load(trackId);
  await player.play();
}

Both projects aim to provide alternative Spotify clients, but they cater to different user preferences. ncspot focuses on terminal users and performance, while Spotube offers a more traditional graphical interface with cross-platform compatibility. The code comparison shows similar functionality implemented in their respective languages, with ncspot using Rust's error handling and Spotube utilizing Dart's async/await pattern.

10,153

A spotify daemon

Pros of Spotifyd

  • Lightweight and resource-efficient, running as a daemon
  • Supports remote control via official Spotify apps
  • Cross-platform compatibility (Linux, macOS, Windows)

Cons of Spotifyd

  • Limited user interface, primarily controlled through other Spotify clients
  • Requires a Spotify Premium account for full functionality
  • Less feature-rich compared to Spotube's all-in-one solution

Code Comparison

Spotifyd (Rust):

let (mut stream, creds) = Session::connect(config, credentials, cache, true)?;
let (tx, rx) = mpsc::channel();
let player = Player::new(config.backend, config.volume, move || rx.recv().unwrap());

Spotube (Dart):

final player = AudioPlayer();
await player.setAudioSource(
  AudioSource.uri(Uri.parse(trackUrl)),
  initialPosition: Duration.zero,
);
await player.play();

Key Differences

  • Spotifyd is a backend-focused solution, while Spotube provides a complete frontend and backend package
  • Spotube offers a graphical user interface, making it more accessible for average users
  • Spotifyd integrates directly with official Spotify apps, whereas Spotube operates more independently
  • Spotube includes additional features like lyrics display and audio normalization

Both projects aim to provide alternative Spotify clients, but they cater to different use cases and user preferences.

Open Source Spotify client library

Pros of librespot

  • Written in Rust, offering better performance and memory safety
  • Focuses on core Spotify protocol implementation, providing a solid foundation for other projects
  • More actively maintained with frequent updates and contributions

Cons of librespot

  • Lacks a user interface, requiring additional development for a complete application
  • More complex to set up and use for end-users
  • Limited features beyond core Spotify functionality

Code Comparison

librespot (Rust):

let session = Session::connect(config, credentials).await?;
let (mut player, _) = Player::new(config, session.clone(), None, move || {});
player.load(track_id, true, 0).await?;
player.play().await?;

Spotube (Dart):

final player = SpotifyPlayer();
await player.play(trackUri);
await player.pause();
await player.resume();

Summary

librespot is a low-level Spotify client library written in Rust, focusing on core protocol implementation. It offers better performance and serves as a foundation for other projects. However, it lacks a user interface and requires more setup.

Spotube is a full-fledged Spotify client application built with Flutter and Dart. It provides a user-friendly interface and is easier to use for end-users. However, it may not offer the same level of performance as librespot and has a different scope in terms of functionality.

Both projects have their strengths and are suitable for different use cases, depending on whether you need a low-level library or a complete application.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

🚨 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'

Their exact reasoning: (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.

  2. Stop using their logo/image/name/intellectual property in a manner that "seems infringement"

  3. 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.

Spotube Logo

An open source, cross-platform music client
utilizing selected music provider API and YouTube®, Piped.video or JioSaavn as an audio source

Btw it's not just another Electron app 😉

Visit the website Discord Server

Support me on Patron Buy me a Coffee

HackerNews

Donate to our Open Collective


🌃 Features

  • 🚫 No ads, thanks to the use of public & free music metadata providers and YT Music APIs¹
  • ⬇️ Freely downloadable tracks
  • 🖥️ 📱 Cross-platform support
  • 🪶 Small size & less data usage
  • 🕵️ Anonymous/guest login
  • 🕒 Time synced lyrics
  • ✋ No telemetry, diagnostics or user data collection
  • 🚀 Native performance
  • 📖 Open source/libre software
  • 🔉 Playback control is done locally, not on the server

¹ It is still recommended to support creators by engaging with their YouTube channels/tracks in music platforms (or preferably by buying their merch/concert tickets/physical media).

❌ Unsupported features

  • 🗣️ Shows & Podcasts: Shows and Podcasts will never be supported because the audio tracks are only available on music providers and accessing them would require premium.
  • 🎧 Listen Along: Coming soon!

👥 The Spotube team

💼 License

Spotube is open source and licensed under the BSD-4-Clause License.

If you are concerned, you can read the reason of choosing this license.