harp.rs banner

harp.rs

5 devlogs
12h 35m 2s

a music player based on ytdlp and deezer in the terminal made in rust!

This project uses AI
  • Used AI for rust debugging and syntax clarification
  • Used AI for artwork rendering method functions, and UI bits
  • Used AI for ipc syncing with the mpv player
Demo Repository

Loading README...

divpreet

Shipped this project!

built a rust app that streams songs from youtube and gets it metadata from deezer! learnt alot about ratatui, and alot about api’s and error handling in rust, the most fun part was building the ui along with getting monochrome api to work, which it didnt i ended up using deezer!

divpreet

ship!

im getting tangled with exams cryin , so i vibecoded the last few touchups w claude, like ipc integration, and the q quitting when the search was active, also a slight Ui change and made the results look good! i do plan on maintaining this project for longer and actually making it something big!

0
divpreet

artwork hype_hollow

i wanted to get the artwork rendered in a ascii style, and after a bit of googling i found that braille rendering would be a good option as its sharp, then, i copiloted. a function for braille, as i wasnt really getting the logic behind it, then i wired the artwork and messed around with the left panel layout, but braille ddnt work well, then i generated a ascii one, tldr; that was broken asw. then i chose unicode with color, squared it out, displayed it across two seperate cards for alignemtn and clarity and it works pretty well! only need to work on the ipc connections, and i might have to vibecode alot of it now due to exams and ft ending cryin.

0
divpreet

progress bar and deezer

got all mpv instances to quit when q is clicked, and when a new song is played. also i vibecoded for the api to use the deezer endpoint as its actually a streaming servce unlike discogs which was for like vinyls, albums rather than singles, also, updated the ui, i have a UI design in mind, so ill sketch it, and also updated the ui layout and got progress bar working! i do plan on adding ipc next! i had to get duration just like i was sending search results with a sender and a reciever, also i love how rust does f strings!

0
divpreet

tons of shit breaking cryin

So, at first, i got the tui working using ratatui, i havent really used it properly, apart from a simple weather app, although it was really fun to build with! then, i checked out monochrome instances and added more playback and search bases just so if one fails there would be another to keep the app running, but, randomly, all of them 404d, api.monochrome got suspended and the qqdl endpoints all starting throwing 504s, so then i refactored the code to use yt-dlp to get music results, just like downloadarr, still using mpv to stream the music, getting results from yt-dlp was really slow, so then i found discogs in fmhy and decided to use it, so then i changed a few things in the api and added models for discogs which replicated the json it provides when you curl it, then i used claude to change the main.rs’s functionality to get the results accordingly, there was this issue with the results not splitting properly which was messing up the yt results, which is now fixed, and playback works! i tried using the download link so its easier, but seems like mpv can just play from the yt video link of the music! currently, when the app exits, the mpv instance is still running, but im way to tired to fix it today pf

Changelog

0
divpreet

harp.rs - api intergration

I had a old python project that used hifi-api to get music to play, but that was really barebones and the api didnt work so well, so now im monochrome and qqdl to get music from tidal! built models for tracks, artists, search data, albums and whatnot, kind of like in swift, seperated the core and the cli packages like seperate files and function ins python! it is a bit harder to build in rust, as ive not really built a large scale project in rust yet!

Changelog

0