Code Monkey home page Code Monkey logo

look1n / spotube Goto Github PK

View Code? Open in Web Editor NEW

This project forked from krtirtho/spotube

0.0 0.0 0.0 90.46 MB

A lightweight free Spotify ๐ŸŽง desktop-client ๐Ÿ–ฅ which handles playback manually, streams music using Youtube & no Spotify premium account is needed ๐Ÿ˜ฑ

License: Other

Shell 0.83% Kotlin 0.07% Swift 1.18% Objective-C 0.02% Dart 69.82% CMake 8.20% C++ 12.22% C 0.76% HTML 2.10% Inno Setup 1.52% Makefile 0.97% PowerShell 0.89% Ruby 1.43%

spotube's Introduction

Spotube

Spotube is a Flutter based lightweight spotify client. It utilizes the power of Spotify & Youtube's public API & creates a hazardless, performant & resource friendly User Experience Application Screenshot

Features

Following are the features that currently spotube offers:

  • Open Source
  • No telementry, diagnostics or user data collection
  • Lightweight & resource friendly
  • Native performance (Thanks to Flutter+Skia)
  • Playback control is on user's machine instead of server based
  • Small size & less data hungry
  • No spotify or youtube ads since it uses all public & free APIs (But it's recommended to support the creators by watching/liking/subscribing to the artists youtube channel or add as favourite track in spotify. Mostly buying spotify premium is the best way to support their valuable creations)
  • Lyrics
  • Downloadable track

Spotube - A lightweight+free Spotify desktop-client made with flutter | Product Hunt

Installation

I'm always releasing newer versions of binary of the software each 2-3 month with minor changes & each 6-8 month with major changes. Grab the binaries

All the binaries are located in the releases, just download

Windows

Download the setup file & follow along the installer

Chocolatey

Run the following command to install Spotube with windows chocolatey package manager

choco install spotube

Winget

Run the following command to install Spotube with new Windows Package Manager:

winget install --id KRTirtho.Spotube

Linux

Ubuntu/Debian/Linux Mint/Pop_!OS:

Download the Spotube-linux-x86_64.deb then double click it or run

$ sudo apt install Spotube-linux-x86_64.deb
# or
$ sudo dpkg -i Spotube-linux-x86_64.deb

in the directory where it was downloaded

Arch/Manjaro/Endeavour:

Run following terminal

# for `yay` users
$ yay -S spotube
# for `pamac` users
$ pamac install spotube

Others:

Download the Spotube-linux-x86_64.AppImage file & double click to run it. AppImages require appimage-launcher to be installed

I'll/try to upload the package binaries to linux debian/arch/ubuntu/snap/flatpack/redhat/chocolatey stores or software centers or repositories

Configuration

There are some configurations that needs to be done to start using this software

You need a spotify account & a developer app for

  • clientId
  • clientSecret

Grab credentials:

  • Go to https://developer.spotify.com/dashboard/login & login with your spotify account (Skip if you're logged in) Step 1

  • Create an web app for Spotify Public API step 2

  • Give the app a name & description. Then Edit settings & add http://localhost:4304/auth/spotify/callback as Redirect URI for the app. Its important for authenticating setp-3

  • Click on SHOW CLIENT SECRET to reveal the clientSecret. Then copy the clientID, clientSecret & paste in the Spotube's respective fields step-4

Also, you need a genius account for lyrics & a API Client for

  • accessToken

Note!: No personal data or any kind of sensitive information won't be collected from spotify. Don't believe? See the code for yourself

TODO:

  • Compile, Debug & Build for MacOS
  • Add support for show Lyric of currently playing track
  • Track download
  • Support for playing/streaming podcasts/shows
  • Artist, User & Album pages

Building from source

  • Download the latest Flutter SDK (>=2.15.1) & enable desktop support
  • Install Development dependencies in linux
    • libwebkit2gtk-4.0-dev, libkeybinder-3.0-0 & libkeybinder-3.0-0-dev (for Debian/Ubuntu)
    • webkit2gtk & libkeybinder3 (for Arch/Manjaro)
  • Clone the Repo
$ flutter pub get
$ flutter run -d <window|macos|linux>

Things that don't work

  • Shows & Podcasts aren't supported as it'd require premium anyway
  • OS Media Controls
  • Global Media Shortcuts/Keyboard Media Buttons

License

BSD 4-Clause

Bu why? You can learn about it here

Relevant Project/Tools Links

  • Flutter - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
  • Linux - 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
  • AUR - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
  • Flatpak - Flatpak is a utility for software deployment and package management for Linux
  • spotify (dart) - A dart library for interfacing with the Spotify API
  • just_audio - A feature-rich cross-platform audio player for Flutter that supports network audio streams too
  • libwinmedia - A cross-platform media playback library for C/C++ with good number of features (only Windows & Linux)
  • youtube_explode_dart - YoutubeExplode is a library that provides an interface to query metadata of YouTube videos, playlists and channels, as well as to resolve and download video streams and closed caption tracks
  • infinite_scroll_pagination - Flutter package to help you lazily load and display pages of items as the user scrolls down your screen
  • bitsdojo_window - A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux
  • hotkey_manager - A flutter plugin that allow Flutter desktop apps to defines system/inapp wide hotkey
  • Inno Setup - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan

Social handlers

Follow me on Twitter for newer updates about this application

ยฉ 2022 Spotube

spotube's People

Contributors

karniv00l avatar krtirtho avatar thatonecalculator avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.