Skip to content

Export / Extract Vocabulary from Busuu Website

Notifications You must be signed in to change notification settings

joeperpetua/exportVocabBusuu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

Export / Extract Vocabulary from Busuu Website

Steps:

  • Go to Review page: https://www.busuu.com/dashboard#/review
  • Mute the tab or the PC (when obtaining the audio links, they will be played out loud)
  • Open browser console (Ctrl + Shift + J)
  • Copy/Paste and Run the following code in the browser console:
const vocabList = document.querySelectorAll(".vocab-list-row");
let vocabToExport = [];

console.log("==========\nThis can take some time, depending on the amount of vocabulary there is to export, around 1 minute for 800 entries for example.\n==========");

for(let i = 0; i < vocabList.length; i++){

    vocabList[i]?.childNodes[2]?.firstChild?.firstChild?.lastChild?.firstChild.click();
    vocabList[i]?.childNodes[6]?.firstChild?.lastChild?.click();

    const vocabText = vocabList[i]?.children[3]?.children[0]?.children[0]?.textContent;
    const vocabTranslation = vocabList[i]?.children[3]?.children[1]?.textContent;
    const vocabStrength = vocabList[i]?.children[4]?.children[1]?.textContent;
    const vocabExampleTranslated = vocabList[i]?.children[6]?.children[1]?.children[1]?.textContent;
    const vocabOriginalExample = vocabList[i]?.children[6]?.children[1]?.children[0]?.textContent;
    const vocabAudioURL = vocabList[i]?.childNodes[2]?.firstChild?.firstChild?.lastChild?.firstChild?.getAttribute("src");
    const vocabExampleAudioURL = vocabList[i]?.childNodes[6]?.firstChild?.lastChild?.firstChild?.lastChild?.firstChild?.getAttribute("src");
    const vocabImageURL = vocabList[i]?.children[1]?.children[0]?.src;

    vocabToExport.push({
        "text": vocabText,
        "translation": vocabTranslation,
        "strength": vocabStrength,
        "example_translated": vocabExampleTranslated,
        "example": vocabOriginalExample,
        "audio": vocabAudioURL,
        "example_audio": vocabExampleAudioURL,
        "image": vocabImageURL
    });
    
    console.log("<--- Entries processed");
}
console.log("==========\nProcess finished, you can copy the following object:");
console.log(vocabToExport);
console.log("==========");
  • Wait for the result to be logged in the console
  • This error message is expected, wait until all the errors are logged before unmuting the tab / PC:

image

  • Copy the logged object:

image

  • Go to JSON to CSV Converter and paste the copied object
  • Generate your Busuu vocabulary in CSV/xlsx format

That is pretty much all, you can do whatever you want with the CSV file (making an Anki deck for example). If you have any issues with the script, please create an issue in the repository.