-
Hello, I am Misnad. I have a habit of downloading and keeping my Music and then listening them offline instead of streaming them. The way it worked was:
- I hear a song and likes it
- Shazam it to find the song name
- Use a script I wrote to fetch metadata of the song using the song name from Spotify developer API.
- Use yt-dlp to search and download the song, extract audio and then use the eye3d to write the metadata from Spotify.
- It mostly worked by not always.
-
This was how it went until I found Picard. Picard was exactly what I wanted. Now I just have to download the song and use Picard to do the rest. I have been using Picard for quite a while now. I have also tried ListenBrainz, but didnāt keep using it.
-
And so, while skimming through GSoC organisations list, MusicBrainz caught my eyes. And when looking through the project ideas list, I found BookBrainz. I have somehow never heard of that before. And I found this project for a new Calibre plugin.
-
I have been using Calibre for a very long time. And the way I use it (still today) is worse than how I used to do with music. Download the book, and manually enter the metadata.
-
So, on seeing this project idea, I had that feeling when I first found out Picard. This must be exactly what I need for my digital book collection.
-
Contact Information
-
Nickname: Misnad
-
Matrix: @misnad:matrix.org
-
Email: misnadqasim@gmail.com
-
Mastodon: @myself@mastodon.online
-
Project
-
I very much like the idea of having a plugin for Calibre that connects to BookBrainz to get metadata of the book in one click. This plugin will allow users to search for editions by name and author and improve the metadata of e-books using the MusicBraniz database. This will be a new revival of the old and abandoned CaliBBre plugin.
-
Goals of the project
- Create an installable Calibre plugin.
- To allow searching for books by name, author, etc.
- To fetch metadata from BookBrainz and write them.
- Syncing collections between Calibre and BookBrainz
-
Screenshot of the old plugin
-
Milestone
-
Familiarise with Calibre Plugin API and do a basic setup
-
Familiarise with BookBrainz API and implement search
-
Extract metadata using API
-
Add feature for users to apply fetched metadata
-
Add feature to sync between BookBraiz and Calibre database
-
-
Community affinities
- What type of books do you read?
- Mostly about Computer Science and few biography
- What aspects of MusicBrainz/ListenBrainz/BookBrainz/Picard interest you the most?
- I use Picard a lot. For the project, Iām interested in BookBrainz.
- Have you ever used MusicBrainz Picard to tag your files or used any of our projects in the past?
- Yes, as I have mentioned, I use Picard. I have also used ListenBrainz in the past.
- What type of books do you read?
-
Programming precedents
- When did you first start programming?
- I started programming about six or seven years back to make a website for myself. I learned PHP basics and self-hosted a website on my old Pentium IV computer that was lying around. I then learned Python and is what I still mostly use. Iām learning Rust now in my free time.
- Have you contributed to other open source projects? If so, which projects and can we see some of your code?
- If you have not contributed to open source projects, do you have other code we can look at?
- There is not much. But there are few on my Github. I didnāt have the habit of publishing things that I have done. I regret that now.
- What sorts of programming projects have you done on your own time?
- I have made a few android apps. Here is one (UoPeopleCampus)[GitHub - Misnad/UoPeopleCampus2: UoPeople Moodle Portal Community Project | University Of the People]
- I also used Flask and FastAPI to build few back-end apps that I regrettably never published.
- I do a lot of problem solving as a hobby. (On sites like Project Euler, Advent of code, Hackerrank )
- When did you first start programming?
-
Practical requirements
- What computer(s) do you have available for working on your SoC project?
- I have a Ryzen 7 4700U with 8GB of DDR4 RAM running Archlinux (btw)
- I have a Ryzen 7 4700U with 8GB of DDR4 RAM running Archlinux (btw)
- How much time do you have available, and how would you plan to use it?
- A lot of my time goes to reading stuff online and learning new technologies. Since this project will also be a lot of reading and learning, I think I will be able to spend much time towards it.
- I can spend on average 2-3 hours a day, thatās around 15-20 hours per week.
- What computer(s) do you have available for working on your SoC project?
Welcome @um_poco_loco !
Thanks for submitting this draft, but I do not have much to say about it in its current shape.
There arenāt really any details about the project itself, or how you are going to implement it.
Each of those goals of the project needs to be expanded in as much detail as you can, including technical details. In this particular case, for example, I am not familiar with Calibre so you need to explain how youāll achieve each of those goals.
One more thing I would want to see is a detailed timeline of your project, week by week, showing in detail how you plan to allocate your time for each part of your proposal.
A good resource if your need it: Writing a proposal | Google Summer of Code Guides
Thanks for responding. Iāll rewrite with more technical details and a detailed timeline by tomorrow.
Itās been a week + 2 days since I said Iāll edit the proposal, Iām really sorry for not keeping up to my word. I had exams the past week and the tests were harder than I anticipated. I couldnāt find time to rewrite the proposal but did find some time and make a scaffold plugin to start with. And also a script to fetch data from BookBrainz API.
Here is the updated proposal with detailed milestones and more technical details added. Now that the exams are over, Iāll have more time to focus on this. Please let me know what else do I can add, or do.
Btw, Iām currently improving the API fetching script in python to be able to run inside the Calibre pluign and learning more about the BookBrainz database schema.
Hello @um_poco_loco !
Thanks for the updated proposal.
I like the more detailed mockups, they help visualize things much better.
I do want to say that while I looked at the code in the repository, a git repo cannot be part of your proposal, and will be ignored for the final evaluation.
The proposal itself must contain some technical details and a thorough, detailed breakdown of the work you will be doing. Currently this is missing from your proposal apart from a very basic extract of how to save metadata.
You should have a breakdown of each step you will need to take to achieve the project, which would help you anticipate issues and evaluate how you will plan to spend your time.
The timeline in your proposal conveys a very general breakdown, but is quite vague and does not substitute a required detailed breakdown of your project.
The code in gitlab also seems like mostly boilerplate, making hard for me to evaluate your proficiency and understanding of the project.
In the proposal you mention āa simple Python script that retrieves book metadata from BookBrainz using a given titleā, but I do not see that code anywhere.
Okay, so more technical details and code needed. Right.
Iāll try adding them. If Iām right, I only have 2 more days to edit the proposal. Iāll try my best to add more details and code.