Example #1
0
        public List <Song1> SearchSongs(string keyword, int page, int pageSize)
        {
            var          searchResult     = HttpHelper.GET(string.Format("http://c.y.qq.com/soso/fcgi-bin/search_for_qq_cp?w={0}&format=json&p={1}&n={2}", keyword, page, pageSize), DEFAULT_CONFIG);
            var          searchResultJson = JsonParser.Deserialize(searchResult).data.song;
            List <Song1> result           = new List <Song1>();

            int index = 1;

            foreach (var songItem in searchResultJson.list)
            {
                Song1 song = new Song1
                {
                    Id       = songItem["songmid"],
                    SongName = songItem["songname"],
                    Album    = songItem["albumname"],
                    Rate     = 128,
                    Size     = songItem["size128"],
                    Source   = Name,
                    Index    = index++,
                    Duration = songItem["interval"]
                };
                song.Singer = "";
                foreach (var ar in songItem["singer"])
                {
                    song.Singer += ar["name"] + " ";
                }

                result.Add(song);
            }
            return(result);
        }
Example #2
0
        public List <Song1> SearchSongs(string keyword, int page, int pageSize)
        {
            var          searchResult = HttpHelper.GET(string.Format("http://songsearch.kugou.com/song_search_v2?keyword={0}&platform=WebFilter&format=json&page={1}&pagesize={2}", keyword, page, pageSize), DEFAULT_CONFIG);
            List <Song1> resut        = new List <Song1>();

            try
            {
                var songList = JObject.Parse(searchResult)["data"]["lists"];
                int index    = 1;

                foreach (var songItem in songList)
                {
                    Song1 song = new Song1
                    {
                        Id       = songItem["FileHash"].ToString(),
                        SongName = songItem["SongName"].ToString(),
                        Singer   = songItem["SingerName"].ToString(),
                        Album    = songItem["AlbumName"].ToString(),
                        Rate     = 128,
                        Index    = index++,
                        Size     = Convert.ToDouble(songItem["FileSize"].ToString()),
                        Source   = Name,
                        Duration = Convert.ToDouble(songItem["Duration"].ToString())
                    };

                    resut.Add(song);
                }
            }
            catch (Exception)
            {
            }

            return(resut);
        }
Example #3
0
        public string getDownloadUrl(Song1 song)
        {
            var param   = new JObject();
            var urlInfo = JsonParser.Deserialize(HttpHelper.GET(string.Format("http://music.163.com/api/song/enhance/player/url?id={0}&ids=%5B{0}%5D&br=3200000", song.Id), DEFAULT_CONFIG));

            return(urlInfo.data[0]["url"]);
        }
Example #4
0
        public List <Song1> SearchSongs(string keyword, int page, int pageSize)
        {
            var          searchResult = HttpHelper.GET(string.Format("http://music.163.com/api/cloudsearch/pc?s={0}&type=1&offset={1}&limit={2}", keyword, (page - 1) * pageSize, pageSize), DEFAULT_CONFIG);
            List <Song1> result       = new List <Song1>();

            try
            {
                var songList = JObject.Parse(searchResult)["result"]["songs"];
                int index    = 1;

                foreach (var songItem in songList)
                {
                    if (Convert.ToInt32(songItem["privilege"]["fl"]) == 0)
                    {
                        continue;//无版权
                    }

                    Song1 song = new Song1
                    {
                        Id       = songItem["id"].ToString(),
                        SongName = songItem["name"].ToString(),
                        Album    = songItem["al"]["name"].ToString(),

                        Index = index++,

                        Source   = Name,
                        Duration = Convert.ToDouble(songItem["dt"].ToString()) / 1000
                    };
                    song.Singer = "";
                    foreach (var ar in songItem["ar"])
                    {
                        song.Singer += ar["name"] + " ";
                    }
                    song.Rate = Convert.ToInt32(songItem["privilege"]["fl"]) / 1000;

                    int fl = Convert.ToInt32(songItem["privilege"]["fl"]);
                    if (songItem["h"] != null && fl > 32000)
                    {
                        song.Size = Convert.ToDouble(songItem["h"]["size"]);
                    }
                    else if (songItem["m"] != null && fl >= 192000)
                    {
                        song.Size = Convert.ToDouble(songItem["m"]["size"]);
                    }
                    else if (songItem["l"] != null)
                    {
                        song.Size = Convert.ToDouble(songItem["l"]["size"]);
                    }
                    result.Add(song);
                }
            }
            catch (Exception ex)
            {
            }

            return(result);
        }
Example #5
0
        public string getDownloadUrl(Song1 song)
        {
            var guid = new Random().Next(1000000000, 2000000000);

            var key = JsonParser.Deserialize(HttpHelper.GET(string.Format("http://base.music.qq.com/fcgi-bin/fcg_musicexpress.fcg?guid={0}&format=json&json=3", guid), DEFAULT_CONFIG)).key;

            foreach (var prefix in prefixes)
            {
                var musicUrl = string.Format("http://dl.stream.qqmusic.qq.com/{0}{1}.mp3?vkey={2}&guid={3}&fromtag=1", prefix, song.Id, key, guid);
                if (HttpHelper.GetUrlContentLength(musicUrl) > 0)
                {
                    return(musicUrl);
                }
            }
            return(null);
        }
Example #6
0
        public List <Song1> SearchSongs(string keyword, int page, int pageSize)
        {
            var          searchResult = HttpHelper.GET(string.Format("http://musicapi.qianqian.com/v1/restserver/ting?query={0}&method=baidu.ting.search.common&format=json&page_no={1}&page_size={2}", keyword, page, pageSize), DEFAULT_CONFIG);
            List <Song1> result       = new List <Song1>();

            try
            {
                var searchResultJson = JsonParser.Deserialize(searchResult).song_list;
                var songIds          = new List <string>();

                foreach (var item in searchResultJson)
                {
                    songIds.Add(item["song_id"]);
                }

                var songIdsStr = string.Join(",", songIds.ToArray());

                var songInfos = HttpHelper.GET(string.Format("http://music.taihe.com/data/music/links?songIds={0}", songIdsStr), DEFAULT_CONFIG);
                var songList  = JObject.Parse(songInfos)["data"]["songlist"];
                int index     = 1;

                foreach (var songItem in songList)
                {
                    Song1 song = new Song1
                    {
                        Id       = songItem["queryId"].ToString(),
                        SongName = songItem["songName"].ToString(),
                        Singer   = songItem["artistName"].ToString(),
                        Album    = songItem["albumName"].ToString(),
                        Rate     = 128,
                        Index    = index++,
                        Size     = Convert.ToDouble(songItem["size"].ToString()),
                        Source   = Name,
                        URL      = songItem["songLink"].ToString(),
                        Duration = Convert.ToDouble(songItem["time"].ToString())
                    };
                    result.Add(song);
                }
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
Example #7
0
        public string getDownloadUrl(Song1 song)
        {
            var urlInfo = JsonParser.Deserialize(HttpHelper.GET(string.Format("http://m.kugou.com/app/i/getSongInfo.php?cmd=playInfo&hash={0}", song.Id), DEFAULT_CONFIG));

            return(urlInfo.url);
        }
Example #8
0
 public string getDownloadUrl(Song1 song)
 {
     return(song.URL);
 }
Example #9
0
 /// <summary>
 /// 获取下载路径
 /// </summary>
 /// <param name="song1"></param>
 /// <returns></returns>
 public string getDownloadUrl(Song1 song1)
 {
     return(type2Provider[song1.Source].getDownloadUrl(song1));
 }