Centralised MusicBrainz Userscripts Repository

Update: The centralised Userscript Repository is now here


During yesterday’s weekly meeting, I suggested a centralised place for all musicbrainz userscripts, we discussed it and now I would like the actual userscript-writers to converse about it.

###My original post was:

while trying to find that userscript earlier I thought of this: why can’t we have a musicbrainz.userscripts thingy on github?bitbucket?, and then actually upload everything, then when people make changes to their userscripts, they can PR/pull/whatever those fixes.
like an official userscripts depository with a stationary url so we can point to one place and that’s where it is.
it could have folders, like “importers”, “editing addition” (for scripts in the editing interface) “web interface” (for things that work on search and viewing like bitmap see inside RG and releases tracks)
loujine suggested maybe a repo linking to subrepos.
I think also CallerNo6 will agree with me that it’s basically it’s a serious pita to find anything like this (having found various links but things are “bleh”) (External Resources - MusicBrainz Wiki)
having a centralised place would really benefit us, I can think of very few reasons not to, and I also think the majority of userscript-editors will be ok with it. it would also be really idea because if ever a script is abandoned by its writer, someone else could fork it and continue.
I also volunteer to chase down people and ask them to upload it to the repo/permission to upload it in their stead. :person_raising_hand:

(entire discussion)

We had some discussions and many people came up with ideas:

CallerNo6 agrees that there should be only one wiki page listing userscripts. whether they need to be in one repo is up to the authors.
[Freso] I think a MB-centric userscripts.org like place might be better, rather than forcing all authors to give write access to each others’ scripts.
[zas] We can use git submodules if people want to keep control
[Leo_Verto] a github repo with buttons in the readme to add the scripts directly should work
[reosarevok] If someone doesn’t want to put them in the same place, their link can always be added to a readme.md file or something
[CatQuest] that was the other idea i had. if all the userscripts are in one place… then maybe it would be easier to find actual code to implement into mb itself
[Gentlecat] if people want a central directory for userscripts, wiki seems fine
[reosarevok] Well, if people want to be able to share code, then the wiki won’t help much :slight_smile: But still, this is something to be decided by the userscript writers in the end :slight_smile:
[SothoTalKer] zas: it might be an idea to take note of what the userscripts do and if it would be feasible to directly integrate those features in the server.

###basically the cons:

[mayhem] hosting more stuff bugs me, honestly.
[mayhem] where would the web site be at?
[Freso] The userscripts aren’t official MetaBrainz resources anyway.
[mayhem] gonna be fun managing the licenses on this.
[mayhem] arguments against us hosting more shit, having to maintain more shit, and be careful with licenses is all I am saying.
[yvanz] Maybe cleaning the existing wiki pages would do?
[Freso] The userscripts should continue to be 100% community provided.
[Gentlecat] then it’s not really up to us, no?
[chirlu] No, it’s up to the authors (who mostly aren’t at the meeting; not even bitmap because sleep).
[Gentlecat] if people want a central directory for userscripts, wiki seems fine

###the pros:

[zas] it may help to reduce code redundancy, and duplicated userscripts
[Leo_Verto] +1 for an official userscript repo, that would also make it easier to contribute
[Quesito] <3 efficiency +1
[SothoTalKer] but a centralized place would be really really nice, indeed
[zas] But MB should help users to find userscripts and use them somehow, using MB without is a bad experience imho :wink:
[Gentlecat] zas: perhaps some of them are worth integrating into the actual project?
[mayhem] in fact userscripts are a great guide for where to start.

###Summary:
Essentially, people agreed that a centralised area for mb scripts is a Good Idea, and that the current situation is confusing, cumbersome and unsatisfactionary, that it’s important that the userscript authors have the last say and that wiki should (at least) be updated, that we don’t want to host this on metabrainz itself proper and that we need to be careful with licenses and maintenance.

But that’s now over to you, the actual userscript writers: what are your thoughts?

@jesus2099, @loujin, @murdos, @Bitmap, @VxJasonxV, @th1rtyf0ur, @dufferzafar, @kuno, @kovacsur, @Freso

11 Likes

As a simple MusicBrainz editor (not a dev), I would like a frontend page (maybe a wiki page? or a forum post wiki) where all scripts are centralised/listed with brief descriptions and also links to where to get them/install them (also links to script managers, tampermonkey, greasemonkey etc). The backend could be hosted on github. Github would be great because it’s not hosted on MB, you can submit bugs/ideas over there to scripts authors. Scripts could be more easily forked or more easily accessed if a script is abandonned for instance. It would favor devs working together instead of working on duplicate scripts each on their side.

6 Likes

There are currently two relevant wiki pages,

I’ll fix the first problem (redundancy), but the second problem (out-of-dateness) probably requires regular oversight and updating from script authors and/or avid script users.

Alternately, the wiki page can be an overview with a link to a central repo. That way, much less updating is required.

7 Likes

I’m not a userscript maker, but I am a heavy userscript user, and having a centralized location would be fantastic. There are so many different versions of things out there.

For instance, I thought for a long time that the Paste-a-date userscript was just broken. I finally stumbled across the updated version that actually works by accident, but I don’t know that I could find it again if I went looking.

I leave the details to those with more know-how. :slight_smile:

7 Likes

I’d prefer having a Github repo as that would simplify contributions, I don’t see why this couldn’t be done under the MetaBrainz org.

A big disclaimer that these are community-maintained and not official should be enough, shouldn’t it?

2 Likes

Between a wiki page and a wikified forum post, I think a wiki page is better.
But, script authors have only little time to document scripts.
We only write a quick description in the script itself like you can see in this automatic list of userscripts that can run on MB sites.

Yes, I am showing you yet some other places with lots of MB scripts and I agree we should try to have one official place or something.

Such a list is cool but authors have to upload their scripts once on greasy fork (it will then auto update from author’s git repositories each time version goes up).
I am afraid that any other kind of more complete documentation might end up obsolete quickly.
User scripts themselves can already get obsolete quickly.

We also have an OUJS MB group but this kind of tag is worse than previous list as author had to both upload script on OUJS and then to tag their script as being MB.

We also have a New MusicBrainz userscripts topic and a userscripts tag, here.

When userscripts.org was still there, everybody seemed pleased with their then musicbrainz tag so maybe previously mentioned Greasy Fork’s list or Open User JS’s tag would be ok if all authors would at least upload there?

But another problem is that we may have list with many obsolete or even abandoned scripts so a wiki may still be better to avoid that.


All ideas I have read are good.


Also with Greasy Fork versioned library system, it is possible to share libraries between scripts in distinct repositories (for example if a script uses this or that version of a library, it will keep pointing to that specific tested version even if the library later completely changes).
Indeed me and @loujin had such a shared library for loading MB entities in mind but I had no free time yet.

4 Likes

I… am not sure what you’re saying here. Would you prefer a single, unified GitHub repository over the current situation? Or would you prefer a GitHub repository to a wiki page?
If the former, it seems most people agree, but it will be next-to-impossible to get everyone in on this (e.g., I asked @nikki about this previously, when I fixed her YouTube import script, and she didn’t want to give permission to merge her scripts into a central repository at that time – and there are likely userscripts/userscript authors that aren’t available anymore for comment).
If the latter, how so?

Again, not sure what you’re actually commenting on.
Former option: Maybe it could be done potentially, but then we’d want some restrictions like that all userscripts are under an OSI approved license (and maybe even just a single license for all of it, which would likely also keep some authors away), so we/MetaBrainz know that we’re not “hosting” “bad” code. Also, userscripts are very, very 3rd party things. picard-plugins is somewhat close to this suggestion, but Picard officially supports plugins natively, https://musicbrainz.org does not officially support userscripts.
Latter option: We’d be hosting the wikipage, so this could probably also be “hosted” under metabrainz if we really want it in GitHub. (But I’m not convinced that it will be simpler to have contributions on a GitHub wiki page that on a MusicBrainz Wiki wiki page.)

1 Like

Generally, I think it will be the duty of the idea champion to discuss the permission of these combinations with each author - presumably a few authors will agree to combine their already-on-github repos, we already have a slight thing like this going on at murdos’ github.
My hope is to chase down script writers that might not even be active on mb anymore, and atleast ask them permission - not unlike how Questio now works with people who sign up to iron out any contention they may have, even if that surmises to just “link the script source in a readme.md file or something”

1 Like

I think a wiki page linked from the homepage would be good. Ideally the wiki would point to the repository page for each userscript.

1 Like

i created my own userscript list in 03/19/2016
http://wiki.musicbrainz.org/User:Colbydray/UserscriptList

7 Likes

Okay, after some digging, here is the updated paste-a-date which actually still works:

4 Likes

In general I feel the idea solution would be a single, MeB-hosted Github repo for all the userscripts.

If you prefer not to do that, I agree with @CyberSkull that a wiki page listing and describing the scripts as well as linking to them would be the next best solution.

1 Like

I’m thinking something simple like this for the wiki page:

  • murdos (https://github.com/murdos/musicbrainz-userscripts)
  • Display shortcut for relationships on MusicBrainz
  • Import Bandcamp releases to MusicBrainz
  • Import Bandcamp releases to MusicBrainz Album Link Helper
  • Import Beatport Pro releases to MusicBrainz
  • Import Beatport releases to MusicBrainz
  • Import CD Baby releases to MusicBrainz
  • Import CD1D releases to MusicBrainz
  • Import DG/Decca releases to MusicBrainz
  • Import Discogs releases to MusicBrainz
  • Import Encyclopedisque releases to MusicBrainz
  • Import FMA releases to MusicBrainz
  • Import Juno Download releases to MusicBrainz
  • Import Last.fm releases to MusicBrainz
  • Import Loot releases to MusicBrainz
  • Import Metal Archives releases into MusicBrainz
  • Import Qobuz releases to MusicBrainz
  • Import Takealot releases to MusicBrainz
  • Musicbrainz DiscIds Detector
  • Musicbrainz UI enhancements
4 Likes

For what it’s worth, there is a new topic system at GitHub so we can classify our repositories.
I suggest authors to add userscripts and musicbrainz topics to their repositories.
Contrary to Greasy Fork’s group or search and to OUJS’ tag, it is only for GitHub.

7 Likes

Update: Just Added an “Info” (description) Column to my userscript list.

I like wikis for some things, but in this case it would be a distant second choice for me.

Wikis are good for collecting the ‘wisdom of crowds’, but they’re not so good at staying up to date.

4 Likes

I wouldn’t bother with dates or version numbers, just names and repository links. The goal should be to find userscripts, not describe them in endless detail. :wink:

5 Likes

For what it’s worth, I think I will stop mirroring my scripts on GreasyFork (GF) and OpenUserJS (OUJS) as they stop updating from time to time.

  • My scripts were not updated since last novembre on OUJS because of a new licence pattern I should have changed. I was kindly advised in advance but I have very little time already for my scripts.
  • Today (not the first time it happens) GF does not update either because the Web Hook system gets a 500 Internal Server Error.

FTR https://github.com/jesus2099/konami-command/issues/396

Interesting. In that case I might do the same :slight_smile: to get rid of their management of libraries which is really annoying.

The poll from last fall showed ~45% of users were using Greasyfork (or similar) but 83% were using github and 50% musicbrainz links so I guess it shouldn’t disturb too many users

2 Likes

Do scripts auto-update when they are hosted on Github?