views:

27

answers:

1

I've been thinking a lot lately about how cool it would be to have a website that allows a user to insert a disc into their drive and click a button to begin a ripping process. After the rip is complete, it would upload to a server and be hosted there. Ideally, the process would be seamless for both DVDs and CDs and work cross platform.

My question is for the developers here - what recommendations do you have on approaching this situation? Does it seem feasible? Is it something that would require a flex app, java? Can the user get away with doing this in their browser only, without having to download any software? I'd also like to make sure that if the upload disconnects during the uploading process, the user can log back in and resume the upload where it failed.

I found some software that kind of achieves what I'm looking to do, but it is downloaded and is windows only as it relies on some .dll files to complete the process. I can show you this software if it would help?

For the record, the DVDs and CDs uploaded would need to be legally owned and the uploader must have the copyright, so don't think I'm getting into any infringement or illegality issues.

Thanks for the insight!

+1  A: 

Browsers are not the best way to upload ISOs of CD/DVD. Basically, it's like asking a user to rip the CD with UltraISO and "manually" upload the file in a Web Form.

The only way to achieve your result is definitely to create an executable application, and/or a Java/.NET applet (I don't remember if/how Mono supports .NET controls on Firefox). But the executable is the basic way. You must then use a portable framework like Java or .NET/Mono which work on Windows, Mac and Linux.

In order to avoid dependencies, you must also ship the package with all the ISO-ripping libraries needed. I don't think there is a single managed-code library to rip CDs, so you need some OS help. You program should differentiate between OSes: in Linux and Mac, use dd (lots of tutorials), in Windows use NeroAPI or an open source ripper.

Once the ISO is created on a temp folder, just open it as a stream and upload via socket. I suggest not to use HTTP but FTP instead, then!

A 1-click solution is feasible, but forget the browser

djechelon
Because I don't know a lot about the ideal process, can you describe why the browser shouldn't be used if the app is just natively ran inside of it? I understand the http/ftp process and the dependencies, but is it not possible to call the correct dependency from the online app and connect to the local machine without having to download software - just provide access? I'm basically hoping to have the same seamless process that a downloadable app would provide, only without requiring the user to take that extra step.
Dave Kiss
All browsers run in a very **protected** environment with very low OS privileges. For example, IE allows JavaScript only to read files that **you** chose in an open file dialog box. You can't execute arbitrary code from Javascript. Ripping a CD need access to lower-level (I said "lower", not "low[est]") calls since you need to read a block device, or to run a shell command like in the Linux case. These are all the things that browser makers want not to occur, because viruses and trojans spread this way too. In a few words, you need **privileges** to perform the rip, and browsers don't have 'em
djechelon
What do you mean by "app is just jatively ran inside of it"? Developing an ActiveX control?
djechelon
I don't know much about what privileges browsers have and what is reasonable to give them, but I do know ActiveX isn't a trusted and safe method of doing so. I was just ideally supposing that the user could allow access somehow... but am I just running in a circle? Is the only way for a user to allow access to their local machine by using ActiveX? I just feel like there should be a way that a flex app or java app running inside of a browser could access drive contents, then use the dependencies that are hosted on the site to rip the disc and upload appropriately.
Dave Kiss
Flex and Java run unprivileged too. Actually, Flex runs voer Java. Believe me, what you want to do is unfeasible via browser. Better ask the user to download a program and run it, but I believe that in Linux and Mac you **must** be root to perform a rip (well I don't just believe, I'm pretty sure)
djechelon
Cool - thanks for your input!
Dave Kiss
Your project looks promising. Hope to read news soon ;) Oh, by the way, if you liked my answer could you accept it? I'm new here, and I need some rep. Thank you
djechelon
For sure man - I'm going to leave it open just to see if I get any more responses, but if this is the extent of it I will gladly accept. Interested in getting involved?
Dave Kiss
Maybe... I'm a C#/Mono professional
djechelon
How can I contact you?
Dave Kiss
djechelon
Thanks, strange, never noticed that SO doesn't have messaging... hopefully it isn't against TOS
Dave Kiss