Giter VIP home page Giter VIP logo

spotijack's Introduction

Spotijack

Spotijack is a macOS application that automates recording songs playing in Spotify using Audio Hijack Pro. When Spotify changes track, Spotijack starts a new recording in Audio Hijack Pro and updates the recording metadata.

screenshot

Piracy

This is a fun side-project I made which I've used to develop my skills (AppleScript, some advanced Objective-C and Swift, unit testing). I've published it to showcase my development skills. I'm assuming nobody's going to actually use Spotijack because there are far more efficient ways of getting music. I'm not publishing binaries to discourage people from using Spotijack.

Requirements

Spotijack requires macOS 10.10 or later. You need a licensed copy of Audio Hijack Pro (version 2, not 3) and any recent version of Spotify. You (probably) need a premium Spotify account since Spotijack makes no attempt to distinguish between adverts and songs.

Spotijack has only been tested using the instant-on plugin for Audio Hijack Pro. If you're on macOS 10.12 or later, you'll also need a copy of Audio Hijack 3 to get the plugin.

Usage

On first launch, Spotijack will handle creating a recording session in Audio Hijack Pro as well as setting up Audio Hijack Pro and Spotify for scripting. All you need to do is start playing a song in Spotify and hit the record button.

Building

Spotijack uses Carthage to manage dependencies. Once they're set up, it should build cleanly using Xcode 9.

Implementation

Spotijack is the perfect example of an overengineered side project. Spotijack is split into two parts, the GUI application Spotijack and the library LibSpotijack.

LibSpotijack contains the core recording and application management logic. It features a suite of unit tests (unit, not integration!) and, in theory, can be used in other applications. Spotijack is really just a GUI wrapper around LibSpotijack.

LibSpotijack doesn't do anything fancy to track recordings. It communicates with Spotify and Audio Hijack Pro using the ScriptingBridge framework which is so much fun to work with in Swift (or Objective-C for that matter). LibSpotijack just polls Spotify to see if the current track has changed and if it has, it starts a new recording in Audio Hijack Pro. Nothing fancy.

Old Versions

Originally Spotijack was just a simple AppleScript I wrote one afternoon. Over the years however, I've rewritten Spotijack as a native Cocoa application using the ScriptingBridge framework.

I have included the original AppleScript versions in the Legacy directory. There's a changelog available in the changelog.md file. It's pretty sparse since I didn't consider releasing this until 2015.

License

Spotijack is licensed under the MIT license.

spotijack's People

Contributors

alexjohnj avatar

Watchers

Jimmy Yen 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.