package coke;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.text.MessageFormat; import java.util.HashMap; import java.util.List; import java.util.Map;
public class coke_music {
public static String get_musiclist(int music_type){
String url = "https://beta-luna.douyin.com/luna/feed/playlist-square?request_tag_from=lynx&device_platform=android&os=android&ssmix=a&_rticket=1659112744687&cdid=4a6a891c-e1e1-4fec-8ef6-94f28a302b0b&channel=xiaomi_8478&aid=8478&app_name=luna&version_code=10090140&version_name=1.9.1&manifest_version_code=10090140&update_version_code=10090140&resolution=1080*2030&dpi=440&device_type=MI+6X&device_brand=xiaomi&language=zh&os_api=28&os_version=9&ac=wifi&package=com.luna.music&hybrid_version_code=10090140&device_model=MI+6X&tz_name=Asia%2FShanghai&tz_offset=28800&network_speed=5246&iid=&device_id="; JSONObject param = new JSONObject(); param.put("category_id", music_type); String result = null; HttpPost httpPost = new HttpPost(url); CloseableHttpClient client = HttpClients.createDefault(); StringEntity entity = new StringEntity(param.toJSONString(), "UTF-8"); httpPost.setHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"); httpPost.setEntity(entity); try { HttpResponse response = client.execute(httpPost); if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(), "utf-8"); } } catch (IOException e) { e.printStackTrace(); result = "error"; }
return result; }
public static String get_musicrank(){
String url = "https://beta-luna.douyin.com/luna/discover?device_platform=android&os=android&ssmix=a&_rticket=1659122791092&cdid=05d1276c-3cad-4d05-892c-bb5187ca51b8&channel=xiaomi_8478&aid=8478&app_name=luna&version_code=10090140&version_name=1.9.1&manifest_version_code=10090140&update_version_code=10090140&resolution=1080*2030&dpi=440&device_type=MI+6X&device_brand=xiaomi&language=zh&os_api=28&os_version=9&ac=wifi&package=com.luna.music&hybrid_version_code=10090140&device_model=MI+6X&tz_name=Asia%2FShanghai&tz_offset=28800&network_speed=5297&iid=&device_id=";
String result = null; HttpPost httpPost = new HttpPost(url); CloseableHttpClient client = HttpClients.createDefault(); Map<String, String> map = new HashMap<>(); map.put("body", null); StringEntity entity = new StringEntity(map.toString(), "UTF-8"); httpPost.setEntity(entity); httpPost.setHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"); try { HttpResponse response = client.execute(httpPost); if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(), "utf-8"); } } catch (IOException e) { e.printStackTrace(); result = "error"; }
return result; }
public static String get_playlist(String playlist_id){ String url = MessageFormat.format("https://beta-luna.douyin.com/luna/playlist/detail?playlist_id={0}&cursor&device_platform=android&os=android&ssmix=a&_rticket=1659112831329&cdid=4a6a891c-e1e1-4fec-8ef6-94f28a302b0b&channel=xiaomi_8478&aid=8478&app_name=luna&version_code=10090140&version_name=1.9.1&manifest_version_code=10090140&update_version_code=10090140&resolution=1080*2030&dpi=440&device_type=MI+6X&device_brand=xiaomi&language=zh&os_api=28&os_version=9&ac=wifi&package=com.luna.music&hybrid_version_code=10090140&device_model=MI+6X&tz_name=Asia%2FShanghai&tz_offset=28800&network_speed=5246&iid=&device_id=", playlist_id);
String result = null; HttpGet httpGet = new HttpGet(url); CloseableHttpClient client = HttpClients.createDefault(); httpGet.setHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1");
try { HttpResponse response = client.execute(httpGet); if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(), "utf-8"); } } catch (IOException e) { e.printStackTrace(); result = "error"; }
return result; }
public static void main(String[] args) { String musicrank = get_musicrank(); System.out.println("榜单列表:" + musicrank);
String musiclist = get_musiclist(0); System.out.println("歌单列表:" + musiclist); JSONObject obj = JSONObject.parseObject(musiclist); List<Object> Array = obj.getJSONArray("items"); JSONArray jsonArray = new JSONArray(Array); int listint = (int) (Math.random() * jsonArray.toArray().length); JSONObject obj1 = jsonArray.getJSONObject(listint); String list_id = obj1.getString("id"); System.out.println(list_id); String playlist = get_playlist(list_id); System.out.println("音乐列表:" + playlist);
obj = JSONObject.parseObject(playlist); Array = obj.getJSONArray("tracks"); jsonArray = new JSONArray(Array); listint = (int) (Math.random() * jsonArray.toArray().length); obj1 = jsonArray.getJSONObject(listint); String music_id = obj1.getString("vid"); System.out.println("音乐ID:" + music_id);
} }
|