On of the possible alternatives for solving this, without severely breaking the intended architecture of mopidy, would be to give the backend a list of tl_tracks which is essentially the tracklist. If it doesn't want to do anything it just returns none, otherwise it returns a modified copy of the list, which will then replace the on in the core. Of course this would probably need to be called something other than next track.

I would like you to take a quick minute to read [Describe the goal, not the step](http://www.catb.org/esr/faqs/smart-questions.html#goal) from asking smart questions, reason for this is that I'm having a hard time providing good feedback as I still don't fully understand the goal you are aiming for. I know the general direction you want to head based on your code, but this only shows how you want to solve the goal, not what the goal is.