[插件推荐] lyrics-fetcher

Genius 获取歌词并保存。支持 emms 。

emms 自带的歌词功能只支持 lrc 格式,比较难批量下载。所以最近翻 Melpa 时看到一个新包,完美符合需要。

使用时要设置代理:

(setq request-curl-options
      (nconc '("--proxy" "http://127.0.0.1:xxxx")))
5 个赞

现在 lyrics-fetcher 已经支持爬取 lrc 格式的歌词了,用的是网易云的 api。

最近发现 emms 在歌词跳转方面不够精确,无法跳到想要的歌词,于是写个了函数,利用 lyrics-fetcher 爬取的 lrc 歌词里的时间戳来获取精确的时间,这样就可以在看歌词的时候让 emms 快速播放目标歌词了。

(use-package lyrics-fetcher
  :ensure t
  :after emms
  :bind (:map lyrics-fetcher-view-mode-map
	      ("RET" . lyrics-fetcher-neteasecloud-lyrics-jump))
  :config
  (lyrics-fetcher-use-backend 'neteasecloud)

  (defun lyrics-fetcher-neteasecloud-lyrics-jump ()
    (interactive)
    (if (derived-mode-p 'lyrics-fetcher-view-mode)
	(let* ((timestamp (save-excursion
			    (beginning-of-line)
			    (thing-at-point 'sexp ':no-properties)))
	       (minutes (string-to-number
			 (progn
			   (string-match "\\([[:digit:]]\\{2\\}\\):\\([[:digit:]]\\{2\\}\\).\\([[:digit:]]\\{2\\}\\)" timestamp)
			   (match-string 1 timestamp))))
	       (seconds (string-to-number
			 (match-string 2 timestamp)))
	       (jiffies (string-to-number
			 (match-string 3 timestamp))))
	  (if timestamp
	      (emms-seek-to (+ (* 60 minutes) seconds (* 0.01 jiffies)))
	    (message "No timestamp found!")))
    (message "This function must be called in lyrics-fetcher-view-mode!"))))

现在用 emms 听歌就很舒服了 :blush:

3 个赞

有点意思,能实现歌词滚动么?

歌词滚动是 emms 自带的,可以显示在 modeline 或 minibuffer(见上图的 minibuffer)。

Cool!对你的歌曲专辑很感兴趣啊 :joy:

我主要听音乐剧,本地上都是一些经典的音乐剧,比如《Cats》《The Phantom of the Opera》《Hamilton》(强推)等,还有就是 Queen 的 CD 全集。

emms 就很适合我这种以专辑听歌的模式。

1 个赞

敢问哪里下载的?比如 Lion King

音乐剧的资源挺分散的。

  1. 各大音乐论坛
  2. 各大资源站
  3. spotify-downloader 从 Youtube 上下

就按照上面的顺序找下来,优先找无损(音乐剧的资源真的很难找