Not possible/Seek alternatives
Duolingo
Language learning app.
Unfortunately there’s no official API, and no access to Duolingo user information without requiring your Duolingo username and password, which we don’t do.
Language learning app.
Unfortunately there’s no official API, and no access to Duolingo user information without requiring your Duolingo username and password, which we don’t do.
Beeminder.com is using the Duolingo API to retrieve xp so I am sure it is possible.
If its any help, there’s a Python library which demonstrates using the unofficial Duolingo “API”: https://github.com/KartikTalwar/Duolingo.
Thanks Peter! That’s the one I have starred actually (and synced to my bookmarks via https://larder.io which is an amazing app) ☺
Would love to see this!
Is there really no way that this can be done, given the wealth of information that is publicly available just by having someone’s Duolingo username?
I am about to start trialling Exist and this would be massive for me. Might even have a play around with it if the rest of the app works for me.
It’s actually not possible to get public information on Duolingo users any more, even unofficially — the integration listed previously doesn’t work. But if you can find some other means of doing it yourself, you could certainly hook it up with Exist via our API, for example to add tags for languages learned each day.
The unofficial routes are definitely still there, as far as I can see. Just go to https://duome.eu/{username}
For example: https://duome.eu/Luis
No credentials required.
It will need a scrape of the data but it’s in the HTML there. I’m not the most experience but I’ll have a hack around at the weekend. If I get something working, I’ll share it with you.
They just ask for a username, so probably there is still some public access to the total XP per language https://www.dropbox.com/s/blbt80t1kqzzh4e/Screenshot%202019-11-20%20at%2022.22.00.png?dl=0 thank you
Thanks for showing me that trick! I had no idea there was a way to get the profile info that way.
The only problem with using unofficial channels is that they can break @ any time w/o any notice.
Now that i know there’s an easy way to scrape my daily duo exp points, i’ll probably write my own Exist integration. I’d rather DIY than come to rely on something “official” that could just break w/o any notice in 6 months. At least when it’s DIY, there’s a limited blast radius and everybody (read: me) in the blast radius understands that the nature of the integration was fleeting to begin with.
Hi! Thanks to Markos for pointing me here! Looks like it was in May that Duolingo’s API changed and our trick – http://beeminder.com/changelog#3006 – is to have a Beeminder user on Duolingo and use its cookies to fetch users’ data.
I have gone and built a small thing to do just this.
https://github.com/kquinsland/exist-duolingo-bridge
configure your duo user name + local timezone and provide an exist.io API token and run daily :).
Lovely, thanks! You might want to consider mentioning it in the developer forum along with the other community integrations and scripts. Also, as we don’t have an attribute for “words learned” or similar, how are you writing this data to Exist?
Also, as we don’t have an attribute for “words learned” or similar, how are you writing this data to Exist?
I have a custom attribute for this. I don’t care about the words learned, only experience points gained in a given time period. Since I am only using duolingo to keep some of my secondary school foreign language from going stale, i have a threshold of 10 XP/day.
So long as i have more than 10 XP/day, i apply the “practiced duolingo” tag to that day.
If you guys did want to open up an API that would allow people to create the custom metrics, i could see the value in using that for people that are more serious Duo users.
That API could be pretty simple, actually… since it’s all just time series data under the hood and the bulk of what makes it “meaningful” to people is the labels. Give developers a way to tell you that they’ll now have a cumulative integer,date-time tuple the ID for that data stream should be associated with the “duolingo/$language” string and when you display the metrics, use the word “experience points” to label the integers.
But for my purposes, i only care about the “did i practice today or not” question.
Yes, this is what is planned for 2020.
I know this is quite an old thread but there exists a project on GitHub to pull in data from Duome if you would consider making use of it
Just to report that I’ve sucessfully used https://github.com/marvinscham/duolingo-api-dockerized (selfhosted) and the Exist API to pull in daily XP.