{"id":26770710,"url":"https://github.com/alexjohnj/spotijack","last_synced_at":"2025-07-15T07:38:18.960Z","repository":{"id":34203371,"uuid":"38059588","full_name":"alexjohnj/spotijack","owner":"alexjohnj","description":"A Mac utility for recording songs in Spotify","archived":false,"fork":false,"pushed_at":"2020-07-29T08:27:55.000Z","size":1109,"stargazers_count":31,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-04T02:27:39.814Z","etag":null,"topics":["applescript","spotify"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexjohnj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-25T16:05:14.000Z","updated_at":"2023-10-24T05:41:55.000Z","dependencies_parsed_at":"2022-09-04T11:10:30.845Z","dependency_job_id":null,"html_url":"https://github.com/alexjohnj/spotijack","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/alexjohnj/spotijack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2Fspotijack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2Fspotijack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2Fspotijack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2Fspotijack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexjohnj","download_url":"https://codeload.github.com/alexjohnj/spotijack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexjohnj%2Fspotijack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265418489,"owners_count":23761819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["applescript","spotify"],"created_at":"2025-03-28T23:16:21.160Z","updated_at":"2025-07-15T07:38:18.663Z","avatar_url":"https://github.com/alexjohnj.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spotijack\n\n\u003e ⚠️ Spotijack will not work on macOS 10.15 (Catalina) because Audio Hijack Pro\n\u003e no longer runs. There is an experimental build [on this\n\u003e branch][recording-experiment-branch] that removes the need for Audio Hijack\n\u003e Pro.\n\n[recording-experiment-branch]: https://github.com/alexjohnj/spotijack/tree/exp/recording\n\nSpotijack is a macOS application that automates recording songs playing in\nSpotify using [Audio Hijack Pro][audio-hijack-pro]. When Spotify changes track,\nSpotijack starts a new recording in Audio Hijack Pro and updates the recording\nmetadata.\n\n[audio-hijack-pro]: http://rogueamoeba.com/legacy/\n\n![screenshot](scrot.png)\n\n## Piracy\n\nThis is a fun side-project I made which I've used to develop my skills\n(AppleScript, some advanced Objective-C and Swift, unit testing). I've published\nit to showcase my development skills. I'm assuming nobody's going to actually\nuse Spotijack because there are _far_ more efficient ways of getting music. I'm\nnot publishing binaries to discourage people from using Spotijack.\n\n## Requirements\n\nSpotijack requires macOS 10.14. You need a licensed copy of Audio Hijack Pro\n(version 2, not 3) and any recent version of Spotify. You (probably) need a\npremium Spotify account since Spotijack makes no attempt to distinguish between\nadverts and songs.\n\nSpotijack has only been tested using the instant-on plugin for Audio Hijack\nPro. You'll _also_ need a copy of Audio Hijack 3 to get the plugin.\n\n## Usage\n\nOn first launch, Spotijack will handle creating a recording session in Audio\nHijack Pro as well as setting up Audio Hijack Pro and Spotify for scripting.\nAll you need to do is start playing a song in Spotify and hit the record button.\n\n## Building\n\nSpotijack uses Carthage to manage dependencies. Once they're set up, it should\nbuild cleanly using Xcode 10. You should do a release build because the\noptimisations provide a nice reduction in CPU usage.\n\n## Implementation\n\nSpotijack is the perfect example of an over engineered side project. Spotijack\nis split into two parts, the GUI application _Spotijack_ and the library\n_LibSpotijack_.\n\n_LibSpotijack_ contains the core recording and application management logic. It\nfeatures a suite of unit tests (unit, not integration!) and, in theory, can be\nused in other applications. _Spotijack_ is really just a GUI wrapper around\n_LibSpotijack_.\n\n_LibSpotijack_ doesn't do anything fancy to track recordings. It communicates\nwith Spotify and Audio Hijack Pro using the [ScriptingBridge\nframework][scriptingbridge-framework-link] which is _so_ much fun to work with\nin Swift (or Objective-C for that matter). _LibSpotijack_ just polls Spotify to\nsee if the current track has changed and if it has, it starts a new recording in\nAudio Hijack Pro. Nothing fancy.\n\n[scriptingbridge-framework-link]: https://developer.apple.com/library/mac/documentation/ScriptingAutomation/Reference/ScriptingBridgeFramework/\n\n## Old Versions\n\nOriginally Spotijack was just a simple AppleScript I wrote one afternoon. Over\nthe years however, I've rewritten Spotijack as a native Cocoa application using\nthe [ScriptingBridge][scriptingbridge-framework-link] framework.\n\nI have included the original AppleScript versions in the `Legacy` directory.\nThere's a changelog available in the `changelog.md` file. It's pretty sparse\nsince I didn't consider releasing this until 2015.\n\n## License\n\nSpotijack is licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjohnj%2Fspotijack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexjohnj%2Fspotijack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjohnj%2Fspotijack/lists"}