打破国内音乐的版权藩篱 Owning rights to music playing all by yourself

I have done with switching my audio player between multiple applications.

Generally the workflow of my listening to a new song always starts from hearing it from somewhere, then recursively searching it from one player to another. The copyrights of a commercial music was initially intended to protect the interests of composers and incentivize them for more and better works. However, they have developed on a mistaken road and now produced a barrier, prohibiting multiple organizations sharing. What’s worse, more and more exclusively paid music demobilizes people from hearing them, at least works for me. It is the software companies who finally benefit from this trend.

Therefore I have tried several approaches bypassing the conventional music playing and found the solution.

Conventional music playing

I used to stream music from popular applications. They have their exclusive music repositories, plus the following additional features favored by myself:

  • Multi-device support
  • Song recommendations
  • Notifications of recent songs (of the customized singers)
  • Cloud storage

Bypassing music playing

The current exclusive-owned copyrights to music are ridiculous. They greatly harm user experience, and cost more: one VIP membership per month per app, plus more and more special payments for a EP or every single music in the album (!). The most convenient way of collecting the music is to watch from video websites (Youtube, bilibili, …) ignoring their MV.

I found the youtube-dl tool is fantastic for downloading the MV to your local disk and converting it to pure audio files. This tool is a little complicated and has many options. I usually use it with the following parameters. I would pack it into a bat and execute it with the video link to a song:

1
youtube-dl.exe "%1" --output "%(artist)s - %(title)s.%(ext)s" --xattrs --add-metadata --embed-thumbnail --audio-quality 0 --audio-format mp3 --extract-audio --continue --proxy "socks5://127.0.0.1:1080" --ffmpeg-location "C:\Tools\ffmpeg-n4.3.1-29\bin" --yes-playlist

Brief description:

  • --output formalizes the eventual music file. The uploaded video does not have a quite correct metadata, though.
  • --xattrs --add-metadata --embed-thumbnail tries their best to keep the metadata into the final mp3 file.
  • --audio-quality 0 keeps the highest music quality
  • --audio-format mp3 --extract-audio specifies the music converting
  • --continue allows to resume from break-point
  • --proxy "socks5://127.0.0.1:1080" specifies the proxy to Youtube server.
  • --ffmpeg-location "C:\Tools\ffmpeg-n4.3.1-29\bin" is the location of a third-party dependency ffmpeg. It does the video-to-audio conversion. The official website of ffmpeg is a disaster, providing no direct binary or building instruction. But I found this guy completes very well: https://github.com/BtbN/FFmpeg-Builds/releases. Just download the win64-lgpl-shared version for a minimizing binary. It works for me. I do not have mysophobia for open-source softwares.
  • yes-playlist allows downloading from a playlist. Just copy the playlist link. --playlist-start --playlist-end allows fine-grained management on playlist downloading if you do not want the full list.

Enjoying your music from any device

It is far from enough if you only can listen to music locally from your laptop. I tried several approaches for music sharing.

At first, I tried the cloud storage provided by the popular music applications. The storage limit of Netease music is enough for me. However, I read others reports that the app would delete your uploads intentionally, just to protect their exclusive copyrights. For example, you can successfully upload Jay Chou’s music because Netease does not have their rights. But once you want to upload Hua Chenyu’s songs, escaping the VIP requirement, it is likely they will remove them from your libraries. Another limitation is that those applications do not provide a general (e.g., RESTful) interface for synchronizing the music. To get off the topic, I think domestic companies lack the geek air.

Finally I used a third-party application called glazba, a nearly-free application in iOS app store. It supports music streaming from Apple music, Dropbox, Google drive, OneDrive and local devices. I choose google drive to synchronize my songs, along with other backup files.

So far, the music downloading, music storing and music streaming are completely from different organizations, with no interests at all. The synchronization is done automatically by google drive sync. Finally the music experience is fine.

The future work is to resolve personal recommendations and new song notifications. It may be possible just crawling the content from websites of QQMusic and Netease music.

Conclusion

This article is written in memory of the back of youtube-dl on Github. Github even provides a million dollars addressing the future legal proceedings. Good for them!

---以上---