【面向小白】获取自己已发布歌曲的歌词

2022/10/03438 浏览综合
有些时候一些小白用户发送了许多填词作品,但填的歌词当时没有保存下来,现在想把歌词整体保存下来,却发现只能一句一句复制
TapTap
为了能够更加方便的把自己的填词作品歌词给导出来,我趁上班摸鱼时机,开发了一个获取歌词的小脚本,帮助大家更加轻松的获取歌词
然而由于技术能力有限,使用脚本时候,有一点点要求
你需要准备以下东西:
电脑一台,正经的(就是别是阉割版的,有可能装不上软件win10, 微软账号,正经win10自带的edge浏览器
一般来说,就微软账号大家可能没有,剩下应该会有吧,没电脑肯定不行,毕竟跑脚本需要电脑。win11不行,bug太多容易出现问题。
OK,准备好以上的东西后,就可以按照以下步骤操作了
1.软件插件安装(只需操作一次,后续在获取歌词都不用重新安装软件了)
首先去微软商店下载一个软件
TapTap
搜索power automate
TapTap
这是一个微软官方出的一款自动化操作软件,安全无毒。
然后点击右侧的获取按钮,由于我已经下载过了所以它显示的是打开
TapTap
点击获取后可能要你登录微软账号,这时候你把你的微软账号登上,就可以下载了。
当然了,如果你没有微软商店,你也可以通过我分享的链接下载安装包安装
Setup.Microsoft.PowerAutomate.exe
提取码: ll27
TapTap
安装完软件之后,软件还会要求你登录微软账号,没办法,毕竟是微软出的东西。。
TapTap
登录完之后,点击新建流
TapTap
然后输入名称,名称任意
TapTap
之后点击创建
进入如下界面后点击工具-浏览器拓展-edge
TapTap
TapTap
之后他会自动打开浏览器跳转到插件安装页面
TapTap
然后点击获取按钮,在点击添加拓展
TapTap
TapTap
这插件也是微软官方出的,不会有问题,放心
之后复制下面的内容:
Display.InputDialog Title: $'''URL''' Message: $'''请输入分享链接''' InputType: Display.InputType.SingleLine IsTopMost: False UserInput=> UserInput ButtonPressed=> ButtonPressed
WebAutomation.LaunchEdge.LaunchEdge Url: UserInput WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
SET NewVar TO 0.48
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() { /*your code here, return something (optionally); */
document.getElementById(\"music-range\").setAttribute(\"step\",\"%NewVar%\")}''' Result=> Result
MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: Browser TextToSend: $'''{Tab}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: True
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {return document.getElementById(\"time-current\").innerText}''' Result=> runTime
Variables.CreateNewList List=> List
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {var a= document.getElementById(\"song_name\").innerText;return a;}''' Result=> songName
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {var a= document.getElementById(\"time-total\").innerText;return a;}''' Result=> totalTime
Variables.AddItemToList Item: songName List: List
LOOP WHILE (runTime) <> (totalTime)
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {var c=document.getElementById(\"lyrics\");var p=c.querySelectorAll(\"p\");return p[0].innerText;}''' Result=> lyric
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {return document.getElementById(\"lyrics\").querySelectorAll(\"p\")[0].getAttribute(\"data-ts\")}''' Result=> Result1
MouseAndKeyboard.SendKeys.FocusAndSendKeysByInstanceOrHandle WindowInstance: Browser TextToSend: $'''{Right}{Right}''' DelayBetweenKeystrokes: 1 SendTextAsHardwareKeys: False
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {return document.getElementById(\"time-current\").innerText}''' Result=> runTime
WebAutomation.ExecuteJavascript BrowserInstance: Browser Javascript: $'''function ExecuteScript() {return document.getElementById(\"lyrics\").querySelectorAll(\"p\")[0].getAttribute(\"data-ts\")}''' Result=> Result2
IF Result1 <> Result2 THEN
Variables.AddItemToList Item: lyric List: List
END
END
Variables.AddItemToList Item: lyric List: List
WebAutomation.CloseWebBrowser BrowserInstance: Browser
System.GetEnvironmentVariable.GetEnvironmentVariableFromScope Name: $'''TEMP''' Scope: System.EnvironmentVariableType.User Value=> temp
Text.SplitText.SplitWithDelimiter Text: temp CustomDelimiter: $'''\\''' IsRegEx: False Result=> TextList
Cmd.Open.Open Directory: $'''c:\\users\\%TextList[2]%\\desktop''' Session=> CmdSession
Cmd.Write Session: CmdSession Command: $'''ehco 123 >> result.txt ''' SendEnter: True
LOOP FOREACH CurrentItem IN List
File.WriteText File: $'''c:\\users\\%TextList[2]%\\desktop\\result.txt''' TextToWrite: CurrentItem AppendNewLine: True IfFileExists: File.IfFileExists.Append Encoding: File.FileEncoding.UTF8
END
Cmd.Write Session: CmdSession Command: $'''notepad c:\\users\\%TextList[2]%\\desktop\\result.txt''' SendEnter: True
Cmd.Close Session: CmdSession
复制完后在软件界面右键粘贴
TapTap
粘贴完后会显示出31行内容
TapTap
,之后将运行延长调成1毫秒,加快速度
TapTap
最后点击保存,完事
TapTap
以上操作,只需操作一次,后续想获取歌词,直接打开软件点击脚本运行就可以了
2.运行脚本
运行软件后,会弹出一个窗口,让你输入url,就是歌曲的分享链接地址
分享地址通过以下方式获得:
TapTap
之后将链接发给电脑
TapTap
要的是英文链接,不要把中文内容也复制了哦
之后将这个链接复制到弹窗中
TapTap
点击ok之后就不用管了,他会自动获取歌词,
这时候你不要操作鼠标键盘(很重要)
等着就行,完事后,软件会自动弹出记事本软件打开获取的歌词
TapTap
软件速度方面emmm,一般,速度不能确定,毕竟这款软件,也不是很稳定,win11 用不了,bug多。你能做的就是调节运行延迟为1毫秒
然后你可以设置这个数值大小
TapTap
双击修改数值大小
数值越大越快,但同时也可能出现,较短歌词获取不到的情况,如果你的歌曲较慢,每句歌词,都时间很长,你就可以调大,调成0.6啥的,但不能大于0.69,否则软件会陷入死循环。
TapTap
运行软件时,建议点击编辑,进入编辑界面后运行
TapTap
TapTap
好了,这就是这篇文章的全部内容了,可能稍微有些复杂,但还行,就是这个软件安装,插件安装,复制脚本费点劲,剩下的都还好
最后还要说一句:
严禁用于剽窃他人歌词成果!!
严禁用于剽窃他人歌词成果!!
严禁用于剽窃他人歌词成果!!
严禁用于剽窃他人歌词成果!!
严禁用于剽窃他人歌词成果!!
重要的事情说五遍!
4
4