2016-07-01 26 views
0

我已经在这个论坛上尝试了其他答案,但没有任何运气。我试图从RSS提要(它包含mp3音频的直接链接)中提取每个条目的机箱URL,因此我可以创建一个包含所有音频的内置播放器的页面。在JavaScript中获取来自RSS源的机箱URL

这是我到目前为止有:

var FEED_URL = 'https://www.spreaker.com/show/1720272/episodes/feed'; 

$.ajax({ 
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(FEED_URL), 
    dataType: 'json', 
    success: function(data) { 
    $(data).find("item").each(function(i) { 
     var URL = $(this).find("enclosure").attr("url"); 
     console.log(URL); 
    }); 
    } 
}) 

这里的项目之一的例子:

 <item> 
      <title>Episode 2 - 7 Minute Leadership</title> 
      <link>https://www.spreaker.com/user/paul_falavolito/epsiode-2-7-minute-leadership</link> 
      <description>Why should anyone be led by you?</description> 
      <guid isPermaLink="false">https://api.spreaker.com/episode/8296378</guid> 
      <pubDate>Tue, 19 Apr 2016 13:16:50 +0000</pubDate> 
      <enclosure url="https://api.spreaker.com/download/episode/8296378/episode_2_7_minute_leadership.mp3" length="0" type="audio/mpeg"></enclosure> 
      <itunes:author>Paul Falavolito</itunes:author> 
      <itunes:subtitle>Why should anyone be led by you?</itunes:subtitle> 
      <itunes:summary>Why should anyone be led by you?</itunes:summary> 
      <itunes:duration>713</itunes:duration> 
      <itunes:keywords>motivation,business,leadership</itunes:keywords> 
      <itunes:explicit>clean</itunes:explicit> 
      <itunes:image href="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/f71be8f6c859a4ce5669a83cbf3bcd31.jpg"/> 
     </item> 

你可以看到有一个指向一个MP3的外壳URL。这是我试图提取的URL。

任何建议将不胜感激。

+0

我不认为'数据类型:“json''是正确的; rss看起来更像XML。 –

回答

0

这是我最终得到的外壳网址:

$(document).ready(function() { 
    var feed = "https://crossorigin.me/https://www.spreaker.com/show/1720272/episodes/feed"; 

    $.ajax(feed, { 
    accepts: { 
     xml: "application/rss+xml" 
    }, 
    dataType: "xml", 
    success: function(data) { 
     $(data).find("enclosure").each(function() { 
     var el = $.parseHTML($(this)[0].outerHTML); 
     var url = $(el).attr('url'); 
     console.log(url); 
     }); 
    } 
    }); 
});