Skip to content

feat: add support for Sora service#1454

Open
Hk-Gosuto wants to merge 3 commits intoimputnet:mainfrom
Hk-Gosuto:feat/add-sora-service
Open

feat: add support for Sora service#1454
Hk-Gosuto wants to merge 3 commits intoimputnet:mainfrom
Hk-Gosuto:feat/add-sora-service

Conversation

@Hk-Gosuto
Copy link
Contributor

Added support for downloading videos from Sora (sora.com)

test:
https://sora.chatgpt.com/p/s_68deacf22a84819192c0c8f05a30ae01

@Myxtral
Copy link

Myxtral commented Oct 11, 2025

Why the need? Doesn't the Sora website just let you download from it already?

@Hk-Gosuto
Copy link
Contributor Author

Why the need? Doesn't the Sora website just let you download from it already?

Because Sora only allows downloads through a regular web browser. When accessed via a mobile app, the download button doesn’t work, so this PR enables video downloads in that scenario as well. It can also be used together with iOS Shortcuts for quick video downloads.

Copy link

@ethrydevelops ethrydevelops left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You shouldn't need to search through all the script tags. The video source is exposed in meta[property="og:video"].

- Use sora.chatgpt.com domain for all requests
- Prioritize og:video meta tag extraction over script parsing
- Simplify fallback regex patterns and remove complex script searching
- Fix case-insensitive matching for HTML title tags
- Reduce code complexity from ~50 to ~25 lines in extraction logic
- Add conditional check before HTML entity decoding to avoid unnecessary processing
- Reorder entity replacement to process & last, preventing double-decoding
- Add support for &imputnet#39; entity (alternative single quote encoding)
- Prevent duplicate decoding by only applying fallback decoding when og:video wasn't used
- Addresses CodeQL 'Double escaping or unescaping' high severity finding
@Hk-Gosuto
Copy link
Contributor Author

You shouldn't need to search through all the script tags. The video source is exposed in meta[property="og:video"].

Thanks for pointing that out! I've updated the implementation to use the meta[property="og:video"] tag directly instead of iterating through all the script tags. This makes the code cleaner and more reliable. Appreciate the suggestion!

@br0k3x
Copy link

br0k3x commented Mar 8, 2026

I've implemented the service onto my own instance however you didn't add any tests, and Sora is Cloudflare protected, so I also needed to implement FlareSolverr.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants