freecloudproxy logo

Free Cloud Proxy - music in your browser

Introduction

What do images and music have in common ? Both can be stored as digital data. Free Cloud Proxy can convert music to images and images to music. There are many image hosting websites that do not require registration and are free of charge (current status 2015). Free Cloud Proxy enables you to store your music at image hosting services in the Internet for free. That's the reason for the name "Free Cloud Proxy".

Demo

The demo loads an example song that is stored in images. The images are converted to music with Javascript and loaded into your web browser as HTML5 audio element. Tested with Firefox. Other browsers may work as well.

All demos contain the same song. The only difference are the servers that deliver the images with different bandwidth and speed. If a timeout occurs try loading the page again. If that does not help try the demo with the Greasemonkey script below on this page.

Supported Browsers

Tested and supported browsers. Other browsers may work as well.

To suppress the ads at Anonymouse.org you can install the Firefox add-on Adblock Edge.

Demo with Greasemonkey script

The Greasemonkey script freecloudproxy.user.js can be used to bypass the so-called "same origin policy" of the web browser Firefox. It can load images from different image hosts (with different domains). With the Greasemonkey script the "Free Cloud Proxy" works independent of the Anonymouse.org website that is used in the demos above to bypass the "same origin policy". Anonymouse has a limit of 2 MB for each file. The Greasemonkey script works without this size restriction and can download the images or music faster than Anonymouse. Since the same origin policy is bypassed the user is responsible for the security. Please take a look at the links that are loaded and displayed by the script. If these links point to JPG images then press "OK".

Security

As mentioned above Greasemonkey can bypass the same origin policy of the web browser. Together with the list of links that are provided by unknown people this can be a security problem. For example an evil person could put a malicious link into the download list, for example: http://internal-network-router/?action=disableFirewall Since the script freecloudproxy.user.js cannot decide which link is evil and which URL links to a JPG image, the user has to decide and click "OK" or "Cancel".

Supported Browsers

The Greasemonkey script was tested with the Firefox web browser only. For the <audio>-element to work enter about:config in the address bar and check that media.gstreamer.enabled is set to true (which is the default value).

How Free Cloud Proxy works

In your web browser you just see that a music file is being loaded. Here is what happens in the background:

sequence diagram for freecloudproxy with anonymouse as proxy

The proxy Anonymouse.org is used only because of the same origin policy of the web browser. This means that once you loaded a website with Javascript from the domain Anonymouse.org you have to load all other files from the same domain when you use Javascript. An example link of this complete construct looks like this:

http://anonymouse.org/cgi-bin/anon-www.cgi/http://freecloudproxy.sourceforge.net/javascript_proxy.html?p=http://freecloudproxy.sourceforge.net/demons.pichost.txt

  1. In the first step, the web page with the Javascript is loaded - this is the "Free Cloud Proxy" script javascript_proxy.html. It is hosted at sourceforge.net
  2. In the second step, the script loads a text file that is passed to the script in the URL after the "?p=". This text file contains links to images, the file name and the SHA1 checksum of the song and some additional information for example the license. An example of this text file with the linked images looks like this:
    // example of a text file with links to images
    
    // links to the images
    l=http://cdn.rawgit.com/bobby-flitter/freecloudproxy/master/image000.jpg
    l=http://cdn.rawgit.com/bobby-flitter/freecloudproxy/master/image001.jpg
    l=http://cdn.rawgit.com/bobby-flitter/freecloudproxy/master/image002.jpg
    l=http://cdn.rawgit.com/bobby-flitter/freecloudproxy/master/image003.jpg
    
    // the file name of the song
    f=cdk - Demons.mp3
    
    // SHA1 checksum
    c=44f72c32aef3b022fce6bbac076e8c98c16630b3
    
    // additional information
    a=License:\nCreative Commons by Attribution 3.0\nhttp://creativecommons.org/licenses/by/3.0/
    
    The text file can be stored at pastebin.ca for example. You need to use the mode "raw" when you just want to see the text file - e.g. http://pastebin.ca/raw/2968608.
  3. In the third step, the linked images are loaded from the image host. There are several image hosting websites that do not require registration and are free of charge e.g. chuantu.biz (a Chinese website).
  4. In the fourth and final step, the images are converted to a music file and a music player is added to the web page (HTML5 <audio>-element).

The version with the Greasemonkey script

The sequence diagram of the Greasemonkey script is a bit smaller than the diagram with the proxy.

sequence diagram for freecloudproxy with greasemonkey

Since Greasemonkey can load files from different domains the proxy is not necessary in this concept. But the user is now responsible to check that the links contain valid image URLs and no malicious links. That's the reason why you need to click "OK" after the text file is loaded and the links were checked.

How to create the images from a music file

# on a Linux system:

wget http://freecloudproxy.sourceforge.net/fileToImages.sh
chmod 755 fileToImages.sh
./fileToImages.sh cdk_-_Demons.mp3

# creates a directory with images and the link file:
cd parts.cdk_-_Demons.mp3/

or for other operating systems:

# on other system with ruby - download fileToImagesConverter.rb:

wget http://freecloudproxy.sourceforge.net/fileToImagesConverter.rb

ruby fileToImagesConverter.rb cdk_-_Demons.mp3

# creates a directory with images and the link file:
cd parts.cdk_-_Demons.mp3/

Upload the generated images to an image hosting service. Add the upload links to the file linkfile.txt. Upload the contents of the linkfile.txt to a paste site. Finally you need to assemble the download link as described above.

Outlook

As always, there is room for improvement. Some ideas:

Free Cloud Provider (current state of April 2015)

Examples of free image hosting services:

Many text storage services use CAPTCHAs these days in order to avoid spam. An alternative would be to store the text with the image links also in an image. Examples of free text hosting services:

retunoc