Response 500

Thank you for your github link. with a few adjustment(copy-paste his code into mine), it is running now.

you need to put the text file in “textfiles” folder and mp3 files in “mp3files”.
Based on their names it will zip them and upload them to lingq.
List will look like this [(1.txt, 1.mp3])

Also you should install requests_toolbelt

#!/usr/bin/env python
import requests, os
from requests_toolbelt.multipart.encoder import MultipartEncoder
from glob import glob

API_KEY = "YOURAPIKEY"
postAddress = "https://www.lingq.com/api/v3/YOURLANGUAGE/lessons/import/"
collection = "YOURCOURSE"


listoftxts = glob("textfiles/*.txt")
listofmp3s = glob("mp3files/*.mp3")

for textfile, audiofile in list(zip(listoftxts, listofmp3s)):
    print("Uploading")
    title = audiofile.replace('.mp3', '').replace("mp3files/","")
    with open(textfile, 'r', errors='ignore') as f:
        text = f.read()
    
    with open(audiofile, 'rb') as f:
        audio = f.read()
    
    m = MultipartEncoder([
            ('title', title),
            ('text', text),
            ('collection', collection),
            ('audio', (audiofile, audio, 'audio/mpeg')),
            ('save', "true")
        ])
    h = {'Authorization': 'Token ' + API_KEY,
         'Content-Type': m.content_type}
    
    r = requests.post(postAddress, data=m, headers=h)
    print("Status Code: ", r.status_code)
    print("https://www.lingq.com/en/learn/YOURLANGUAGE/web/reader/"+str(r.json()["id"]))