# Duolingo languages with different base language are hidden when in mobile app we switch the base language.

**URL:** <https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170>\
**Category:** Bugabee\
**Created:** [August 24, 2020, 8:47am UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170 "2020-08-24T08:47:07Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 8:47am UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/1 "2020-08-24T08:47:07Z")

</div>

I use Duolingo to learn Spanish and Italian but from French (as I am a native french speaker)  
Of course Duolingo call those languages Espagnol and Italien and it seems that beeminder can’t find them for that reason and believe that I did not start those languages.

Can we do something about it ?

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [August 24, 2020, 2:43pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/2 "2020-08-24T14:43:25Z")

</div>

What is your Duolingo username?

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 2:50pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/3 "2020-08-24T14:50:49Z")

</div>

Thanks for your reply  
My duolingo username is “SattisvarT”

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 3:02pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/4 "2020-08-24T15:02:36Z")

</div>

I’m using this website to check my languages -\> [https://duome.eu/SattisvarT](https://duome.eu/SattisvarT)  
it seems that the result depends on which language base I am in in the mobile app.  
If I am doing a french based lesson the duolingo api returns only languages that I learn from French.  
Conversely if I am doing an english based lesson, only languages learned from english are shown.

So I think that for the moment, I have to switch languages before asking beeminder to look at my scores.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [August 24, 2020, 3:04pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/5 "2020-08-24T15:04:36Z")

</div>

Sounds good!

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 3:20pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/6 "2020-08-24T15:20:46Z")

</div>

There is still a problem, when beeminder checks my scores and does not find my languages because of the above-mentioned problem, It inserts a 0 in the data, and things gets weird. Back to normal if I delete the zero I presume but that is a bit annoying.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [August 24, 2020, 3:44pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/7 "2020-08-24T15:44:33Z")

</div>

I wonder if that’s something we can handle on our end, actually. Hmm.

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 3:54pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/8 "2020-08-24T15:54:30Z")

</div>

IMHO I would just prevent beeminder to insert any data if the language is not found (because mainly there is a check when adding a goal with duolingo that the language exists so it means that the language existed at creation time and the only way to be in the situation where the language is not found when retrieving data is because of that switch case) What do you think ?

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [August 24, 2020, 3:59pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/9 "2020-08-24T15:59:55Z")

</div>

I haven’t had my coffee yet, so this is just a thought: but I think it may be important to both keep trying to fetch data later, but also to remind you to switch languages on the site or in the app so that when it checks later that day, Beeminder will be able to get the data.

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 24, 2020, 4:20pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/10 "2020-08-24T16:20:58Z")

</div>

Please have your coffee 🙂  
If I understand you well, you suggest that beeminder sends a reminder to switch languages when the retrieval fails ? Sounds good!  
On my side as I always do all the languages every day in the same order I will end up with the same language on the app so beeminder will not be able to fetch part of the data. So for me I will split my routine in two, do all the languages based on english first then ask beeminder to fetch data on those languages and next the french based languages and again on completion go to beeminder to force fetching the data. The only one thing is that beeminder should not alter the data on failing the retrieval, which – if I’m not mistaken – happen by adding a 0 as a data point.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [August 24, 2020, 4:31pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/11 "2020-08-24T16:31:36Z")

</div>

Can you confirm what happens here:

1. Do your first set of languages
2. Make Beeminder update, confirm the data is good
3. Switch Duolingo to the second set of languages
4. Make Beeminder update _the first set_

I would expect Beeminder has 2 datapoints, one that is good, and a new one for the day that is a 0.

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 27, 2020, 7:58pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/12 "2020-08-27T19:58:57Z")

</div>

Hello,

I tried what you suggested.  
I have several different effects:

- On my Arabic lessons beeminder does not see my new xp level on duolingo, whatever language I select
- On my Italian lessons beeminder has a data line with a 0 that had been automatically added. The graph and the surprisingly high amount of days before derailment shows that beeminder sees a way bigger xp level than what I really have.

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [August 30, 2020, 6:53am UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/13 "2020-08-30T06:53:10Z")

</div>

Hello again,

I dug into duolingo API and I’ve come up with a solution. Please let me know if that would work for the automatic fetching on your side

- When a goal is created we can retrieve the `user_id` from the username in duolingo using this API call `https://www.duolingo.com/users/sattisvart` It provides a big json but there is a field `id` somewhere. Once retrieved, this should be stored in the beeminder goal along with the username
- Once you have the id you can call `https://www.duolingo.com/2017-06-30/users/<id>?fields=courses` where `<id>` is the previously fetched `user_id`.  
For instance for me the url would be `https://www.duolingo.com/2017-06-30/users/335010648?fields=courses` which gives the following json

```auto
{
 "courses":[
  {
   "learningLanguage":"ar",
   "crowns":19,
   "xp":1192,
   "id":"DUOLINGO_AR_EN",
   "fromLanguage":"en",
   "title":"Arabic"
  }, 
  {
   "learningLanguage":"de",
   "crowns":14,
   "xp":949,
   "id":"DUOLINGO_DE_FR",
   "fromLanguage":"fr",
   "title":"Allemand"
  },
  ...
 ]
}

```

There you have all the xp for all the language no matter the `fromLanguage`. That would prevent the fail on fetching data and you’d never have a 0 as a data line in beeminder goal.

---

<div class="post-metadata">

**Author:** ![philip](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/philip/32/1505_2.png) [@philip](https://forum.beeminder.com/u/philip)\
**Post date:** [August 30, 2020, 9:09am UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/14 "2020-08-30T09:09:39Z")

</div>

Thanks for doing the research! I’ll let Adam chime in with whether that looks workable in practice.

It’d be a great step forward; I also used to switch base languages in Duolingo, but never as regularly as you do.

For me it was usually because I’d reached the end of their lesson stack in one direction and would invert the languages to do it the other way, or from a different base language altogether. Also, in the early days, they had more courses for learning English than they had for learning the target language, e.g. by claiming to be a Dutch speaker learning English I could actually progress as an English speaker learning Dutch.

---

<div class="post-metadata">

**Author:** ![sattisvar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/sattisvar/32/3749_2.png) [@sattisvar](https://forum.beeminder.com/u/sattisvar)\
**Post date:** [September 7, 2020, 2:22pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/15 "2020-09-07T14:22:25Z")

</div>

Hello,

Just uping the post to see if there is any improvement on your side. While you sort things out I decided to switch my duolingo goals into simple do-more ones and have a home-made script that retrieve the info every day. Let me know if you need me for some tests.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [September 9, 2020, 2:19pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/16 "2020-09-09T14:19:38Z")

</div>

Not yet, I’m behind in our current sprint. This has been entered in  
our bug tracker, though! 🙂 I’m glad you have something working for  
you at the moment.

---

<div class="post-metadata">

**Author:** ![howtodowtle](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/howtodowtle/32/2284_2.png) [@howtodowtle](https://forum.beeminder.com/u/howtodowtle)\
**Post date:** [February 25, 2021, 5:00pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/17 "2021-02-25T17:00:11Z")

</div>

Piggybacking this thread because it seems quite related to the “base language” problem:

What determines which languages I can track? Only languages that are learnable from base language English? I started a Catalán track which is only available from base language Spanish but **I cannot find Catalán in the dropdown when creating a new Beeminder x Duolingo goal** :

 ![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/0/08c7cb0913e8949c49e22b3194260de4b32a253c.png)

The progress shows up on [Duolingo · howtodowtle @ duome.eu](https://duome.eu/howtodowtle) regardless of base language, so I guess it would be possible to track if there was a goal.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [February 25, 2021, 5:04pm UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/18 "2021-02-25T17:04:32Z")

</div>

I think, @howtodowtle, that issue is easier to handle. I’ll add a separate issue in our bug tracker for languages that aren’t learnable from English.

---

<div class="post-metadata">

**Author:** ![adamwolf](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/adamwolf/32/484_2.png) [@adamwolf](https://forum.beeminder.com/u/adamwolf)\
**Post date:** [September 1, 2021, 5:01am UTC](https://forum.beeminder.com/t/duolingo-languages-with-different-base-language-are-hidden-when-in-mobile-app-we-switch-the-base-language/7170/19 "2021-09-01T05:01:35Z")

</div>

We have recently added languages not learnable from English, like Catalán and Guarani. This does not solve @sattisvar’s original problem, but it may solve @howtodowtle’s!
