Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We've noticed that our Podcasts, when being streamed through iTunes, are unable to "seek" properly. Any time you click on the timeline, it restarts from the beginning.

I'm pretty sure we're delivering partial-content properly. Here are the response headers:

$ curl --head -H "Range: bytes=5708077-" http://site.com/podcast.mp3
HTTP/1.1 206 Partial Content
Server: nginx/1.2.0
Date: Mon, 19 Nov 2012 06:13:05 GMT
Content-Type: audio/mpeg
Content-Length: 13403738
Connection: keep-alive
X-Powered-By: Express
Cache-Control: no-cache
Accept-Ranges: bytes
Content-Range: bytes 5708077-19111814/19111815
Access-Control-Allow-Origin: *

Does this look right? Is there something I'm missing that could be causing this issue?

Let me know if more information is needed. Thanks!

share|improve this question

closed as off topic by Michael Hampton, mdpc, Magellan, John Gardeniers, MadHatter Nov 20 '12 at 7:27

Questions on Server Fault are expected to relate to professional server, networking, or related infrastructure administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer 1

The issue was that, while we were returning the proper headers, we still weren't actually delivering the requested byte range. The correct way to deliver the correct byte range with a node application (which is delivering the podcast audio) is by adding the "start" and "end" options to the Readable Stream object:

fs.createReadStream("podcast.mp3", { start: 0, end: 999 });
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.