Skip to content

Instantly share code, notes, and snippets.

@nodaguti
Last active June 29, 2024 15:41
Show Gist options
  • Save nodaguti/7b54519da2dee93e23bc to your computer and use it in GitHub Desktop.
Save nodaguti/7b54519da2dee93e23bc to your computer and use it in GitHub Desktop.
Quizlet to CSV
/**
* Convert a list on Quizlet into CSV-formatted text.
* Usage:
* i) Copy and paste into your browser's console.
* ii) Run it!
*/
(() => {
const terms = document.getElementsByClassName('term');
const csv = [];
Array.from(terms).forEach((term) => {
const word = term.querySelector('.qWord').textContent.replace(/[\n\r]+/g, '/');
const def = term.querySelector('.qDef').textContent.replace(/[\n\r]+/g, '/');
csv.push(`"${word}","${def}"`);
});
console.log(csv.join('\n'));
})();
@trajan0x
Copy link

trajan0x commented Jun 29, 2024

June '24 update:

/**
 * Convert a list on Quizlet into CSV-formatted text.
 * Usage:
 *   i) Copy and paste into your browser's console.
 *   ii) Run it!
 */
(() => {
  const terms = document.getElementsByClassName('SetPageTerms-term');
  const csv = [];

  Array.from(terms).forEach((term) => {
    const termTexts = term.querySelectorAll('.TermText');
    const word = termTexts[0].textContent.replace(/[\n\r]+/g, '/');
    const def = termTexts[1].textContent.replace(/[\n\r]+/g, '/');
    
    csv.push(`"${word}","${def}"`);
  });

  console.log(csv.join('\n'));
})();

Bonus: automatically copy to clipboad:

/**
 * Convert a list on Quizlet into CSV-formatted text.
 * Usage:
 *   i) Copy and paste into your browser's console.
 *   ii) Run it!
 */
(() => {
  const terms = document.getElementsByClassName('SetPageTerms-term');
  const csv = [];

  Array.from(terms).forEach((term) => {
    const termTexts = term.querySelectorAll('.TermText');
    const word = termTexts[0].textContent.replace(/[\n\r]+/g, '/');
    const def = termTexts[1].textContent.replace(/[\n\r]+/g, '/');
    
    csv.push(`"${word}","${def}"`);
  });

    // Create a temporary textarea element to copy the CSV text
  const textarea = document.createElement('textarea');
  textarea.value = csv.join('\n');
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand('copy');
  document.body.removeChild(textarea);

  console.log('CSV text copied to clipboard');
})();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment