[GH-ISSUE #74] Boosty API returned unexpected structures #12

Closed
opened 2026-10-13 19:45:34 +00:00 by bsakaguchi · 7 comments
Owner

Originally created by @avrohop5691-del on GitHub (Sep 29, 2025).
Original GitHub issue: https://github.com/Glitchy-Sheep/boosty-downloader/issues/74

(tcsh)> boosty-downloader -u -t

[21:55:20] Boosty_Downloader.INFO 🔹: You are using the latest boosty-downloader version.

[21:55:23] Boosty_Downloader.INFO 🔹: Processing page 1 | Total posts so far: 100

[21:55:25] Boosty_Downloader.ERROR ❌: Boosty API returned unexpected structures, the client probably needs to be updated.
Please report this at GitHub issues of the project: https://github.com/Glitchy-Sheep/boosty-downloader/issues

       Details: [{'type': 'union_tag_invalid', 'loc': ('data', 1), 'msg': "Input tag 'audio_file' found using 'type' does
       not match any of the expected tags: 'text', 'image', 'link', 'file', 'video', 'ok_video', 'header', 'list'",      
       'input': {'album': '', 'viewsCounter': 0, 'uploadStatus': 'ok', 'id': '65874dea-4511-4ef5-b664-ae383922fed0',     
       'url': 'https://cdn.boosty.to/audio/65874dea-4511-4ef5-b664-ae383922fed0', 'artist': "ScAnDroid Experiment's",    
       'showViewsCounter': False, 'title': 'Drops of fate.mp3', 'complete': True, 'fileType': 'MP3', 'duration': 255,    
       'size': 12557610, 'timeCode': 0, 'type': 'audio_file', 'track': 'Drops of Fate'}, 'ctx': {'discriminator':        
       "'type'", 'tag': 'audio_file', 'expected_tags': "'text', 'image', 'link', 'file', 'video', 'ok_video', 'header',  
       'list'"}, 'url': 'https://errors.pydantic.dev/2.11/v/union_tag_invalid'}]   
Originally created by @avrohop5691-del on GitHub (Sep 29, 2025). Original GitHub issue: https://github.com/Glitchy-Sheep/boosty-downloader/issues/74 (tcsh)> boosty-downloader -u <boostycreator> -t [21:55:20] Boosty_Downloader.INFO 🔹: You are using the latest boosty-downloader version. [21:55:23] Boosty_Downloader.INFO 🔹: Processing page 1 | Total posts so far: 100 [21:55:25] Boosty_Downloader.ERROR ❌: Boosty API returned unexpected structures, the client probably needs to be updated. Please report this at GitHub issues of the project: https://github.com/Glitchy-Sheep/boosty-downloader/issues Details: [{'type': 'union_tag_invalid', 'loc': ('data', 1), 'msg': "Input tag 'audio_file' found using 'type' does not match any of the expected tags: 'text', 'image', 'link', 'file', 'video', 'ok_video', 'header', 'list'", 'input': {'album': '', 'viewsCounter': 0, 'uploadStatus': 'ok', 'id': '65874dea-4511-4ef5-b664-ae383922fed0', 'url': 'https://cdn.boosty.to/audio/65874dea-4511-4ef5-b664-ae383922fed0', 'artist': "ScAnDroid Experiment's", 'showViewsCounter': False, 'title': 'Drops of fate.mp3', 'complete': True, 'fileType': 'MP3', 'duration': 255, 'size': 12557610, 'timeCode': 0, 'type': 'audio_file', 'track': 'Drops of Fate'}, 'ctx': {'discriminator': "'type'", 'tag': 'audio_file', 'expected_tags': "'text', 'image', 'link', 'file', 'video', 'ok_video', 'header', 'list'"}, 'url': 'https://errors.pydantic.dev/2.11/v/union_tag_invalid'}]
bsakaguchi 2026-10-13 19:45:34 +00:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@Glitchy-Sheep commented on GitHub (Sep 29, 2025):

Hi! Thank you for reporting the issue!

I think I’ve seen this exact problem in #61.

It happens because audio content is not yet supported by the downloader.

I would really like to implement this soon, but it requires significant changes to the caching layer (so it doesn’t break other users’ caches).

I think I will try to fix it next month, but I’m not sure yet.
As a workaround, you can still download specific posts by URL that don’t contain audio parts.

<!-- gh-comment-id:3348640439 --> @Glitchy-Sheep commented on GitHub (Sep 29, 2025): Hi! Thank you for reporting the issue! I think I’ve seen this exact problem in #61. It happens because audio content is not yet supported by the downloader. I would really like to implement this soon, but it requires significant changes to the caching layer (so it doesn’t break other users’ caches). **I think I will try to fix it next month, but I’m not sure yet.** As a workaround, you can still download specific posts by URL that don’t contain audio parts.
Author
Owner

@Rast1234 commented on GitHub (Dec 5, 2025):

I got it to work, if anyone is interested you can update several files locally or clone a fork - see MR #77

<!-- gh-comment-id:3615278891 --> @Rast1234 commented on GitHub (Dec 5, 2025): I got it to work, if anyone is interested you can update several files locally or clone a fork - see MR #77
Author
Owner

@Laynholt commented on GitHub (Dec 29, 2025):

Rast1234's solution works for me, thanks!

<!-- gh-comment-id:3695255373 --> @Laynholt commented on GitHub (Dec 29, 2025): Rast1234's solution works for me, thanks!
Author
Owner

@Glitchy-Sheep commented on GitHub (Jan 6, 2026):

Hey guys, I'm glad to announce the 2.1.0 release, which is now support audio downloading as well, I added some db migrations in the caching logic, so you won't need to erase your existing caches.

Just run your boosty downloader to get a hint about updating or type pip install -U boosty-downloader or if you use pipx pipx install -U boosty-downloader

<!-- gh-comment-id:3712933538 --> @Glitchy-Sheep commented on GitHub (Jan 6, 2026): Hey guys, I'm glad to announce the 2.1.0 release, which is now support audio downloading as well, I added some db migrations in the caching logic, so you won't need to erase your existing caches. Just run your boosty downloader to get a hint about updating or type `pip install -U boosty-downloader` or if you use pipx `pipx install -U boosty-downloader`
Author
Owner

@Glitchy-Sheep commented on GitHub (Jan 6, 2026):

Now I will work on the file extensions issue. I think I will release the patch soon.

<!-- gh-comment-id:3712939979 --> @Glitchy-Sheep commented on GitHub (Jan 6, 2026): Now I will work on the file extensions issue. I think I will release the patch soon.
Author
Owner

@LonelyWZ commented on GitHub (Feb 3, 2026):

Same problem after finished 1-st page. Trying clear cache - don't work. Single post download after 1-st page don't work too. I cam download only first 5 posts of creator page.
✔ --- Finished page 1 ---

[15:28:54] Boosty_Downloader.ERROR ❌: Boosty API returned unexpected structures, the client probably needs to be
updated.
Please report this at GitHub issues of the project: https://github.com/Glitchy-Sheep/boosty-downloader/issues

       Details: [{'type': 'string_type', 'loc': ('data', 2, 'ok_video', 'uploadStatus'), 'msg': 'Input should be a
       valid string', 'input': None, 'url': 'https://errors.pydantic.dev/2.12/v/string_type'}, {'type':
       'string_type', 'loc': ('data', 3, 'ok_video', 'uploadStatus'), 'msg': 'Input should be a valid string',
       'input': None, 'url': 'https://errors.pydantic.dev/2.12/v/string_type'}]
<!-- gh-comment-id:3840791574 --> @LonelyWZ commented on GitHub (Feb 3, 2026): Same problem after finished 1-st page. Trying clear cache - don't work. Single post download after 1-st page don't work too. I cam download only first 5 posts of creator page. ✔ --- Finished page 1 --- [15:28:54] Boosty_Downloader.ERROR ❌: Boosty API returned unexpected structures, the client probably needs to be updated. Please report this at GitHub issues of the project: https://github.com/Glitchy-Sheep/boosty-downloader/issues Details: [{'type': 'string_type', 'loc': ('data', 2, 'ok_video', 'uploadStatus'), 'msg': 'Input should be a valid string', 'input': None, 'url': 'https://errors.pydantic.dev/2.12/v/string_type'}, {'type': 'string_type', 'loc': ('data', 3, 'ok_video', 'uploadStatus'), 'msg': 'Input should be a valid string', 'input': None, 'url': 'https://errors.pydantic.dev/2.12/v/string_type'}]
Author
Owner

@Glitchy-Sheep commented on GitHub (Feb 3, 2026):

Hey @LonelyWZ, thanks for the report!

This seems to be a slightly different issue.

The original problem was a missing special audio chunk, which has been fixed in the latest patch. In your case, uploadStatus is being returned as empty, which shouldn't happen under normal circumstances.

These are validation errors that occur when the server returns unexpected results.

In our case, it's related to ok_video - a Boosty video that may still be processing.
Could you check whether the video had finished uploading by the time you attempted the download?
Is it available now (and if yes, is the error still occurs)?

Also, could you check whether this occurs for other authors as well?
In the meantime, I think I would update the downloader to skip "unfinished posts" (process uploadStatus specially)

<!-- gh-comment-id:3842000571 --> @Glitchy-Sheep commented on GitHub (Feb 3, 2026): Hey @LonelyWZ, thanks for the report! This seems to be a slightly different issue. The original problem was a missing special audio chunk, which has been fixed in the latest patch. In your case, `uploadStatus` is being returned as empty, which shouldn't happen under normal circumstances. These are validation errors that occur when the server returns unexpected results. In our case, it's related to `ok_video` - a Boosty video that may still be processing. Could you check whether the video had finished uploading by the time you attempted the download? Is it available now (and if yes, is the error still occurs)? Also, could you check whether this occurs for other authors as well? In the meantime, I think I would update the downloader to skip "unfinished posts" (process `uploadStatus` specially)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Glitchy-Sheep/boosty-downloader#12
No description provided.