Note that there are some explanatory texts on larger screens.

plurals
  1. POHow does iTunes block my non-Apple device?
    primarykey
    data
    text
    <p>I'm trying to load the following resource from a non-Apple device:</p> <p><a href="http://a1285.phobos.apple.com/us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a" rel="nofollow">http://a1285.phobos.apple.com/us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a</a></p> <p>The URL was served by the iTunes Search API. It plays fine from an iPhone browser but my Linux Chrome browser gets a 403 Forbidden response.</p> <p>I tried to spoof the User-Agent header with Curl:</p> <p><code>curl -v -A 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16' http://a1285.phobos.apple.com/us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a</code></p> <p>But I still get 403 Forbidden. This file plays just fine from an iPhone browser. How does Apple know to block my device without looking at the User-Agent header?</p> <p><strong>Edit:</strong></p> <p>Here's the curl output from a machine that can load the resource:</p> <pre><code>curl -vI http://a1285.phobos.apple.com/us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a * About to connect() to a1285.phobos.apple.com port 80 (#0) * Trying 23.67.251.59... connected * Connected to a1285.phobos.apple.com (23.67.251.59) port 80 (#0) &gt; HEAD /us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a HTTP/1.1 &gt; User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 &gt; Host: a1285.phobos.apple.com &gt; Accept: */* &gt; &lt; HTTP/1.1 200 OK HTTP/1.1 200 OK &lt; Server: Apache Server: Apache &lt; Last-Modified: Wed, 12 Sep 2012 07:32:54 GMT Last-Modified: Wed, 12 Sep 2012 07:32:54 GMT &lt; ETag: "ff7b1-4c97c32e92716" ETag: "ff7b1-4c97c32e92716" &lt; Accept-Ranges: bytes Accept-Ranges: bytes &lt; Content-Length: 1046449 Content-Length: 1046449 &lt; X-Server: nk11p00it-web038 X-Server: nk11p00it-web038 &lt; Date: Sun, 21 Jul 2013 07:50:18 GMT Date: Sun, 21 Jul 2013 07:50:18 GMT &lt; Connection: keep-alive Connection: keep-alive &lt; Content-Type: audio/mp4 Content-Type: audio/mp4 &lt; * Connection #0 to host a1285.phobos.apple.com left intact * Closing connection #0 </code></pre> <p>Here's the curl output from my machine which cannot load the resouce:</p> <pre><code>curl -vI http://a1285.phobos.apple.com/us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a * About to connect() to a1285.phobos.apple.com port 80 (#0) * Trying 124.40.233.83... * connected * Connected to a1285.phobos.apple.com (124.40.233.83) port 80 (#0) &gt; HEAD /us/r30/Music/e2/62/81/mzm.fiyyuoea.aac.p.m4a HTTP/1.1 &gt; User-Agent: curl/7.27.0 &gt; Host: a1285.phobos.apple.com &gt; Accept: */* &gt; * additional stuff not fine transfer.c:1037: 0 0 * HTTP 1.1 or later with persistent connection, pipelining supported &lt; HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden &lt; Server: AkamaiGHost Server: AkamaiGHost &lt; Mime-Version: 1.0 Mime-Version: 1.0 &lt; Content-Length: 359 Content-Length: 359 &lt; Expires: Sun, 21 Jul 2013 07:56:14 GMT Expires: Sun, 21 Jul 2013 07:56:14 GMT &lt; Date: Sun, 21 Jul 2013 07:56:14 GMT Date: Sun, 21 Jul 2013 07:56:14 GMT &lt; Connection: keep-alive Connection: keep-alive &lt; Content-Type: audio/mp4 Content-Type: audio/mp4 &lt; * Connection #0 to host a1285.phobos.apple.com left intact * Closing connection #0 </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload