聊聊这一年写的 SPS 音乐扩展 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
onvno
V2EX    分享创造

聊聊这一年写的 SPS 音乐扩展

  •  
  •   onvno 2019-01-03 15:29:24 +08:00 3550 次点击
    这是一个创建于 2551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年过年期间闲来想写个 Chrome 扩展,于是有了 SPS 这个听歌听广播的音乐扩展。回顾了下版本历史,业余时间一点点积累,大大小小也有了 35 个版本的迭代。推广不过是在年初的时候 V 站发过两篇帖子,偶尔有了自己觉得得意的功能,在朋友圈吹吹水。使用人数也上了千位,写这篇的时候是 1176,拍照留个念。

    SPS 介绍

    SPS 是两个名称的缩写:Search to Play the Song 和 Search to Play the Sound.当时不经意的一个缩写,正好对应它的两个形态,内心还有点小窃喜。

    Search to Play the Song

    就是听歌功能了,聊聊几个可能会关注的功能

    快速搜歌

    这是写音乐扩展的初衷,因为个人喜欢,工作起来经常会一整天的重复只听一首歌,而偏偏自己的小众需求,需要不停的切换网站,麻烦的很。就是这个原因开始搞起 SPS,稍后会感谢 Listen1,也会提到关于版权的一些个人想法。

    后台播放

    这个是早期一直沾沾自喜的功能。虽然实现并不复杂,但是解决了一个疑问:为什么听歌就必须要打开一个 Tab 页?而且 Tab 页很容易一不小心就关掉啊!所以实现了这个

    歌词显示

    听歌我是很少看歌词的,但是 SPS 的用户不干了,讨论群和商店里反复提出歌词的需求。上帝说要歌词,于是就有了。一个四两拨千斤的办法解决了之前不敢尝试的功能。

    单曲片段播放

    源于我只想听发如雪最后一段副歌部分,说到这里,最后一段你若撒野,今生我把酒奉陪,啦啦啦啦已经进入脑袋了。但是听歌只能从头开始,或者每次都要拖动到最后一段,何不食肉糜?错了,何不搞个片段播放功能,有了,也就是写这篇时候 2.4.2 的最新功能

    临时歌单

    歌单是不准备做的,但是用户还是对这一点提出了抱怨,总不能为了听一首歌每次都做一次搜索,于是有了一个临时歌单,最多不超过 40 条。麻雀虽小,但是可以支持账号同步。

    聊聊小细节吧。

    关于极简

    当时写 SPS 的时候,对自己说要极简,所以一切不需要的都不要展现,至今都没有单独给停止和暂停一个独立的按钮,只有一个意象化的播放按钮在哪里。点击可以播放,可以暂停。

    甚至是没有音量,没有进度条的,这一点是过于极端化的,在用户的要求下,还是在不起眼的地方加了这两个功能。

    说到极简,一个原因是不想改变现有界面的尺寸,调试过几次,改宽了或者改高了,总有种不是 SPS 的感觉。所以每次提到需要新功能的时候,考虑的都不是怎么实现,而是在哪里放。哈哈,无处安放的纠结。

    关于播放优化

    因为 SPS 是支持后台播放的,默认关闭音乐就需要打开后再点击按钮关闭。优化,必须优化掉,所以增加了应用的快捷键 Shift + Alt + Z,无需打开界面就可以播放 /暂停了

    关于搜索只展示 5 条

    因为 SPS 最早定位是搜歌听歌,所以按照正常思考,默认搜索 5 条如果没有原唱基本可以证明厂家没有版权,可以切换其他厂家了,所以默认搜索只展示 5 条结果。但是越来越多人使用时提到:我搜林俊杰怎么只有 5 首,你可以侮辱我,但不允许侮辱我偶像。当然上边对话我是瞎猜的,怎么只能 5 首,如何在不改边原有的逻辑上,满足更多的搜索结果需求。有了,感谢微博。实现如下:默认搜索林俊杰只会展示 5 首,但是不满意咋办,试试搜索林俊杰##30,也许能满足你的需求。

    关于经典歌词展示

    如果打开 SPS,也许你会注意到右下方的一些歌词,这是早期自己中意的功能,歌不光可以听,还可以读读。中间数据库没做好安全,被黑客删除过一次,而后花了一周含泪补全了。后边因为工作的原因,一直没有很好的扩展补充。

    Search to Play the Sound

    广播功能啦。源于完成搜歌功能上架后,回京的高速路上听着广播,想法一闪而过:为什么 SPS 不能加一个广播功能?于是回京的一周内有了 Search to Play the Sound

    国内广播 && 港台音乐广播

    为了方便听歌,所以完善了一些音乐广播的频道收藏

    收藏

    广播的地址,即可支持自定义添加自己的电台,最多不错过 10 条,也会账号同步

    版权 && 感谢

    从做 SPS 起,没有赚过一分钱,没有拿过一分的红包,都是自己想有一个功能,然后就埋头做了。当然依旧还是会被询问,所以版权意识,从这几个方面做起,看是否够满足大厂的准则:

    • 不接受任何捐助,不利用 SPS 工具赚一分钱
    • 不提供下载服务,仅仅是试听
    • 歌曲突出试听源,算是大厂的一个微不足道的推广入口
    • 不拉取大厂歌单,评论等特色资源

    感谢:

    排名没有先后,感谢网易云,虾米,QQ 音乐,Listen1, 优雅音乐

    末了

    毕业后就一直希望有机会能从事音乐行业。尽管五音不全,乐谱不识,但还是有份乐迷该有的执着,天津大学旁 CD 小店瞎转悠过,也整箱淘过打口 CD,基本能找到的所有乐评书都有看过。在代码和音乐之间,就让 SPS 来抹平吧.

    最新 2.4.2,片段播放的一个 gif,大概又要朋友圈要瑟下了

    Chrome 商店地址

    17 条回复    2019-01-10 12:38:33 +08:00
    sangleft
        1
    sangleft  
       2019-01-03 15:39:06 +08:00 via Android
    在用的,不错~
    yhhubnin
        2
    yhhubnin  
       2019-01-03 16:28:17 +08:00 via Android
    只有我从日推里筛歌?为啥都没日推?
    onvno
        3
    onvno  
    OP
       2019-01-03 16:38:06 +08:00 via iPhone
    @sangleft 哈哈,欢迎多多提建议
    onvno
        4
    onvno  
    OP
       2019-01-03 16:39:02 +08:00 via iPhone
    @yhhubnin 所以说这是个小众的扩展,方便快速找到自己要听的歌
    lyz745704689
        5
    lyz745704689  
       2019-01-03 17:25:12 +08:00
    已被安利
    yuanfnadi
        6
    yuanfnadi  
       2019-01-03 17:38:11 +08:00
    看了楼主的文章,突然想到自己腾讯云的服务器没有备份。赶紧创建了一个定时快照。
    onvno
        7
    onvno  
    OP
       2019-01-03 18:21:01 +08:00 via iPhone
    @lyz745704689 欢迎使用提意见和捉 Bug
    onvno
        8
    onvno  
    OP
       2019-01-03 18:22:17 +08:00 via iPhone
    @yuanfnadi 恩,一定要做好备份。以前都不注意觉得问题不大,当真自己头上了,悔不当初
    lynntime
        9
    lynntime  
       2019-01-04 20:08:19 +08:00 via iPhone
    最好不要日推,我现在对所有的根据听过的歌曲再推荐新歌的软件都不感冒…
    onvno
        10
    onvno  
    OP
       2019-01-04 20:35:15 +08:00 via iPhone
    @lynntime 哈哈,也没有考虑过日推,毕竟就是个扩展,纯粹为了听歌方便
    LongLights
        11
    LongLights  
       2019-01-06 21:54:21 +08:00
    onvno
        12
    onvno  
    OP
       2019-01-06 22:43:05 +08:00
    @LongLights 可以呀,其实扩展内留了一个二维码,有问题和建议都可以加群讨论的,也就没什么要说明的了。
    onvno
        13
    onvno  
    OP
       2019-01-06 22:43:48 +08:00
    @LongLights 还有想说下,网站很漂亮,
    suibianzai
        14
    suibianzai  
       2019-01-09 21:53:22 +08:00
    楼主原来是你做的!!!今天刚刚在商店给你留言支持了 顺便有几个反馈:
    1、怎么搜各大平台的歌单?
    2、播放榜单之后怎么快速切歌?好像找不到正在播放的列表?
    3、是否考虑把韩国 melon 音乐榜单加上去?身为棒婊在国内平台听歌太痛苦了
    其实比起收藏功能 我更看中如何方便地寻找想听的音乐 一是用插件做自己的音乐收藏不太现实 二是现在各种歌单很方便 当然如果能实现不同平台的音乐收录在同一个歌单。。。好吧这是梦
    onvno
        15
    onvno  
    OP
       2019-01-09 22:33:32 +08:00
    @suibianzai 多谢支持。不用掩饰,问到的几个问题正好就是 SPS 的软肋,逐一回答。
    1.各大平台歌单。SPS 初衷是为了快速方便找歌,考虑歌单和评论,包括登陆用户收藏都是各大音乐平台的特色资源,还是保持一个底线,做好方便搜歌的功能点到即止,不给大厂添麻烦。
    2.查看正在播放的列表。这个其实连带的应该包含几个功能:搜索结果再次打开仍旧展示,播放列表查看,切换下一首歌,功能会逐步完善,可能重点会在搜索结果缓存,切换功能上先完善
    3.韩国音乐确实不了解,回复的时候也特地搜索了下,国内确实没有 melon 的榜单,不过这倒不应该是借口,作为小船,完全可以快速的完善,所以这部分会更多考虑听众意见,把 SPS 做的有更多自己的特色

    关于最后说的,可以给 Listen1 打广告应该能实现你说的。SPS 也能临时提供一个最多 40 首的歌单,但是 SPS 提供临时歌单,是方便大家把搜索记录保存下来,所以就让 SPS 更纯粹点,功能不够强大只要能帮助我们一些小众需求就好。
    suibianzai
        16
    suibianzai  
       2019-01-10 11:56:18 +08:00
    @onvno 谢谢回复
    明白你的意思了 目前是在用 listen1 听歌单 不过界面确实没有 SPS 方便快捷 如你所说 目前 SPS 于我适用于两个主要场景:快速找到一首想听的歌和听听时下榜单流行 而且 bug 相对较少 用着舒服~
    昨天回复之后其实还忘了问 对歌手和专辑的搜索日后会支持吗?
    ---------------------------------------------------------------------------------------
    另外补充下韩国音乐榜单信息,万一你哪天考虑做进去可以参考:
    melon 周榜地址 https://www.melon.com/chart/week/index.htm
    国内音乐平台虾米和 q 音都有同步唯一一个韩国的 Mnet 榜单 虽然在本地算小众榜单
    onvno
        17
    onvno  
    OP
       2019-01-10 12:38:33 +08:00 via iPhone
    @suibianzai 专辑的搜索有人提到了,这个后续会考虑如何加,榜单可以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5600 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 03:21 PVG 11:21 LAX 19:21 JFK 22:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86