<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -27,10 +27,9 @@ class Metadata
   def versions
     versions = {}
     REXML::XPath.each(metadata, '//playlist/item') do |node|
-      version_pid = node.attributes['identifier']
-      next unless version_pid
-      alternate = REXML::XPath.first(node, 'alternate')
-      versions[alternate.attributes['id']] = version_pid
+      version_pid = node.attributes['identifier'] or next
+      alternate_id = REXML::XPath.first(node, 'alternate').attributes['id'] rescue 'anonymous'
+      versions[alternate_id] = version_pid
     end
     versions
   end</diff>
      <filename>lib/iplayer/metadata.rb</filename>
    </modified>
    <modified>
      <diff>@@ -51,4 +51,25 @@ class MetadataTest &lt; Test::Unit::TestCase
     expected = {'default' =&gt; 'b00ftblc', 'signed' =&gt; 'b00fvy5y'}
     assert_equal expected, metadata.versions
   end
+
+  def test_should_call_version_anonymous_if_the_beeb_do_not_give_an_alternate_an_id
+    xml = %{
+      &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+      &lt;playlist xmlns=&quot;http://bbc.co.uk/2008/emp/playlist&quot; revision=&quot;1&quot;&gt;
+        &lt;item kind=&quot;programme&quot; duration=&quot;2700&quot; identifier=&quot;b00htg55&quot; group=&quot;b00hklrs&quot; publisher=&quot;pips&quot;&gt;
+          &lt;tempav&gt;1&lt;/tempav&gt;
+          &lt;id&gt;tag:bbc.co.uk,2008:pips:b00htg55&lt;/id&gt;
+          &lt;service id=&quot;bbc_two&quot; href=&quot;http://www.bbc.co.uk/iplayer/bbc_two&quot;&gt;BBC Two&lt;/service&gt;
+          &lt;masterbrand id=&quot;bbc_one&quot; href=&quot;http://www.bbc.co.uk/iplayer/bbc_one&quot;&gt;BBC One&lt;/masterbrand&gt;
+          &lt;guidance id=&quot;W1&quot;&gt;Contains adult humour.&lt;/guidance&gt;
+          &lt;mediator identifier=&quot;b00htg55&quot; name=&quot;pips&quot;/&gt;
+        &lt;/item&gt;
+      &lt;/playlist&gt;
+    }
+    pid = 'abc'
+    browser = stub(:get =&gt; stub(:body =&gt; xml))
+    metadata = IPlayer::Metadata.new(pid, browser)
+    expected = {'anonymous' =&gt; 'b00htg55'}
+    assert_equal expected, metadata.versions
+  end
 end</diff>
      <filename>test/test_metadata.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>eab356ae44a7034c2fcc43aa35c1acf4a47ec164</id>
    </parent>
  </parents>
  <author>
    <name>Paul Battley</name>
    <email>pbattley@gmail.com</email>
  </author>
  <url>http://github.com/threedaymonk/iplayer-dl/commit/c9dd5b0b04d22b1201a60073e0a79490d28d1c3e</url>
  <id>c9dd5b0b04d22b1201a60073e0a79490d28d1c3e</id>
  <committed-date>2009-02-16T12:08:35-08:00</committed-date>
  <authored-date>2009-02-16T12:08:35-08:00</authored-date>
  <message>The pesky Beeb is giving us alternatives with no ID in the metadata file.</message>
  <tree>99e638c392a3cf8a2d16ab27cf62064645527d77</tree>
  <committer>
    <name>Paul Battley</name>
    <email>pbattley@gmail.com</email>
  </committer>
</commit>
