比如你有一大波歌曲列表, 比如是iTunes里面的歌單或者是Spotify里面的歌單, 然后你想把他們都收藏在蝦米里面, 怎么辦?
讓我們一起, 走進(jìn)蝦米?.
首先你要想辦法弄出這樣一個格式的歌單: 歌名 空格 歌手比如放在excel里面:
然后新建一張精選集, 新建了以后, 在一個很不起眼的地方, 點(diǎn)擊"添加歌曲" (吐槽下UX啊, 對于一個新建的歌單, 添加歌曲幾乎是最重要的一步吧, 為什么不做的突出一點(diǎn)呢? )
然后選導(dǎo)入列表
把你剛才弄好的列表復(fù)制進(jìn)去, 點(diǎn)擊導(dǎo)入列表. 然后你會發(fā)現(xiàn)蝦米已經(jīng)自動匹配了所有的歌曲.
但是奇葩的是, 下一步怎么添加呢?
點(diǎn)擊歌曲的名字是跳轉(zhuǎn)到了歌曲的頁面, 總不可能一個一個點(diǎn)開, 跳轉(zhuǎn), 再添加吧?
其實(shí), 你鼠標(biāo)在這個界面上晃一晃, 就會發(fā)現(xiàn): 這個列表里面其實(shí)是有"試聽"和"添加"兩個按鈕的, 只是他們并沒有顯示出來.
為什么沒有顯示出來呢? 查看源碼, 是因?yàn)檫@些button使用的背景圖片已經(jīng)不在了
不在無所謂, 就算在的話, 我們也不可能一個一個點(diǎn)擊添加吧. 我自己準(zhǔn)備的歌單有200首, 難道要我點(diǎn)200次? 這個方案顯然不能scale嘛.
程序員的特點(diǎn)就是懶. 既然不想手點(diǎn), 那就靠電腦點(diǎn)吧. 打開console, 執(zhí)行以下語句:
$("#importContainer.song_list a.add").click()
然后, 如果運(yùn)氣好的話, 你會發(fā)現(xiàn)所有的歌已經(jīng)被添加了.
但是我發(fā)現(xiàn), 有的歌就是死活添加不了, 甚至你手動到歌曲頁面去添加也不行, 比如這首"broken strings"
就是任性.
好吧. 我們換個思路.
不能添加, 但是我們可以試聽啊. 試聽的意思, 就是這些歌曲會被添加到那個播放的頁面, 然后你會發(fā)現(xiàn)在播放的頁面, 其實(shí)是提供批量操作的:
好了, 那么問題就轉(zhuǎn)換為"如何把所有歌曲添加到試聽列表".
答案也在那個隱藏了各個按鈕的導(dǎo)入界面之中.
我們在console里執(zhí)行這個語句:
$("#importContainer.song_list a.play").click()
稍等一會, 你會發(fā)現(xiàn)歌曲都被添加到播放的頁面里面去了. 這里有兩點(diǎn)注意:
- 播放器的頁面最好提前打開, 不然有的瀏覽器會默認(rèn)不自動彈出那個播放頁面
- 一次不要弄太多歌, 估計(jì)蝦米應(yīng)該是做了一些限制. 我在短時間內(nèi)"試聽"了100首歌左右, 發(fā)現(xiàn)任何歌曲都不能試聽了. 怎么辦呢? 換個瀏覽器就可以了. 當(dāng)然, 蝦米的這個試聽限制也是有時限的, 過一段時間就解封了.
然后你就知道怎么辦了吧, 添加到精選集或者是收藏就隨便你了.
后記:
國內(nèi)音質(zhì)不錯的云音樂, 在美國還能用的, 基本上就是網(wǎng)易云音樂和蝦米了. 網(wǎng)易云音樂算是后起之秀.
因?yàn)槲r米的歌單的封閉, 網(wǎng)易云音樂竟然在某一版app中還提供了導(dǎo)入蝦米音樂的功能 (后來可能是由于版權(quán)問題去掉了). 可是問題是, 蝦米是沒有開放API的 (較真的是, 算開放了一點(diǎn)點(diǎn)), 那么網(wǎng)易云音樂是怎么導(dǎo)入你的音樂的呢? 它的方法是要求你輸入蝦米的賬號和密碼, 那么顯然是通過后臺利用你的信息登錄去抓取的.
方便是方便, 但是大家不覺得不安全嗎? 有了你的用戶名和密碼, 網(wǎng)易是想干嘛就干嘛啊.
后來, 也是有各種民間 兵器來導(dǎo)出蝦米歌單到網(wǎng)易云音樂.
后頭一看, 這里面說明了什么問題呢?
- 歌單這種東西, 說到底應(yīng)該是屬于人民的. 你不能靠挾持歌單來試圖留存用戶.
- 只要你把功能做到在網(wǎng)頁上可以用, 那么就總有辦法用javascript去自動化所有用戶能做的事情. 仿效Atwood那句名言:
"凡是用戶在網(wǎng)頁上能做的事情, 都將被javascript自動化"