油猴网易云音乐下载脚本教程

最近学习了一个网易云音乐下载脚本,这就分享一下

1.获取歌曲的id

根据api接口替换其中的id拿到整个歌曲的mp3链接

http://music.163.com/song/media/outer/url?id={ID数字}.mp3

脚本代码:
复制到 油猴即可

// ==UserScript==
// @name         网易云歌曲下载
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  网易云歌曲下载
// @author       MRS
// @match        https://music.163.com/*
// @icon         https://s1.music.126.net/style/favicon.ico?v20180823
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    // Your code here...

    window.onload = () => {
        main();
    }


    function main() {
        let id = getId();
        let link = getSongDownloadLink(id);
        let buttonBox = getButtonBox();
        // console.log(id)
        // console.log(link)
        // console.log(buttonBox)

        addButton(buttonBox, link);
    }

    //页面加载时获取url当中的歌曲Id
    function getId() {
        return window.location.href.split("id=")[1]
    }
    //获取歌曲外链下载地址
    function getSongDownloadLink(id) {
        return `http://music.163.com/song/media/outer/url?id=${id}.mp3`;
    }

    //获取iframe中的元素
    function getButtonBox() {
        let iframe = document.getElementById('g_iframe');
        let buttonBox = iframe.contentWindow.document.querySelector('#content-operation');
        return buttonBox;
    }

    //创建按钮
    function addButton(buttonBox, link) {

        //创建a元素
        let a = document.createElement('a');
        //让a元素继承网易云按钮的所有样式
        a.classList.add('u-btni', 'u-btni-dl');
        //在a里面创建一个i标签
        a.innerHTML = '<i style="color:red;">直接下载</i>';
        a.href = link;
        a.target = '_blank';
        //把a元素添加到所有按钮之后
        buttonBox.append(a);

    }

})();

效果

posted @ 2022-08-15 14:22  长情c  阅读(3947)  评论(0)    收藏  举报