4 ms·
As far as I can tell, it's written with PHP serverside, Javascript (jQuery JMVC) and HTML/CSS. The actual music player is a hidden flash widget, but the song se
by codejoust 16y ago
As far as I can tell, it's written with PHP serverside, Javascript (jQuery JMVC) and HTML/CSS. The actual music player is a hidden flash widget, but the song selection, playback, and entire interface is in HTML/CSS not Adobe flash as previously. (And the adobe flash version had horrible performance on linux).
- deleted 16y ago[deleted]
- codejoust 16y agoI just looked at the code - I'm pretty sure grooveshark is calling a flash object through javascript to play the music.
- zmitri 16y agoIts probably something similar to SoundManager2, which you can learn more about here: http://www.schillmania.com/projects/soundmanager2/ http://www.schillmania.com/projects/soundmanager2/ I've used it in a project of mine which allows you to upload and control your music library like iTunes using an html/js interface.
- cowpewter 16y agoIt's an in-house player. I'm the author. We have a fairly complicated streaming setup, so it's written specifically to work with our internal API.
- nextparadigms 16y agoCan you replace it with HTML/JS too and remove all dependency on Flash? I'm not an iPad owner, but I'm thinking it wouldn't hurt if iPad owners would use your site from the iPad, too.
- dekz 16y agoI believe they send encrypted audio through the flash player? That might be the reason they have kept it through all revisions.
- dtwwtd 16y agoI would assume that this is the reason. This is one of the major limitations of the HTML5 + Javascript stack, and one that will have to be solved before we see even more widespread use on services like Hulu or Netflix.
- ligerhearted 16y agoWireshark doesn't say it's encrypted.
- dekz 16y agoIt might not say it is encrypted, but I doubt the publishers/who ever they have deals with to stay legal would allow them to transfer copyrighted materials in the clear.
- cowpewter 16y agoPerhaps eventually. It's something we've looked into, but we have some content security concerns. Obviously it's not impossible to rip our content with flash streaming, but it is more difficult than something that can be written with an <audio> tag. Someone could easily steal my car's stereo even if I lock the doors, by using a slim jim/lockpick (downloader tool) or smashing my window (rip audio straight from the sound card). There's no way to 100% stop determined people from stealing my stereo, just like there's no 100% way to stop determined people from ripping our content. But that doesn't mean I leave my car unlocked. Also right now we use the flash piece as a proxy for making service calls that would be otherwise significantly more difficult/impossible through javascript's crossdomain restrictions.
- joakin 16y agoCould you at least make the flash object visible somewhere so that we could un-Flashblock it? (Anyway we can always whitelist in each computer we use it, but it would be nice)
- naner 16y agoAre you using Chrome w/ Flash bundled? Because this doesn't work without Flash.
- mynameisraj 16y agoMy bad. It does require Flash.
- cowpewter 16y agoHi, I'm one of the developers. You are correct. We have a PHP backend, actually the same one that we were using with the flash frontend, and are using jQuery with JMVC, and slickgrid for the huge lists of things. The invisible flash widget provides both music playback and serves as a proxy for getting around some of javascript's crossdomain restrictions (like the fact that you can't make https ajax requests on a page served on http) and talking to third-party services like facebook and last.fm which have perfectly nice crossdomain.xml files. Feel free to ask me any questions, though I don't know details on a lot of the deep workings of the backend - I'm an Actionscript/Javascript dev. Oh and thank you so much for not submitting this as 'Grooveshark switches to HTML5'!! Because it's not. We're not doing anything you couldn't do years ago, except maybe that JS performance wouldn't have been fast enough for such a heavy app.
- codejoust 16y agoNo Problem. I think seen the widget before on make your own player page (which I've used because the old flash frontend was so very unstable on linux). And - the switches to HTML5 part - I would only post that if you somehow worked out how to use the html5 <audio> tag, but that has many drawbacks. Thanks so much for the work on the frontend - It's one of the few online music streaming services now that is decently fast and doesn't eat resources on linux.
- cowpewter 16y agoIt's not the exact same widget, but it does use the same classes. All our flash playback, in the old flash app, the new invisible player, the even tinier invisible player on the widgets.grooveshark.com page, and the actual widgets on said page are compiled with the same core playback classes.
- invisible 16y agoI had actually just assumed this was all HTML (and thus HTML5) because of the previous html.grooveshark.com subdomain. Doh! Great job and thank you for the great work!
- gawker 16y ago