Shameless plug: for the past year, I've been building an app to help me learn vocabulary. I used to use Anki, but it was very difficult to keep adding new words -> word, sentence example, image, audio. So I've basically created a copy of Anki - spaced-repetition flashcards, with the generation of cards fully automated. Also added YouTube and website integration. [1]
The problem with language learning in my opinion is, that learning the vocabulary just cannot be skipped. I've had German for 6 years (2-3 lessons per week) in highschool, just to find out that I don't understand words on 100th positions on the frequency lists. We've mostly focused on memorizing crazy complex grammar structures.
I've also tried passively listening to podcasts and watching movies/series I've already knew, but that would result in at most 1-2 words per episode, which just wouldn't work, if you need at least 5000 words to understand reasonably well.