2

Public Soundcloud track urls force a download upon browsing to them by utilizing a Content-Disposition header (I think.. ) which triggers a download for a known mime-type. Is there a way to proxy (create a passthrough for) these urls and strip this header from my request. I want to avoid serving the mp3 myself but I don't want to trigger a download.

Matty H
  • 325
  • 4
  • 11
  • this question http://stackoverflow.com/questions/2681338/django-serving-a-download-in-a-generic-view shows the header I am assuming is being served (or something similar). – Matty H Feb 16 '11 at 09:11

2 Answers2

2

Technically it is entirely possible that you could request the file from the server and connect that incoming data to an output stream response in your view, thereby allowing you to control the headers that your client's browser receives so that it does not ask them to save the file.

I'm going to recommend against this though for a couple of reasons.

  1. You mentioned you didn't want to serve the files yourself. Technically you are serving the file in this case, you just aren't storing it.
  2. This can be fairly expensive resource wise. Especially network bandwidth. Every mp3 file you share with your user is going to be a sort of double-ding for you. You are going to be both downloading and uploading that entire file, every time. You could cache the mp3 file once it's been requested, but then you aren't just serving the file, you're storing it as well.
  3. The file source likely does not want you to do this and could send you a cease and desist letter if they catch wind of it. If they provide a mechanism for you to share their media on your site, they usually have Terms and Conditions that you cannot circumvent that.
apiguy
  • 5,282
  • 1
  • 23
  • 24
0

I don't think it's possible. It should already be entirely up to the browser. For example Opera asks user weather to open it or download.

You could embed them in your site using their Embeded Code.

EDIT: Nope you can't even use the link provided by the header since they've worked around hotlinking. Each download is associated to the browser/session so you can't store the real url for the mp3 and link to that.

Maiku Mori
  • 7,419
  • 2
  • 40
  • 52
  • Thanks for confirming that, I will clarify my question to directly include the info that my comment pointed to – Matty H Feb 17 '11 at 23:28
  • @Matty if it's just for you, you could try to write a browser addon for that, but it wouldn't be easy. As for proxying/removing, you can't as I said the link changes. Even if you requested the mp3 on your server and harvested the link from that header and then gave that link to your user it wouldn't work because he would have different IP and/or browser session. If you want to serve them on your website your best bet is using the embed code. Or you could contact their support. – Maiku Mori Feb 18 '11 at 08:06