Skip to content

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!

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.

3 participants