吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3341|回复: 60
收起左侧

[其他原创] 油猴脚本-获取音乐磁场下载链接

  [复制链接]
犹抱琵琶半遮面 发表于 2023-8-8 14:14
本帖最后由 犹抱琵琶半遮面 于 2023-8-8 14:50 编辑

[JavaScript] 纯文本查看 复制代码
// ==UserScript==
// @name         音乐磁场-下载音乐
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  在音乐播放器下方添加下载按钮,点击即可下载音乐
// @AuThor       Your Name
// @license      MIT
// @match        *://*.hifini.com/**
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 创建下载按钮
    function createDownloadButton(url) {
        var downloadButton = document.createElement('a');
        downloadButton.href = url;
        downloadButton.innerText = '下载';
        downloadButton.style.display = 'block';
        downloadButton.style.marginTop = '10px';
        return downloadButton;
    }

    // 获取音乐下载地址
    function getMusicDownloadUrl() {
        var ap4 = window.ap4;
        if (ap4 && ap4.music) {
            var music = ap4.music;
            return music.url;
        }
        return null;
    }

    // 在页面中插入下载按钮
    function insertDownloadButton() {
        var downloadUrl = getMusicDownloadUrl();
        if (downloadUrl) {
            var playerElement = document.getElementById('player4');
            var downloadButton = createDownloadButton(downloadUrl);
            playerElement.parentNode.insertBefore(downloadButton, playerElement.nextSibling);
        }
    }

    // 监听页面加载完成事件,在页面中插入下载按钮
    window.addEventListener('load', function() {
        insertDownloadButton();
    });
})();

大致思路是: 在页面加载完的时候已经把音乐地址返回给你了,拼接上当前的origin路径和返回的url路径就可以跳转到音乐下载页面
Snipaste_2023-08-08_13-56-17.png
这里我们只需要判断ap4是否存在来显示下载按钮;
下载按钮放到了播放器的下边;


本来想做的更好但奈何技术不够,希望有大佬看见了给一点意见
在跳转到新的页面之后
Snipaste_2023-08-08_14-01-07.png

有一个video标签,里边的src就是真正的图片下载地址,但是 因为上边的地址会变,油猴插件匹配不上;到这里就没有思路了


最后附上油猴插件的地址: https://greasyfork.org/zh-CN/scripts/472697-%E9%9F%B3%E4%B9%90%E7%A3%81%E5%9C%BA-%E4%B8%8B%E8%BD%BD%E9%9F%B3%E4%B9%90

免费评分

参与人数 6吾爱币 +12 热心值 +5 收起 理由
a12333 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
TADYCB + 1 + 1 我很赞同!
wanfon + 1 + 1 热心回复!
ifdess + 1 + 1 热心回复!
灵剑丹心 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 犹抱琵琶半遮面 发表于 2023-8-8 14:15
本帖最后由 犹抱琵琶半遮面 于 2023-8-8 15:45 编辑

下载地址: https://greasyfork.org/zh-CN/scripts/472697-%E9%9F%B3%E4%B9%90%E7%A3%81%E5%9C%BA-%E4%B8%8B%E8%BD%BD%E9%9F%B3%E4%B9%90

音乐磁场地址: https://www.hifini.com/forum-1.htm
 楼主| 犹抱琵琶半遮面 发表于 2023-8-9 11:28
a6087071 发表于 2023-8-9 10:59
ap4是啥时候传入window的

Snipaste_2023-08-09_11-25-44.png
在这个页面加载完成之后,在 htm请求里已经创建了ap4这个变量,脚本里使用的是window.ap4, 当然直接使用ap4也是可以的


可以在 网站里的console里直接输入ap4可以获取音乐的详细信息
Snipaste_2023-08-09_11-28-28.png
想你当年荷风微 发表于 2023-8-9 09:50
犹抱琵琶半遮面 发表于 2023-8-9 09:49
先看管理面板里是否安装了  音乐磁场-下载音乐  这个脚本,并且是启用状态的
然后再看脚本是否是最新的, ...

就是这样操作的没问题,算了不用360浏览器了
想你当年荷风微 发表于 2023-8-9 09:46
犹抱琵琶半遮面 发表于 2023-8-9 09:40
你好,刚才下载了360极速浏览器测试了一下,是没问题的哦;如果页面不显示下载按钮尝试刷新一下;也要确保脚 ...

我安装的没问题吧
微信截图_20230809094342.png
想你当年荷风微 发表于 2023-8-9 09:02
不支持360极速浏览器吗
no2013 发表于 2023-8-8 17:18
QQ音乐可以搞吗?
zhaohang82 发表于 2023-8-8 16:00
感谢分享,正在找的音乐下载器,谢谢
LIliang628000 发表于 2023-8-8 15:42
谢谢分享,已经下载安装了插件。
 楼主| 犹抱琵琶半遮面 发表于 2023-8-8 16:03
alexand 发表于 2023-8-8 16:01
主要平台都可以吗

仅支持音乐磁场哦,里边可以搜索大部分歌曲
moxieqiankun 发表于 2023-8-8 16:18
感谢分享,下载试用下
mashuai520 发表于 2023-8-8 16:33
干的漂亮,正常下载中
zhuxiangyu1024 发表于 2023-8-8 16:36
[JavaScript] 纯文本查看 复制代码
// ==UserScript==
// [url=home.php?mod=space&uid=170990]@name[/url]         音乐磁场-下载音乐
// [url=home.php?mod=space&uid=467642]@namespace[/url]    http://tampermonkey.net/
// [url=home.php?mod=space&uid=1248337]@version[/url]      1.1
// @description  在音乐播放器下方添加下载按钮,点击即可下载音乐
// [url=home.php?mod=space&uid=686208]@AuThor[/url]       Your Name
// @license      MIT
// [url=home.php?mod=space&uid=195849]@match[/url]        *://*.hifini.com/**
// [url=home.php?mod=space&uid=609072]@grant[/url]        none
// ==/UserScript==

(function() {
    'use strict';

    // 创建下载按钮
    function createDownloadButton(url) {
        var downloadButton = document.createElement('div');
        downloadButton.onclick=download;
        downloadButton.innerText = '下载';
        downloadButton.style.display = 'block';
        downloadButton.style.marginTop = '10px';
        return downloadButton;
    }
   function download(){
    fetch(getMusicDownloadUrl(), {
  method: 'GET',
  redirect: 'follow',
})
.then(response => response.blob())
.then(blob => {
  const url = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = url;
  a.download = window.ap4.music.title+'-'+window.ap4.music.author+'.m4a';
  a.style.display = 'none';
  document.body.appendChild(a);
  a.click();
  URL.revokeObjectURL(url);
})
   }
    // 获取音乐下载地址
    function getMusicDownloadUrl() {
        var ap4 = window.ap4;
        if (ap4 && ap4.music) {
            var music = ap4.music;
            return music.url;
        }
        return null;
    }

    // 在页面中插入下载按钮
    function insertDownloadButton() {
        var downloadUrl = getMusicDownloadUrl();
        if (downloadUrl) {
            var playerElement = document.getElementById('player4');
            var downloadButton = createDownloadButton(downloadUrl);
            playerElement.parentNode.insertBefore(downloadButton, playerElement.nextSibling);
        }
    }

    // 监听页面加载完成事件,在页面中插入下载按钮
    window.addEventListener('load', function() {
        insertDownloadButton();
    });
})();
jacktong85 发表于 2023-8-8 16:37
这个方法不错,用IDM 也可以直接下载
 楼主| 犹抱琵琶半遮面 发表于 2023-8-8 16:47
zhuxiangyu1024 发表于 2023-8-8 16:36
[mw_shl_code=javascript,true]// ==UserScript==
// @name         音乐磁场-下载音乐
// @namespace    ...

刚才试了一下这个脚本,有一个问题就是,这个网站是http请求的,跳转之后的url是https的,所以发送异步请求的时候会被浏览器认为不安全的访问取消了这次访问
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表