Giter Site home page Giter Site logo

floofies / nubango Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 0.0 3.36 MB

Nubango is an iTunes-compatible Kerbango Tuning Service (KTS) server/proxy.

Home Page: https://macintoshgarden.org/apps/garden-itunes-nubango-radio-patch

License: MIT License

HTML 99.25% Shell 0.28% JavaScript 0.47%
itunes-radio apple itunes hack apache mac-os-x kerbango internet-radio internet-radio-stations server

nubango's Introduction

Nubango

Nubango is an iTunes-compatible Kerbango Tuning Service (KTS) server/proxy. Nubango is really just one CGI script and some static XML files.

Old iTunes versions like iTunes 8 and below are no longer able to download internet radio station listings from Apple's KTS server. Such old iTunes versions are using bad query strings in their HTTP requests. To get things working again, iTunes can be made to communicate with Nubango instead of Kerbango.

Patched iTunes Applications

Pre-patched iTunes apps are now available on the Macintosh Garden!

To get iTunes to load radio stations from Nubango, we must redirect iTunes' HTTP requests to a Nubango server. patcher.sh does a simple string replacement on a iTunes binary executable, replacing all instances of pri.kts-af.net with pri.kts-af.org (which is our dedicated Nubango server). Running the patcher in Terminal will present an "Open File" dialog in which you will be asked to select an iTunes application for patching. The old application binary is stored within iTunes.app/Contents/MacOS/iTunes.old, just in case you would like to undo the hack later.

🚧 Project Status Disclaimer: Experimental

⚠️ "Experimental" means two things: Here be dragons Nubango may cause damage to your system if you attempt to use it, because at-present it is mostly untested.

We need your help to improve Nubango for everyone. Please present requests and report any problems by creating a new GitHub issue!

How to Self-Host Nubango

For experienced users only. You risk damaging your system. Please read the included MIT "LICENSE" document.

Self-hosting with Apache on Linux

Tested on Ubuntu 20.04.2

  1. Install Apache 2:
sudo apt-get update && sudo apt install apache2
  1. Copy the entire included xml directory into the webroot (most likely at) /var/www/html
  2. Enable the rewrite & cgi Apache modules:
sudo a2enmod rewrite cgi
  1. Add this RewriteRule to the the site file (Just before the line </VirtualHost>) at /etc/apache2/sites-enabled/000-default.config:
RewriteEngine On
RewriteRule "^/xml/index\.xml$" "/cgi-bin/streamingRadioStations.sh" [H=cgi-script,PT]
  1. Copy the included CGI script from cgi-bin/streamingRadioStations.sh into the directory at /usr/lib/cgi-bin
  2. Make the file at /usr/lib/cgi-bin/streamingRadioStations.sh executable:
chmod +x /usr/lib/cgi-bin/streamingRadioStations.sh
  1. Start Apache 2:
sudo apachectl start
  1. Open http://127.0.0.1 and http://127.0.0.1/xml/index.xml in a web browser to ensure that the HTTP server is working properly.

Self-hosting with Apache on Mac OS X 10.4:

Apache is included and pre-configured with Mac OS X 10.4

  1. Copy the entire included xml directory into the webroot at /Library/WebServer/Documents
  2. Add this RewriteRule to the bottom of the file at /etc/httpd/httpd.conf:
RewriteRule "^/xml/index\.xml$" "/cgi-bin/streamingRadioStations.sh" [PT]
  1. Copy the included CGI script from cgi-bin/streamingRadioStations.sh into the directory at /Library/WebServer/CGI-Executables
  2. Make the file at /Library/WebServer/CGI-Executables/streamingRadioStations.sh executable:
chmod +x /Library/WebServer/CGI-Executables/streamingRadioStations.sh
  1. Ensure that "Personal Web Sharing" is enabled in System Preferences > Internet & Network > Services > Sharing
  2. Open http://127.0.0.1 and http://127.0.0.1/xml/index.xml in a web browser to ensure that the HTTP server is working properly.

Editing your hosts file for self-hosting:

To get your iTunes to communicate with your self-hosted Nubango server, you can perform a DNS hack instead of patching.

You can easily replace any of the below IP addresses with the one pointing to your Nubango server.

For Mac OS X: Add to the bottom of /etc/hosts:

127.0.0.1 pri.kts-af.net
::1 pri.kts-af.net

For Mac OS 9: Add to the bottom of /System Folder/Preferences/Hosts:

pri.kts-af.net IN A 127.0.0.1
pri.kts-af.net IN AAAA ::1

nubango's People

Contributors

floofies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nubango's Issues

Text encoding is not specified in responses

The encoding of the responses is not specified, which means that the text is treated as ISO 8859-1 rather than Unicode.

This causes problems with stations which use Unicode characters in their names; the most obvious example is €njoy 80's, which happens to be the first item in the 80s Flashback section. It should have that Euro symbol at the start, but instead it comes through mangled like â�¬njoy 80's in iTunes.

<kb:station>€njoy 80's</kb:station>

This behaviour should be fixed by updating this line of the CGI script:

Content-Type: application/xml

to read:

Content-Type: application/xml; charset=UTF-8

I don't currently have a Nubango server of my own set up to test this with, or I'd have pushed up a PR for this.

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.