private static List <SongResult> SearchCollect(string id) { var url = "http://api.songlist.ttpod.com/songlists/" + id; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } var json = JObject.Parse(html); if (string.IsNullOrEmpty(json["songs"]?.ToString()) || json["songs"].ToString() == "null") { return(null); } try { var datas = json["songs"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchArtist(string id, int page, int size) { var url = "http://api.dongting.com/song/singer/" + id + "/songs?app=ttpod&from=android&api_version=1.0&size=" + size + "&page=" + page + "&user_id=0&tid=0"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } try { var json = JObject.Parse(html); if (json["totalCount"].ToString() == "0") { return(null); } var datas = json["data"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchArtist(string id, int page, int size) { var str = "singermid=" + id; if (Regex.IsMatch(id, @"^\d+$")) { str = "singerid=" + id; } var url = "http://i.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?order=listen&begin=" + (page - 1) * size + "&num=" + size + "&" + str + "&g_tk=5381&uin=0&format=jsonp&inCharset=utf-8&outCharset=utf-8¬ice=0&platform=h5page&needNewCode=1&from=h5"; var html = CommonHelper.GetHtmlContent(url).Replace("callback(", "").TrimEnd(')'); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } try { var json = JObject.Parse(html); if (json["message"].ToString() != "succ") { return(null); } var datas = json["data"]["list"]; return(GetListByJson(datas, true)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
public static List <SongResult> Search(string key, int page, int size) { var url = "http://search.kuwo.cn/r.s?client=kt&all=" + key + "&pn=" + (page - 1) + "&rn=" + size + "&ft=music&plat=pc&cluster=1&result=json&rformat=json&ver=mbox&show_copyright_off=1&vipver=MUSIC_8.1.2.0_W4&encoding=utf8"; //var url = $"http://search2013.kuwo.cn/r.s?all={key}&ft=music&client=kt&cluster=0&pn={page-1}&rn={size}&rformat=json&encoding=utf8"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html); if (json["TOTAL"].ToString() == "0") { return(null); } var datas = json["abslist"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchAlbum(string id) { var text = "{\"id\":\"" + id + "\"}"; var html = GetEncHtml("http://music.163.com/weapi/v1/album/" + id + "?csrf_token=", text); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } try { var json = JObject.Parse(html); var ar = json["album"]["artist"]["name"].ToString(); var pic = json["album"]["picUrl"].ToString(); var cmp = json["album"]["company"].ToString(); var year = CommonHelper.UnixTimestampToDateTime(Convert.ToInt64(json["album"]["publishTime"].ToString()) / 1000) .ToString("yyyy-MM-dd"); var datas = json["songs"]; var list = GetListByJson(datas); foreach (var s in list) { s.AlbumArtist = ar; s.PicUrl = pic; s.Company = cmp; s.Year = year; } return(list); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static SongResult SearchSong(string id) { try { var str = "songmid=" + id; if (Regex.IsMatch(id, @"^\d+$")) { str = "songid=" + id; } var url = "http://c.y.qq.com/v8/playsong.html?" + str; var html = CommonHelper.GetHtmlContent(url, 2); if (string.IsNullOrEmpty(html)) { return(null); } var j = JObject.Parse(Regex.Match(html, @"(?<=var song = )({[\s\S]+?})(?=,\s*totalTime)").Value); var list = SearchAlbum(j["albummid"].ToString()); return(list?.Songs.SingleOrDefault(t => t.SongId == j["songid"].ToString())); } catch (Exception ex) { CommonHelper.AddLog(ex); return(null); } }
private static List <SongResult> SearchArtist(string id, int page, int size) { //http://search2013.kuwo.cn/r.s?stype=artist2music&artistid=947&pn=0&rn=30 var url = "http://search.kuwo.cn/r.s?ft=music&itemset=newkw&newsearch=1&cluster=0&rn=" + size + "&pn=" + (page - 1) + "&primitive=0&rformat=json&encoding=UTF8&artist=" + id; if (Regex.IsMatch(id, @"^\d+$")) { url = "http://search.kuwo.cn/r.s?ft=music&itemset=newkw&newsearch=1&cluster=0&rn=" + size + "&pn=" + (page - 1) + "&primitive=0&rformat=json&encoding=UTF8&artistid=" + id; } var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } try { var json = JObject.Parse(html); if (json["TOTAL"].ToString() == "0") { return(null); } var datas = json["abslist"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private SongResult SearchSong(string id) { var html = CommonHelper.GetHtmlContent("http://m.kugou.com/app/i/getSongInfo.php?hash=" + id + "&album_id=&cmd=playInfo"); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html); var key = json["fileName"].ToString(); var list = SongSearch(key, 1, 30); if (list == null) { return(null); } var song = list.Songs.SingleOrDefault(t => t.SongId == id); return(song ?? list.Songs[0]); } catch (Exception ex) { CommonHelper.AddLog(ex); return(null); } }
private static List <SongResult> SearchArtist(string id, int page, int size) { try { var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.artist.getSongList&format=json&order=2&tinguid=" + id + "&offset=" + (page - 1) * size + "&limits=" + size; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } var json = JObject.Parse(html); if (json["error_code"].ToString() != "22000") { return(null); } var datas = json["songlist"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchArtist(string id, int page, int size) { var url = "http://ioscdn.kugou.com/api/v3/singer/song?singerid=" + id + "&page=" + page + "&pagesize=" + size + "&sorttype=2&plat=2&version=7910"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } try { var json = JObject.Parse(html); if (json["data"]["total"].ToString() == "0") { return(null); } var datas = json["data"]["info"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchCollect(string id) { var url = "http://i.y.qq.com/qzone-music/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&nosign=1&disstid=" + id + "&g_tk=5381&loginUin=0&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=utf-8¬ice=0&platform=yqq&jsonpCallback=jsonCallback&needNewCode=0"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } var json = JObject.Parse(html.Replace("jsonCallback(", "").TrimEnd(')')); if (json["cdlist"] == null) { return(null); } try { var datas = json["cdlist"].First["songlist"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
public static List <SongResult> Search(string key, int page, int size) { //https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&remoteplace=sizer.yqq.song_next&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%8D%93%E4%BE%9D%E5%A9%B7-%E5%A6%82%E6%A2%A6%E5%88%9D%E9%86%92&g_tk=1220316356&loginUin=584586119&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0 //var url = "http://soso.music.qq.com/fcgi-bin/search_cp?aggr=0&catZhida=0&lossless=1&sem=1&w=" + key + "&n=" + size + "&t=0&p=" + page + "&remoteplace=sizer.yqqlist.song&g_tk=5381&loginUin=0&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0"; var url = $"https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&remoteplace=sizer.yqq.song_next&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p={page}&n={size}&w={key}&g_tk=1220316356&loginUin=584586119&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html.Replace("callback(", "").TrimEnd(')')); if (json["data"]["song"]["totalnum"].ToString() == "0") { return(null); } var datas = json["data"]["song"]["list"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
public static List <SongResult> SearchSong(string key, int page, int size) { try { var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.search.merge&format=json&query=" + key + "&page_no=" + page + "&page_size=" + size + "&type=0&data_source=0&use_cluster=1"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } var json = JObject.Parse(html); if (json["error_code"].ToString() != "22000") { return(null); } if (json["result"]["song_info"] == null) { return(null); } var datas = json["result"]["song_info"]["song_list"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
//private static string _kgToken; //private static string _kgUsrId; //private static DateTime _lastUpdateTime = DateTime.MinValue; //{"username":"******","clienttime":1490882950,"clientver":8708,"p":"75BDD13CE1222A190B4EA964B24CB7A1C2BD52EC4AC46997B50F6D30CF9C6D1EED8EC7288A8C857F5343B0C423224D53E2616C5DF62446B108D697BA223226743AC5570DF6DBFFC541BC88A56D3F084B6D3624A79EFD582223E2511B263CE4B15E8E9D2BB95E69D8B51774FC6AB9F79CF42A23A8C371C86D75C1AED1A5588FF5","appid":1005,"uuid":"194411aa79054c328f5341a2f7179a20","mid":"169617645177286751451596349075271490597","key":"59f222f0b028bd80b790266ad1ac196a"} //private const string UsrData = "{\"username\":\"XXXXXX\",\"clienttime\":1490882950,\"clientver\":8708,\"p\":\"75BDD13CE1222A190B4EA964B24CB7A1C2BD52EC4AC46997B50F6D30CF9C6D1EED8EC7288A8C857F5343B0C423224D53E2616C5DF62446B108D697BA223226743AC5570DF6DBFFC541BC88A56D3F084B6D3624A79EFD582223E2511B263CE4B15E8E9D2BB95E69D8B51774FC6AB9F79CF42A23A8C371C86D75C1AED1A5588FF5\",\"appid\":1005,\"uuid\":\"194411aa79054c328f5341a2f7179a20\",\"mid\":\"169617645177286751451596349075271490597\",\"key\":\"59f222f0b028bd80b790266ad1ac196a\"}"; //private static void UpdateToken() //{ // if (!string.IsNullOrEmpty(_kgToken) && (DateTime.Now - _lastUpdateTime <= new TimeSpan(1, 0, 0, 0))) return; // var html = CommonHelper.PostData("http://login.user.kugou.com/v2/login_by_pwd", // new Dictionary<string, string> { { "JSON", UsrData } }, 1); // if (string.IsNullOrEmpty(html)) // { // return; // } // _lastUpdateTime = DateTime.Now; // _kgToken = JObject.Parse(html)["data"]["token"].ToString(); // _kgUsrId = JObject.Parse(html)["data"]["userid"].ToString(); // //var token = Login(); // //if (string.IsNullOrEmpty(token)) // //{ // // return; // //} // //_lastUpdateTime = DateTime.Now; // //_kgToken = token; //} //private static string Login() //{ // var username = "******"; // var password = "******"; // string text = "1234567890"; // string value = username + password + text + "wp001"; // string text2 = CommonHelper.Md5(value); // string text3 = string.Concat(new string[] // { // "username="******"&password="******"&plat=10&version=1000&imei=", // text, // "&key=", // text2 // }); // byte[] bytes2 = Encoding.UTF8.GetBytes(text3); // PKCS5Padding pKCS5Padding = new PKCS5Padding(); // byte[] input = pKCS5Padding.Pad(8, bytes2); // DesCipher desCipher = new DesCipher(new byte[] { 79, 46, 13, 17, 28, 39, 7, 3 }, new CbcCipherMode(new byte[] { 26, 59, 48, 68, 35, 24, 11, 99 }), new PKCS5Padding()); // byte[] buff = desCipher.Encrypt(input); // string text4 = ByteToString(buff); // var html = CommonHelper.PostData("http://wpservice.kugou.com/new/app/i/user.php", new Dictionary<string, string> { // { "cmd","404"},{ "crypt",text4} }); // if (string.IsNullOrEmpty(html)) // { // return ""; // } // return Regex.Match(html, @"(?<=sign"":"")[^""]+").Value; //} //private static string ByteToString(byte[] buff) //{ // string text = ""; // for (int i = 0; i < buff.Length; i++) // { // text += buff[i].ToString("X2"); // } // return text; //} public static List <SongResult> Search(string key, int page, int size) { var url = "http://ioscdn.kugou.com/api/v3/search/song?keyword=" + key + "&page=" + page + "&pagesize=" + size + "&showtype=10&plat=2&version=7910&tag=1&correct=1&privilege=1&sver=5"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html); if (!string.IsNullOrEmpty(json["error"].ToString()) || json["data"]["total"].ToString() == "0") { return(null); } var datas = json["data"]["info"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static List <SongResult> SearchCollect(string id, int page) { var url = "http://m.kugou.com/plist/list/?specialid=" + id + "&page=" + page + "&plat=2&json=true"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html) || html == "null") { return(null); } var json = JObject.Parse(html); if (json["list"]["list"]["total"].ToString() == "0") { return(null); } try { var datas = json["list"]["list"]["info"]; return(GetListByJson(datas)); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static AlbumResult SearchAlbum(string id) { var result = new AlbumResult { ErrorCode = 200, ErrorMsg = "OK", AlbumLink = "http://h.dongting.com/yule/app/music_album.html?id=" + id, Songs = new List <SongResult>() }; var url = "http://api.dongting.com/song/album/" + id; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { result.ErrorCode = 300; result.ErrorMsg = "获取专辑信息失败"; return(result); } try { var json = JObject.Parse(html); if (string.IsNullOrEmpty(json["data"]?.ToString()) || json["data"].ToString() == "null") { result.ErrorCode = 404; result.ErrorMsg = "请检查专辑ID是否正确"; return(result); } result.AlbumType = json["data"]["typeName"].ToString(); result.AlbumInfo = json["data"]["description"].ToString(); var datas = json["data"]["songList"]; var year = json["data"]["publishDate"].ToString(); var cmp = json["data"]["companyName"].ToString(); var lug = json["data"]["lang"].ToString(); var ar = json["data"]["singerName"].ToString(); var pic = json["data"]["picUrl"].ToString(); var alias = json["data"]["alias"].ToString(); var songs = json["data"]["songs"].Select(jToken => jToken.ToString()).ToList(); result.Songs = GetListByJson(datas); foreach (var r in result.Songs) { r.TrackNum = (songs.IndexOf(r.SongId) + 1).ToString(); r.Year = year; r.Company = cmp; r.Language = lug; r.AlbumArtist = ar; r.PicUrl = pic; r.AlbumSubName = alias; } return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "专辑解析失败"; return(result); } }
private static ArtistResult SearchArtist(string id, int page, int size) { //http://api.dongting.com/song/singer/1766358 var url = "http://api.dongting.com/song/singer/" + id + "/songs?app=ttpod&from=android&api_version=1.0&size=" + size + "&page=" + page + "&user_id=0&tid=0"; var html = CommonHelper.GetHtmlContent(url); var result = new ArtistResult { ErrorCode = 200, ErrorMsg = "OK", ArtistLink = "", Page = page, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取源代码失败"; return(result); } try { var json = JObject.Parse(html); if (json["totalCount"].ToString() == "0") { result.ErrorCode = 404; result.ErrorMsg = "请检查艺术家ID是否正确"; return(null); } var datas = json["data"]; result.Songs = GetListByJson(datas); try { html = CommonHelper.GetHtmlContent("http://api.dongting.com/song/singer/" + id); json = JObject.Parse(html); result.ArtistInfo = json["data"]["brief"].ToString(); result.ArtistLogo = json["data"]["picUrl"].ToString(); result.TransName = json["data"]["alias"].First?.ToString(); result.AlbumSize = json["data"]["albumsCount"].Value <int>(); result.SongSize = json["data"]["songsCount"].Value <int>(); } catch (Exception ex) { CommonHelper.AddLog(ex); } return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "解析歌曲时发生错误"; return(result); } }
private static List <SongResult> SearchAlbum(string id) { try { var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.album.getAlbumInfo&format=json&album_id=" + id; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } if (html.Contains("error_code")) { return(null); } var json = JObject.Parse(html); var datas = json["songlist"]; var year = json["albumInfo"]["publishtime"].ToString(); var cmp = json["albumInfo"]["publishcompany"].ToString(); var lug = json["albumInfo"]["language"].ToString(); var ar = json["albumInfo"]["author"].ToString(); var smallPic = json["albumInfo"]["pic_small"].ToString(); string pic; if (!string.IsNullOrEmpty(json["albumInfo"]["pic_s1000"].ToString())) { pic = json["albumInfo"]["pic_s1000"].ToString(); } else if (!string.IsNullOrEmpty(json["albumInfo"]["pic_s500"].ToString())) { pic = json["albumInfo"]["pic_s500"].ToString(); } else { pic = json["albumInfo"]["pic_radio"].ToString(); } var list = GetListByJson(datas); var index = 0; foreach (var r in list) { index++; r.TrackNum = index; r.Year = year; r.Company = cmp; r.Language = lug; r.AlbumArtist = ar; r.PicUrl = pic; r.SmallPic = smallPic; } return(list); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static AlbumResult SearchAlbum(string id) { var result = new AlbumResult { ErrorCode = 200, ErrorMsg = "OK", AlbumLink = "", Songs = new List <SongResult>() }; var url = "http://search.kuwo.cn/r.s?stype=albuminfo&albumid=" + id + "&client=kt&plat=pc&cluster=1&ver=mbox&show_copyright_off=1&vipver=MUSIC_8.1.2.0_W4&encoding=utf8"; var html = CommonHelper.GetHtmlContent(url, 0, null, false); if (string.IsNullOrEmpty(html) || html == "{}") { result.ErrorCode = 300; result.ErrorMsg = "获取专辑信息失败"; return(result); } try { var json = JObject.Parse(html); var al = json["name"].ToString(); var ar = json["artist"].ToString(); var lu = json["lang"].ToString(); var pic = "http://img3.kuwo.cn/star/albumcover/" + json["pic"].ToString().Replace("120/", "500/"); var year = json["pub"].ToString(); var cmp = json["company"].ToString(); result.Songs = GetSongsByToken(json["musiclist"]); result.AlbumInfo = json["info"].ToString(); for (var i = 0; i < result.Songs.Count; i++) { result.Songs[i].AlbumId = id; result.Songs[i].AlbumName = al; result.Songs[i].AlbumArtist = ar; result.Songs[i].Language = lu; result.Songs[i].PicUrl = pic; result.Songs[i].TrackNum = (i + 1).ToString(); result.Songs[i].Year = year; result.Songs[i].Company = cmp; } return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "专辑解析失败"; return(result); } }
private static CollectResult SearchCollect(string id) { var url = "http://i.y.qq.com/qzone-music/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&nosign=1&disstid=" + id + "&g_tk=5381&loginUin=0&hostUin=0&format=jsonp&inCharset=GB2312&outCharset=utf-8¬ice=0&platform=yqq&jsonpCallback=jsonCallback&needNewCode=0"; var html = CommonHelper.GetHtmlContent(url); var result = new CollectResult { ErrorCode = 200, ErrorMsg = "OK", CollectId = id, CollectLink = "http://y.qq.com/#type=taoge&id=" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取歌单信息失败"; return(result); } var json = JObject.Parse(html.Replace("jsonCallback(", "").TrimEnd(')')); if (json["cdlist"] == null) { result.ErrorCode = 404; result.ErrorMsg = "请检查歌单ID是否正确"; return(result); } try { var datas = json["cdlist"].First["songlist"]; result.Songs = GetListByJson(datas); result.CollectName = json["cdlist"].First["dissname"].ToString(); result.CollectLogo = json["cdlist"].First["logo"].ToString(); result.CollectMaker = json["cdlist"].First["nick"].ToString(); result.CollectInfo = json["cdlist"].First["desc"].ToString(); var tags = json["cdlist"].First["tags"].Aggregate("", (current, t) => current + (t["name"].ToString() + ";")); result.Tags = tags.Trim(';'); result.SongSize = json["cdlist"].First["cur_song_num"].Value <int>(); result.Date = CommonHelper.UnixTimestampToDateTime(Convert.ToInt64(json["cdlist"].First["ctime"].ToString())) .ToString("yyyy-MM-dd"); return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "解析歌单时发生错误"; return(result); } }
private static CollectResult SearchCollect(string id) { var url = "http://api.songlist.ttpod.com/songlists/" + id; var html = CommonHelper.GetHtmlContent(url); var result = new CollectResult { ErrorCode = 200, ErrorMsg = "OK", CollectId = id, CollectLink = "http://h.dongting.com/yule/app/music_songlist.html?id=" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取歌单信息失败"; return(result); } var json = JObject.Parse(html); if (string.IsNullOrEmpty(json["songs"]?.ToString()) || json["songs"].ToString() == "null") { result.ErrorCode = 404; result.ErrorMsg = "请检查歌单ID是否正确"; return(result); } try { var datas = json["songs"]; result.Songs = GetListByJson(datas); result.CollectName = json["title"].ToString(); result.CollectLogo = json["image"]["pic"].ToString(); result.CollectMaker = json["owner"]["nick_name"].ToString(); result.CollectInfo = json["desc"].ToString(); var tags = json["tags"].Aggregate("", (current, t) => current + (t["tag_name"].ToString() + ";")); result.Tags = tags.Trim(';'); result.SongSize = json["song_count"].Value <int>(); result.Date = CommonHelper.UnixTimestampToDateTime(Convert.ToInt64(json["created_time"].ToString()) / 1000) .ToString("yyyy-MM-dd"); return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "解析歌单时发生错误"; return(result); } }
private static List <SongResult> SearchAlbum(string id) { var url = "http://ioscdn.kugou.com/api/v3/album/song?albumid=" + id + "&page=1&pagesize=-1&plat=2&version=7910"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html); if (json["data"]["total"].ToString() == "0") { return(null); } var datas = json["data"]["info"]; var list = GetListByJson(datas); html = CommonHelper.GetHtmlContent("http://ioscdn.kugou.com/api/v3/album/info?albumid=" + id + "&version=7910"); if (string.IsNullOrEmpty(html)) { return(list); } json = JObject.Parse(html); var time = json["data"]["publishtime"].ToString().Substring(0, 10); var al = json["data"]["albumname"].ToString(); var singerId = json["data"]["singerid"].ToString(); var singerName = json["data"]["singername"].ToString(); var pic = json["data"]["imgurl"].ToString().Replace("{size}", "480"); var smallPic = json["data"]["imgurl"].ToString().Replace("{size}", "120"); for (var i = 0; i < list.Count; i++) { list[i].ArtistId = singerId; list[i].ArtistName = singerName; list[i].AlbumName = al; list[i].AlbumArtist = singerName; list[i].TrackNum = i + 1; list[i].Year = time; list[i].SmallPic = smallPic; list[i].PicUrl = pic; } return(list); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static AlbumResult SearchAlbum(string id) { var result = new AlbumResult { ErrorCode = 200, ErrorMsg = "OK", AlbumLink = "http://www.xiami.com/album/" + id, Songs = new List <SongResult>() }; var list = GetResultsByIds(id, 1); if (list == null || list.Count <= 0) { result.Songs = GetLostAlbum(id); } else { result.Songs = list; } var url = "http://www.xiami.com/app/xiating/album?spm=0.0.0.0.L6k2wP&id=" + id + "&uid=0"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(result); } try { var match = Regex.Match(html, @"(?<=h1 title="")([^""]+)(?:""[\s\S]+?p class="")([^""]*)(?:""[\s\S]+detail_songer"">)([^<]+)(?:</a>[\s\S]+?<em>)([^<]+)(?:</em>[\s\S]+?<em>)([^<]+)(?:</em>[\s\S]+?<em>)([^<]+)(?:</em>[\s\S]+?<em>)([^<]+)(?:</em>)"); if (match.Length <= 0) { return(result); } foreach (var s in result.Songs) { s.AlbumSubName = match.Groups[2].Value; s.AlbumArtist = match.Groups[3].Value; s.Language = match.Groups[4].Value; s.Company = match.Groups[5].Value; s.Year = match.Groups[6].Value.Replace("年", "-").Replace("月", "-").Replace("日", ""); } result.AlbumType = match.Groups[7].Value; } catch (Exception ex) { CommonHelper.AddLog(ex); } return(result); }
private CollectResult SearchCollect(string id, int page, int size) { var url = "http://m.kugou.com/plist/list/?specialid=" + id + "&page=" + page + "&plat=2&json=true"; var html = CommonHelper.GetHtmlContent(url); var result = new CollectResult { ErrorCode = 200, ErrorMsg = "OK", CollectId = id, CollectLink = "", Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取歌单信息失败"; return(result); } var json = JObject.Parse(html); if (json["list"]["list"]["total"].ToString() == "0") { result.ErrorCode = 404; result.ErrorMsg = "请检查歌单ID是否正确"; return(result); } try { var datas = json["list"]["list"]["info"]; result.Songs = GetListByJson(datas); result.CollectName = json["info"]["list"]["specialname"].ToString(); result.CollectLogo = json["info"]["list"]["imgurl"].ToString().Replace("{size}", "480"); result.CollectMaker = json["info"]["list"]["nickname"].ToString(); result.CollectInfo = json["info"]["list"]["intro"].ToString(); var tags = json["info"]["list"]["tags"].Aggregate("", (current, t) => current + (t["tagname"].ToString() + ";")); result.Tags = tags.Trim(';'); result.SongSize = json["info"]["list"]["songcount"].Value <int>(); result.Date = json["info"]["list"]["publishtime"].ToString().Substring(0, 10); return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "解析歌单时发生错误"; return(result); } }
private static AlbumResult SearchAlbum(string id) { var text = "{\"id\":\"" + id + "\"}"; var html = GetEncHtml("http://music.163.com/weapi/v1/album/" + id + "?csrf_token=", text); var result = new AlbumResult { ErrorCode = 200, ErrorMsg = "OK", AlbumLink = "http://music.163.com/#/album?id=" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取源代码失败"; return(result); } try { var json = JObject.Parse(html); var ar = json["album"]["artist"]["name"].ToString(); var pic = json["album"]["picUrl"].ToString(); var cmp = json["album"]["company"].ToString(); var year = CommonHelper.UnixTimestampToDateTime(Convert.ToInt64(json["album"]["publishTime"].ToString()) / 1000) .ToString("yyyy-MM-dd"); result.AlbumType = json["album"]["type"].ToString(); result.AlbumInfo = json["album"]["briefDesc"].ToString(); result.AlbumGenre = json["album"]["tags"].ToString(); var datas = json["songs"]; result.Songs = GetListByJson(datas); foreach (var s in result.Songs) { s.AlbumArtist = ar; s.PicUrl = pic; s.Company = cmp; s.Year = year; } return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "专辑解析失败"; return(result); } }
private static List <SongResult> SearchAlbum(string id) { var str = "albummid=" + id; if (Regex.IsMatch(id, @"^\d+$")) { str = "albumid=" + id; } var url = "http://i.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?" + str + "&g_tk=5381&uin=0&format=jsonp&inCharset=utf-8&outCharset=utf-8¬ice=0&platform=h5&needNewCode=1"; var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } try { var json = JObject.Parse(html.Replace("callback(", "").TrimEnd(')')); if (json["message"].ToString() != "succ") { return(null); } var datas = json["data"]["list"]; var year = json["data"]["aDate"].ToString(); var cmp = json["data"]["company"].ToString(); var lug = json["data"]["lan"].ToString().HtmlDecode(); var ar = json["data"]["singername"].ToString().HtmlDecode(); var list = GetListByJson(datas); var index = 0; foreach (var r in list) { index++; r.TrackNum = index; r.Year = year; r.Company = cmp; r.Language = lug; r.AlbumArtist = ar; } return(list); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }
private static ArtistResult SearchArtist(string id) { var text = "{\"id\":\"" + id + "\"}"; var html = GetEncHtml("http://music.163.com/weapi/v1/artist/" + id + "?csrf_token=", text); var result = new ArtistResult { ErrorCode = 200, ErrorMsg = "OK", ArtistLink = "http://music.163.com/#/artist?id=" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取源代码失败"; return(result); } try { var json = JObject.Parse(html); var alias = json["artist"]["alias"]?.First?.ToString(); result.TransName = json["artist"]["trans"].ToString(); result.ArtistInfo = json["artist"]["briefDesc"].ToString(); result.ArtistLogo = json["artist"]["img1v1Url"].ToString(); result.Page = 1; result.AlbumSize = json["artist"]["albumSize"].Value <int>(); result.SongSize = json["artist"]["musicSize"].Value <int>(); var datas = json["hotSongs"]; result.Songs = GetListByJson(datas); if (!string.IsNullOrEmpty(alias)) { foreach (var s in result.Songs) { s.ArtistSubName = alias; } } return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "热门歌曲解析失败"; return(result); } }
private static CollectResult SearchCollect(string id) { var url = "http://tingapi.ting.baidu.com/v1/restserver/ting?from=android&version=5.6.5.6&method=baidu.ting.diy.gedanInfo&format=json&listid=" + id; var html = CommonHelper.GetHtmlContent(url); var result = new CollectResult { ErrorCode = 200, ErrorMsg = "OK", CollectId = id, CollectLink = "http://music.baidu.com/songlist/" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取歌单信息失败"; return(result); } var json = JObject.Parse(html); if (json["error_code"].ToString() != "22000") { result.ErrorCode = 404; result.ErrorMsg = "请检查歌单ID是否正确"; return(result); } try { var datas = json["content"]; result.Songs = GetListByJson(datas); result.CollectName = json["title"].ToString(); result.CollectLogo = json["pic_500"].ToString(); result.CollectInfo = json["desc"].ToString(); result.Tags = json["tag"].ToString(); result.SongSize = result.Songs.Count; return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "解析歌单时发生错误"; return(result); } }
private static CollectResult SearchCollect(string id, int page, int size) { var text = "{\"id\":\"" + id + "\",\"n\":" + size + ",\"offset\":" + (page - 1) * size + ",\"limit\":" + size + ",\"total\":true}"; var html = GetEncHtml("http://music.163.com/weapi/v3/playlist/detail?csrf_token=", text); var result = new CollectResult { ErrorCode = 200, ErrorMsg = "OK", CollectId = id, CollectLink = "http://music.163.com/#/playlist?id=" + id, Songs = new List <SongResult>() }; if (string.IsNullOrEmpty(html) || html == "null") { result.ErrorCode = 300; result.ErrorMsg = "获取源代码失败"; return(result); } try { var json = JObject.Parse(html); result.Songs = GetListByJToken(json, true); result.CollectInfo = json["playlist"]["description"].ToString(); result.CollectName = json["playlist"]["name"].ToString(); result.Page = page; result.SongSize = json["playlist"]["trackCount"].Value <int>(); result.Date = CommonHelper.UnixTimestampToDateTime(Convert.ToInt64(json["playlist"]["createTime"].ToString()) / 1000) .ToString("yyyy-MM-dd"); var picId = json["playlist"]["coverImgId"].ToString(); var encryptPath = EncryptId(picId); result.CollectLogo = $"http://p4.music.126.net/{encryptPath}/{picId}.jpg"; result.CollectMaker = json["playlist"]["creator"]["nickname"].ToString(); return(result); } catch (Exception ex) { CommonHelper.AddLog(ex); result.ErrorCode = 500; result.ErrorMsg = "歌单解析失败"; return(result); } }
private static SongResult SearchSong(string id) { try { #region 旧版 //var str = id; //if (Regex.IsMatch(id, @"^\d+$")) //{ // str = id + "_num"; //} ////http://y.qq.com/portal/song/004Xy7Rb2kGXEu.html //var url = "http://y.qq.com/portal/song/"+str+".html"; //var html = CommonHelper.GetHtmlContent(url); //if (string.IsNullOrEmpty(html)) //{ // return null; //} //var j = JToken.Parse("["+ Regex.Match(html, @"(?<=var\s*g_SongData\s*=\s*)({[\s\S]+?})(?=;)").Value + "]"); //var list = GetListByJson(j); //return list?[0]; #endregion var url = "http://i.y.qq.com/s.plcloud/fcgi-bin/fcg_list_songinfo_cp.fcg?midlist=" + id; if (Regex.IsMatch(id, @"^\d+$")) { url = "http://i.y.qq.com/s.plcloud/fcgi-bin/fcg_list_songinfo_cp.fcg?idlist=" + id; } var html = CommonHelper.GetHtmlContent(url); if (string.IsNullOrEmpty(html)) { return(null); } var json = JObject.Parse(html); var datas = json["data"]; var list = GetListByJson(datas); return(list?[0]); } catch (Exception ex) { CommonHelper.AddLog(ex.ToString()); return(null); } }