descargas.appmusic.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import axios from 'axios';
  2. import cheerio from 'cheerio';
  3. import qs from 'qs';
  4. let handler = async (m, { conn, text, usedPrefix, command }) => {
  5. if (!text) return m.reply(`Ejemplo de uso: ${usedPrefix + command} https://music.apple.com/us/album/glimpse-of-us/1625328890?i=1625328892`);
  6. const apiUrl = `https://deliriussapi-oficial.vercel.app/download/applemusicdl?url=${encodeURIComponent(text)}`;
  7. const apiResponse = await fetch(apiUrl);
  8. const delius = await apiResponse.json();
  9. const { name, artists, image, duration, download } = delius.data;
  10. m.react("⌛");
  11. try {
  12. if (delius.status) {
  13. const texto = `*• Titulo:* ${name}\n*• Artistas:* ${artists}\n*• Duración:* ${duration}`;
  14. conn.sendFile(m.chat, image, 'cover.jpg', texto, m, null, fake);
  15. await conn.sendMessage(m.chat, { document: { url: download }, fileName: `${name}.mp3`, mimetype: 'audio/mp3', }, { quoted: m });
  16. m.react("✅");
  17. } else {
  18. throw new Error("No se encontró la canción.");
  19. }} catch (err) {
  20. console.error("Error resultados 1", err);
  21. try {
  22. const appledown = {
  23. getData: async (urls) => {
  24. const url = `https://aaplmusicdownloader.com/api/applesearch.php?url=${urls}`;
  25. try {
  26. const response = await axios.get(url, { headers: { 'Accept': 'application/json', 'User-Agent': 'MyApp/1.0' } });
  27. return response.data;
  28. } catch (error) {
  29. console.error("Error en getData:", error.message);
  30. return { success: false, message: error.message };
  31. }},
  32. getAudio: async (trackName, artist, urlMusic, token) => {
  33. const url = 'https://aaplmusicdownloader.com/api/composer/swd.php';
  34. const data = { song_name: trackName, artist_name: artist, url: urlMusic, token: token };
  35. const headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'MyApp/1.0' };
  36. try {
  37. const response = await axios.post(url, qs.stringify(data), { headers });
  38. return response.data.dlink;
  39. } catch (error) {
  40. console.error("Error en getAudio:", error.message);
  41. m.react("❌");
  42. return { success: false, message: error.message };
  43. }},
  44. download: async (urls) => {
  45. const musicData = await appledown.getData(urls);
  46. if (musicData && musicData.success) {
  47. const encodedData = encodeURIComponent(JSON.stringify([musicData.name, musicData.albumname, musicData.artist, musicData.thumb, musicData.duration, musicData.url]));
  48. const url = 'https://aaplmusicdownloader.com/song.php';
  49. const headers = { 'content-type': 'application/x-www-form-urlencoded', 'User-Agent': 'MyApp/1.0' };
  50. const data = `data=${encodedData}`;
  51. try {
  52. const response = await axios.post(url, data, { headers });
  53. const htmlData = response.data;
  54. const $ = cheerio.load(htmlData);
  55. const trackName = $('td:contains("Track Name:")').next().text();
  56. const albumName = $('td:contains("Album:")').next().text();
  57. const duration = $('td:contains("Duration:")').next().text();
  58. const artist = $('td:contains("Artist:")').next().text();
  59. const thumb = $('figure.image img').attr('src');
  60. const urlMusic = urls;
  61. const token = $('a#download_btn').attr('token');
  62. const downloadLink = await appledown.getAudio(trackName, artist, urlMusic, token);
  63. return { name: trackName, albumname: albumName, artist, url: urlMusic, thumb, duration, token, download: downloadLink };
  64. } catch (error) {
  65. console.error("Error en download:", error.message);
  66. m.react("❌");
  67. return { success: false, message: error.message };
  68. }}
  69. return { success: false, message: "No se pudo obtener los datos." };
  70. }};
  71. let dataos = await appledown.download(text);
  72. if (dataos.success) {
  73. const { name, albumname, artist, url, thumb, duration, token, download } = dataos;
  74. conn.sendFile(m.chat, thumb, 'cover.jpg', `*• Titulo:* ${name}\n*• Artistas:* (${artist}/${duration})_\n*• URL:* ${url}`, m, null, fake);
  75. await conn.sendMessage(m.chat, { document: { url: download }, fileName: `${name}.mp3`, mimetype: 'audio/mp3' }, { quoted: m });
  76. m.react("✅");
  77. } else {
  78. m.react("❌");
  79. m.reply("No se pudo obtener la canción.");
  80. }} catch (err) {
  81. console.error("Error final:", err);
  82. m.react("❌");
  83. m.reply("Ocurrió un error al intentar obtener el enlace de descarga.");
  84. }}};
  85. handler.help = ['applemusic'];
  86. handler.tags = ['downloader'];
  87. handler.command = /^(applemusic)$/i;
  88. handler.register = true;
  89. handler.limit = 1;
  90. export default handler;