I use a gamification approach, ie a Rocksmith-like playback as seen here: Play-along songs with synchronised tabs on Youtube - #2 by chris_van_hoven
It works quite well, if you repeat a song quite often. Complicated parts of a song I just skip first, then play it simplified when I understand the “nature” of the song better and then I focus on those parts and repeat just complicated stuff.
My approach is better for getting technique, timing and dynamics right - for learning the whole song, I admit that it might be too playful and easy, as you see the next notes “flying in”, and that keeps you from remembering.
I need to force myself to NOT look at the screen when I know the song good enough. It takes discipline!
Also, I made/make the mistake to play too many different songs and not focus.
A small playlist (3-5 songs max) that gets repeated often is better than my approach with 15-20 changing songs and 3-5 songs as core playlist.