Skip to main content
Topic: Crash report (Read 2133 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Crash report

Reply #25
HTML would mainly just be used to display static pages, the actual communication, queries and processing is generally handled by something like PHP. Your project touches on multiple subjects, but individually and in principle they are all relatively simple.

For example an SQL server like MySQL can hold your actual metadata, PHP can talk to it, parse the data and pass it on to your HTML site to be displayed.

If you want to link all this to actual files, you will have to create some kind of uploader or directory watcher that keeps track of your music files, assigns a unique ID to each track and syncs their location and ID with the database.

Then you need another thing that can play music files in a browser based on the location it gets from the DB with the right ID.

In practice this is a LOT of work but that is probably your best bet. I'm not familiar with the specific Oracle product you mention, but I personally wouldn't touch anything they have, with very few exceptions.

You could also hunt down similar projects on Github to get a headstart or to expand the functionality of an existing one.

(Also in reality you would probably want a login system so all the resources aren't just freely exposed to everyone on the internet, you would probably also want a playlist editor etc, so the list will keep growing on.)

Re: Crash report

Reply #26
I personally wouldn't touch anything they have, with very few exceptions.
Apologies if this is off-topic, but can I ask you why?

I've been working for years with Oracle db and I think it's one of the best RDBMS out there.

Just curious if there are specific technical reasons to advise against its use.

Re: Crash report

Reply #27
If you want to link all this to actual files, you will have to create some kind of uploader or directory watcher that keeps track of your music files, assigns a unique ID to each track and syncs their location and ID with the database.

That's the crucial part and the one that I really have no idea how to deal with. Please, if you have any link to online resources on this topic, even just some basic introduction, post it, because I can't find any. That's why I mentioned oracle multimedia, because as far as I read, it's the only database manager with such functionalities already implemented (even though they're rumored to be dismissed). But it was kind of a joke, given the price of their licences.

The reason I mentioned spotify and streaming services is only because of the size of their database, but I'm not planning to stream music on the web, nor do I need a multi-user environment. What I have in mind is more like a mixture of a standard music player and a software like encarta. 



I've been working for years with Oracle db and I think it's one of the best RDBMS out there.

Do you have any experience with oracle multimedia?
I'm late


Re: Crash report

Reply #29
That's the crucial part and the one that I really have no idea how to deal with. Please, if you have any link to online resources on this topic, even just some basic introduction, post it, because I can't find any. That's why I mentioned oracle multimedia, because as far as I read, it's the only database manager with such functionalities already implemented (even though they're rumored to be dismissed). But it was kind of a joke, given the price of their licences.
You mentioned Spotify, most successful companies like that will have an engineering blog where they discuss the infrastructure and tech stack they are using, for example:
https://labs.spotify.com/2013/03/15/backend-infrastructure-at-spotify/
https://labs.spotify.com/2019/03/25/building-spotifys-new-web-player/

But your problems will be very different from them as their biggest issue is scalability and yours is not. I don't have any guides top of my head that could help you.

I would personally try to give each file/album a unique ID that will remain unchanged no matter what (e.g. DAVID-0001 or something similar to MusicBrainz ID). Then the actual music files can be stored in those folders, the metadata independently edited while the ID will link back to the files. The uploader part of your site would increment this ID with each upload, move them to the corresponding folder physically and either create an empty database row (with said ID as primary key) or ask you to fill out details like artist name and whatever else you want during the upload process. Your player part would know you want to play tracks from artist BOB, which it could look up had a unique ID of DAVID-0096, so the file should be located at 'yourserver.com/DAVID-0096/track 1.mp3'. Hope that helps.

If you break down this mechanism to smaller parts (How do I move files? How do I connect to the database? How do I write a new row to the database with an auto incrementing ID? How do I retrieve and show data from the database on the website? How do I play an mp3 file located at a specified URL in the browser?) and slowly stitch them together then it's definitely doable. Always start with a barebones proof of concept and slowly work your way up to something you would want to use daily, if the direction seems promising. I don't know how much development experience you have, so this might be really obvious or not at all to you.

You could also hunt down people from sites you like (perhaps not Spotify, but smaller hobby projects with similar goals to yours) and ask what they settled on. For example if someone made a 'Metal encyclopedia' and you want to do a 'Classical music encyclopedia' there's no conflict of interest, so I'd imagine those people would be helpful and maybe even allow you to reuse parts of their site.

Apologies if this is off-topic, but can I ask you why?
Oracle used to be very good without many alternatives. Now there are. Meanwhile they are busy using their entrenchment for: exploitative and expensive lincensing, terrible support, suing people, vendor locking, buying competitor products and burying them. Your mileage may vary. This is less so about any one specific product being good or bad (e.g. Oracle DB) and more so about everything going on around it. Obviously always worth considering all your options, so perhaps I should have said 'I would generally be very hesitant choosing them'.

Re: Crash report

Reply #30
I don't know how much development experience you have, so this might be really obvious or not at all to you.
I'm pretty confident with SQL and database architecture, much less in front-end programming (I only worked with application-level languages so far, one of which is jscript for foobar2000), but the basic issue I have is with neither of the two: I'm stuck on the synchronization of the database with the metadata in the actual audio files. How do you even do that? Is there something like the Oracle multimedia feature available as a module for other DBMS? Or do I have to implement it with my own code? If the latter, I might be better off waiting for @Peter to switch to a proper database engine in 2059 ( :P ).
I'm late

Re: Crash report

Reply #31
The static identifier would basically sidestep that issue (the metadata inside the actual tracks would never be used, instead, you would read that from the SQL DB and simply point the player part of your website to the statically named .mp3 or whatever). I would avoid trying to write metadata to tracks manually as every format has their own quirks which is probably a pain to maintain (although there might be code libraries that help with that somewhat). If you specifically want a multimedia DB that does it all, I'm not familiar with them, so can't help you.

Re: Crash report

Reply #32
I would avoid trying to write metadata to tracks manually as every format has their own quirks which is probably a pain to maintain (although there might be code libraries that help with that somewhat). If you specifically want a multimedia DB that does it all, I'm not familiar with them, so can't help you.

Yes, that is precisely what I'm looking for. I just found out about taglib and other such libraries, so at least the fog is clearing up a little.
I'm late

Re: Crash report

Reply #33
This is less so about any one specific product being good or bad (e.g. Oracle DB) and more so about everything going on around it.
Ok, fair enough.

I'm not familiar with the support of other RDBMS, so can't comment on that.

License cost can be a problem, but perhaps it is worth mentioning that Oracle also offers a free version of their db: it has some limitations, but for small projects / personal use it's often more than enough.

 
SimplePortal 1.0.0 RC1 © 2008-2019