Feature • Usage • Config • Preview • Disclaimer
⚠️ This repository is still in its early stages and may not work as expected for some accounts, please try completing at least 9 lessons and run it again after 2-3 days ⚠️ , fix here
- Sandy ( Official Documents and Information Repository for Project Sandy )
- HoneygainPot ( 🐝 Automatically claim your Honeygain lucky pot every day 🍯 )
- DuoXPy ( ⚡️ XP farm and Streak keeper for Duolingo 🔥 )
Important
Read all documents in this repo before doing anything!
Don't forget to star ⭐ this repository
- Always update your repo following the original repo to get the latest update + bug fixes; I will not support anything if your repo is outdated
- Do not enter your information ( token ) into 2 workflows file (
daily.yml
andmanual.yml
) because it will not work and may leak your information to everyone - (*): Do not fork this repo if one of these or all of these ( not CodeQL and CL ) GitHub Actions status badge show failing, and wait until one of these or two of these show passing then you can fork again
Daily lessons
workflows always run every 14:00 UTC + 0; if you want to change it, refer to this
- XP farm ⚡️
- Streak keeper 🔥
- Go to Duolingo and log in to your Duolingo account
- Open the browser's console by pressing
F12
button ( orFn+F12
on some laptops ) - Click on the tab
Console
then paste this to the console
document.cookie
.split(';')
.find(cookie => cookie.includes('jwt_token'))
.split('=')[1]
- Copy the token without
'
( example: 'abcde1234` -> abcde1234 ) - Fork this repository 🍴
- Go to your forked repository 🍴
- Go to
Settings > Secrets and Variables > Actions
, and clickNew Repository secret
- Use
JWT_TOKEN
and paste your JWT Token from Steps 3 - Go to your forked repository 🍴 and go to the Actions tab and press
I understand my workflows, go ahead and enable them
Important
If you want to farm XP, go to the Manual lessons trigger
workflows ( located in the Actions tab of the repo ). Then, enter the lesson you need to farm ( 1 lesson = 20xp ). Usually, if you enter a lot of lessons ( like >1000 ) or if Duolingo cannot handle the request, you will receive an error code or log, and the lesson will be skipped. So, think wisely before entering the lesson!
If you got No skillId found in xpGains
log then try to do least 1 lesson so it can run back to normal!
- Do not let your latest study session empty, at least get them to level 1 like these images below by completing 1 lesson or some lessons
Important
Daily workflow file path ( default is 14:00 UTC ± 0, and DO NOT enter your token here cause it will not work and may leak your information to everyone ): .github/workflows/daily.yml
-
Well, GitHub uses UTC time ( UTC ± 0 ) for scheduling workflows, so we should convert it to our timezone
-
For example: If I want to set the daily trigger to trigger at 9:00 PM ( UTC + 7 ) , I have to set it to 2:00 PM or 14:00 ( 24-hour format ) ( UTC ± 0 ) ( 2+7=9 ):
name: Daily lessons
on:
schedule:
- cron: '0 14 * * *' # <- Use UTC Time +0 , change your time here ( 14 is hour , 0 is minutes ) and use 24-hour format
- So, if I want the daily trigger to run at 5:00 AM ( UTC + 7 ), I have to set it to 10:00 PM ( UTC ± 0 ) ( use 24-hour format ):
name: Daily lessons
on:
schedule:
- cron: '0 22 * * *' # <- Use UTC Time +0 , change your time here ( 14 is hour , 0 is minutes ) and use 24-hour format
Note
GitHub Actions schedules can sometimes be delayed by up to 15 minutes due to high demand, so don’t worry! ⏱️
- Usually, you can find your config folder in the same place as the
main.py
file. In some specific cases, you might need to locate your config through the information window in themain.py
file - You can change your information and lessons in the config file
Warning
This project is licensed under the MIT License.
For more information, see the LICENSE file.
- This script is not affiliated with Duolingo
- Use it at your own risk and responsibility
- I'm not responsible for any consequences that may arise from using this script
- This script won't help with your daily or friend quests, it can only earn XP to move up the league rank
- This script won't do real lessons or stories, only practices, so it won't affect your learning path
- You may be banned from Duolingo if you overuse it, so use it wisely.