转跳到内容

不用打开检查界面就通过外链插入音视频控件的脚本+直接获取全民K歌电脑网页音频源文件的脚本(基于tampermonkey插件)


推荐贴

:mx040:如题所示,这次带来的是插入音视频控件的脚本,如下所示,我上一个翻唱视频也是用这个方法插入的

0D4q8iRt_o.png

 插入效果:(从上到下分别为,mp4mp3m4a,链接在表格里插入)

剧透

     
   
     

 

使用方法:

1.点击‘其他媒体’

98ldbW3O_o.png

2.点击后在弹出的窗口中输入对应的外链

1qKuq7ga_o.png

3.音视频控件会插入到上一次文本框点选的位置,如果没有选择位置,则会提示没有找到焦点

gqiXOGJx_o.png

该脚本目前还在测试阶段,支持内容类型为audio和video的多媒体外链,加入了正则表达式判断,如果是audio则控件高50px,宽80%,如果是video控件高宽设置为auto,如果内容类型不符合以上两种,则会弹出提示

yBbkUw4S_o.png

然后是关于直接获取全民K歌文件链接的脚本,效果如下图所示,在音乐标题后增加了一个链接

94uDYJ16_o.png

使用方法:点击红色的‘文件链接’,即会在新窗口打开音频文件的网站,在新页面里即可用控件进行下载,在下载之后可以直接把文件名后缀从m4a改成mp3,可以正常播放

如果大家对于脚本有什么意见,有发现什么bug也可以反馈,我会尽力实现的,大概:a11:

ver0.3更改:模仿幽月零前辈的操作,对于文本框展开进行了记录筛选,在每次有文本框展开时都会把查找点击位置的触发器插进去,在消息界面测试了,多个文本框出现时,点击位置也不会错误,对同一个楼层重复打开关闭修改界面也能正常定位插入了

在此特别鸣谢 @幽月零前辈的指导,非常感谢!

 

关于如何获取音视频外链的话,这里推荐用catbox进行中转,由于语音区算是音视频插入的大户,再加上本主题里有全民K歌的相关脚本,因此本主题放在语音区这边了

全民K歌下载-0.1.user.js

 

插入音乐视频-0.3.user.js

,由367ddd修改
注释
luaseeo luaseeo 90.00节操
  • 喜欢(+1) 5
  • 感谢(+1) 2
链接到点评

簡單試了下,能用,但是不好用,用光標去選太麻煩,個人來講覺得不如直接用prompt彈個窗口給用戶輸入,醜是比較醜,但是簡單有效

文件類型的話,在headers裡面的Content-Type也可以用,比如你的 https://files.catbox.moe/nuj2cy.mp3,可以很清楚看到audio/mpeg,又比如m4a就是audio/x-m4a(音頻應詃都是audio開頭,視頻是video。不過這玩意是對面給的回應,對方不按標準來你也拿他沒辦法×)

image hostimage host

 

m4a

 

 


至於怎麼獲取,用XMLHttpRequest是一種方法,你喜歡的話像fetch api也可以

J9yXJnAA_o.png

 

 


再補充一下,你把選項加入的操作寫在輸入框的click event裡面,但是這個輸入框不是在所有情況下都處於未展開的狀態的,最簡單的方法就是點開它發後嘗試發送一條空回覆,或者直接點修改,你會發現選項沒有被加上去

 

 


再再補充,因為很麻煩,還是覺得Mutation observer更好使,這玩意實現起來省事還通用。至於ui你就自己想辦法吧 (×) @367ddd

    const observer = new MutationObserver(function (mutations) {
        mutations.forEach((record) => {
            if (!record.addedNodes.length) return;

            for (const node of record.addedNodes) {
                if (node.tagName?.toLowerCase() === 'ul' && ['ipsMenu','ipsMenu_auto','ipsHide'].every(attr => node.classList.contains(attr))) {
                    const ipsMenuItem = document.createElement('li');
                    ipsMenuItem.classList.add('ipsMenu_item');

                    const link = document.createElement('a');
                    link.href = '#';
                    link.textContent = 'Test';

                    ipsMenuItem.appendChild(link);
                    node.appendChild(ipsMenuItem);
                }
            }
        });
    });

    observer.observe(document.querySelector('body'), {
        childList: true,
    });

 

,由幽月零修改
注释
367ddd 367ddd 50.00节操 再次赞美代码大佬,0.3更新换上observer了
367ddd 367ddd 50.00节操 赞美代码大佬
链接到点评
  • 2 周后...
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款