SongTaste音乐下载器

      SongTaste音乐下载器

  Songtaste是一个非常好的音乐推荐网站, 奈何和duomi搅合在一起, 导致下载音乐非常的麻烦, 现在写了一个简单的"下载器", 通过它可以下载给定音乐ID,来下载具体的音乐.

ID来自

红色方块内的id编码,

注意使用google浏览器或者其他的时候, 注意跨域ajax调用的限制, Google 为启动参数添加--disable-web-security.

打开网页:

点击下载 就可以下载了~

如下是代码:

  1 <html>
  2     <head>
  3         <!-- 新 Bootstrap 核心 CSS 文件 -->
  4         <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">
  5 
  6         <!-- 可选的Bootstrap主题文件(一般不用引入) -->
  7         <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
  8 
  9         <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
 10         <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
 11 
 12         <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
 13         <script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
 14         
 15         <!--arttemplate-->
 16         <script type="text/javascript" src="https://rawgithub.com/aui/artTemplate/master/dist/template-native-debug.js"></script>
 17         <script>
 18             (function(){
 19                 window.list = [];
 20                 var WrtSongLine = function(SongID, SongName, Singer, IsBox, Idx, SongUrl, MidUrl){
 21                     
 22                     //MidUrl中存在rayfile, 则替换SongUrl
 23                     if(MidUrl.indexOf('rayfile') < 0){
 24                         SongUrl = $.ajax({
 25                             type:'POST',
 26                             url:'http://www.songtaste.com/time.php',
 27                             cache:false,
 28                             data:'str='+MidUrl+'&sid='+SongID,
 29                             dataType:'html',
 30                             async:false
 31                         }).responseText;
 32                     }
 33                     //加入全局中
 34                     list.push({name:SongName,url:SongUrl});
 35                 }
 36                 //加入全局函数中
 37                 window.WrtSongLine = WrtSongLine;
 38                  
 39                 //打印,包含WrtSongLine函数的文本
 40                 var print = function(source){
 41                     //更新list为空
 42                     list = [];
 43                     var data ={
 44                         list:list
 45                     };
 46                     eval(source);
 47                     var htmlStr = template('showtpl',data);
 48                     $("#show").html(htmlStr);
 49                 };
 50                 var go = function(){
 51                     var ids = $("#ids").val();
 52                     if(ids == '' ){
 53                         alert("ids不能为空");
 54                         return;
 55                     }
 56                     ids = ids.trim();
 57                     $.ajax({
 58                         url:'http://www.songtaste.com/playmusic.php?song_id='+ids,
 59                         async: false,
 60                         dataType:'text',
 61                         type:'GET',
 62                         error:function(){
 63                             alert("请求数据失败");
 64                         },
 65                         success:function(data){
 66                             var source = data.match(/WrtSongLine.*/gmi);
 67                             //去除第一条
 68                             source.shift();
 69                             var script = source.join('');
 70                             print(script);
 71                         }
 72                     
 73                     });
 74                 };
 75                 
 76                 $(function(){
 77                     //bind click
 78                     $("#go").click(go);
 79 
 80                 });
 81             })();
 82         </script>
 83     </head>
 84     <body>
 85         <div style="80%;margin-left:10%;">
 86             <h3 >输入格式为: 1534606,2218413,3420496,3009756,1813717</h3>
 87             <div class="input-group">
 88                 <input type="text" class="form-control" id="ids">
 89                 <span class="input-group-btn">
 90                     <button class="btn btn-default" type="button" id="go">Go!</button>
 91                 </span>
 92             </div><!-- /input-group -->
 93             </br>
 94             </br>
 95             </br>
 96             <div id="show">
 97             </div>
 98             <!--输入list格式为 {name,url} -->
 99             <script type="text/html" id="showtpl">
100                 <table class="table table-striped">
101                     <%for(var i = 0;i<list.length;++i){%>
102                         <tr>
103                             <td><%= list[i].name%></td>
104                             <td><a href="<%= list[i].url %>" download="<%= list[i].name%>" >点击下载</a></td>
105                         </tr>
106                     <%}%>
107                 </table>
108             </script>
109         </div>
110     </body>
111 </html>
原文地址:https://www.cnblogs.com/tickobject/p/3826623.html