{"id":16151510,"url":"https://github.com/0xf4b1/traktor-streaming-proxy","last_synced_at":"2025-03-16T09:33:39.796Z","repository":{"id":166206152,"uuid":"641667717","full_name":"0xf4b1/traktor-streaming-proxy","owner":"0xf4b1","description":"Allow Traktor DJ to stream music from YouTube, Spotify, and Tidal by faking Beatport's API","archived":false,"fork":false,"pushed_at":"2024-10-25T15:03:04.000Z","size":216,"stargazers_count":62,"open_issues_count":5,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-16T01:23:12.297Z","etag":null,"topics":["beatport","dj","pro","spotify","streaming","tidal","traktor","traktor-pro","youtube"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/0xf4b1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-16T23:24:50.000Z","updated_at":"2025-03-10T23:55:54.000Z","dependencies_parsed_at":"2024-02-26T23:30:01.039Z","dependency_job_id":"6ccf717a-4e01-4c83-b0d3-e1f69ea91bb8","html_url":"https://github.com/0xf4b1/traktor-streaming-proxy","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Ftraktor-streaming-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Ftraktor-streaming-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Ftraktor-streaming-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Ftraktor-streaming-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xf4b1","download_url":"https://codeload.github.com/0xf4b1/traktor-streaming-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852432,"owners_count":20358268,"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":["beatport","dj","pro","spotify","streaming","tidal","traktor","traktor-pro","youtube"],"created_at":"2024-10-10T00:57:22.723Z","updated_at":"2025-03-16T09:33:39.485Z","avatar_url":"https://github.com/0xf4b1.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# traktor-streaming-proxy\nAllow Traktor DJ to stream music from YouTube, Spotify, and Tidal by faking Beatport's API\n\n\u003cimg src=\"screenshot.png\" align=\"right\" width=\"250\"\u003e\u003c/a\u003e\n\nTraktor DJ supports streaming of music tracks, but only from the Beatport and Beatsource services.\nThis project aims to integrate other streaming sources into Traktor DJ via Beatport Streaming.\nIt consists of an API server based on ktor which fakes some relevant parts of the Beatport API to serve custom content.\n\nCurrently, it supports YouTube Music (via NewPipe), Spotify, and Tidal with support for searching for music and browsing saved tracks and playlists.\nIn theory other streaming services or self-hosted sources will be possible to integrate as long as they serve music files in mp4a audio format, since Traktor refuses to load other formats (even though these formats are supported for local files).\nAs a workaround, an on-the-fly format conversion of the music files should be possible at some cost in quality and time.\n\nAs with Beatport streaming, Traktor does not allow to use the build-in recorder.\n\nThe project now contains a fully crafted Beatport license file that allows the server to handle linking and authentication, with enabling all features such as track analysis and simultaneous playback of multiple decks. You no longer need to take care of the license file or have a Beatport account with subscription! :)\n\nPlease note this project and the setup instructions are only tested on macOS. While it is possible to set it up on Windows in a similar way, Traktor on Windows uses different client certificates and does not work with the license file in this project (but there is a trick to get it working https://github.com/0xf4b1/traktor-streaming-proxy/issues/13#issuecomment-1742184706).\n\n## Setup\n\n1. Get the latest [release](https://github.com/0xf4b1/traktor-streaming-proxy/releases) and unzip.\n\n2. Configure the server by adjusting the `config.properties` file. Both Spotify and Tidal sources require an account.\n\n3. (Optional) Install ffmpeg on your system if you want to use the spotify source.\n\n4. SSL trust\n\nRecent versions of Traktor do not trust the generated certificate and refuse to connect to the server. The certificate verification can be bypassed by preloading a small stub library that lets the respective function always pass to effectively disable the check.\n\nYou need to create a code signing certificate in Keychain Access -\u003e Certificate Assistant -\u003e Create a certificate ...\n\nEnter a name, e.g. \"code\", and choose Certificate Type: Code Signing and click Create.\n\nAfterwards resign the Traktor binary with the following command:\n\n```\nsudo codesign --force --sign \"code\" \"/Applications/Native Instruments/Traktor Pro 3/Traktor.app/Contents/MacOS/Traktor\"\n```\n\nThen either get the prebuilt stub `SecTrustEvaluateStub.dylib` from [releases](https://github.com/0xf4b1/traktor-streaming-proxy/releases) or build it yourself:\n\n```\ncd cert\nmake\n```\n\n5. Run the server from the directory where the config.properties file is located\n\n```\nbin/traktor-streaming-proxy\n```\n\n6. Redirect ports 80 -\u003e 8080 and 443 -\u003e 8443\n\n```\nsudo pfctl -f pf.conf\nsudo pfctl -e\n```\n\n7. Redirect `api.beatport.com` to the server by adding the following to `/private/etc/hosts` on macOS\n\n```\n127.0.0.1   api.beatport.com\n```\n\n8. Run Traktor with the following command\n\n```\nDYLD_INSERT_LIBRARIES=./SecTrustEvaluateStub.dylib \"/Applications/Native Instruments/Traktor Pro 3/Traktor.app/Contents/MacOS/Traktor\"\n```\n\nIf you are not yet linked with the server, open settings and connect to Beatport streaming. You should receive an immediate redirect which connects Traktor.\n\n9. Done! If you navigate to Beatport Streaming, you should be able to browse through the predefined categories and use the search box to find content.\n\n## Library Mapping\n\nBeatport Streaming has the following predefined categories, which we try to match to our available sources in the best possible way.\nThe genres are identical in each category, which is why we use them to differentiate between the sources.\n\n```\nCurated Playlists\n- \u003cGenres\u003e         --\u003e source\n - \u003cPlaylists\u003e     --\u003e followed artists\n  - \u003cTracks\u003e       --\u003e tracks from artist\nGenres\n- \u003cGenres\u003e         --\u003e source\n - \u003cTracks\u003e        --\u003e saved/liked tracks in source\nPlaylists\n- \u003cPlaylists\u003e      --\u003e playlists (all sources merged)\n - \u003cTracks\u003e        --\u003e tracks from playlist\nTop 100\n- \u003cGenres\u003e         --\u003e source\n - \u003cTracks\u003e        --\u003e generated playlist of new released tracks\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xf4b1%2Ftraktor-streaming-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xf4b1%2Ftraktor-streaming-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xf4b1%2Ftraktor-streaming-proxy/lists"}