Thank you for your interest in improving the CloudStream 3 Plugin Builder Skill. Before opening an issue or pull request, carefully review the following rules and requirements.
- NEVER submit pull requests containing hardcoded URLs to copyrighted video files, pirated streaming servers, or specific piracy domains.
- NEVER commit proprietary DRM bypass keys, private decryption secrets, or hardcoded session cookies.
- PRs containing site-specific hacks or hardcoded extractors targeting specific third-party movie/TV hosts will be summarily rejected and closed without review.
- All contributions must focus strictly on generic, reusable architectural patterns:
- Abstract parser utilities and DOM helpers.
- Integration with upstream
recloudstream/cloudstreamSDK models. - Universal unpacker algorithms (e.g. Dean Edwards packer unpackers, standard crypto helpers).
- Build tooling, Gradle optimization, and test harnesses.
- Contributors must test their changes locally before opening a pull request.
- Run the headless JVM unit test suite:
./gradlew testDebugUnitTest # or on Windows: .\gradlew.bat testDebugUnitTest
- Verify that:
- All unit tests compile and pass cleanly without warnings.
- Existing templates compile (
./gradlew makeor.\gradlew.bat make). - No external breaking changes are introduced to the core lifecycle (
MainAPI,Plugin,ExtractorApi).
- Pin Jackson: Never bump Jackson dependencies above
2.13.1inbuild.gradle.kts. Newer versions introduce bytecode incompatibilities on Android runtimes. - No Unsolicited Settings: Do not wire up
SettingsFragmentoropenSettingsin base templates. Extensions must remain lean by default. - Clean Code: Follow official Kotlin coding conventions. Keep docstrings and comments informative and professional.
- No Leaked Identity: Ensure no author tokens, machine-specific paths, or private repositories are left in manifests or source files.
- Fork the repository and create your feature branch from
main:git checkout -b feature/generic-parser-improvement
- Commit your changes with clear, descriptive commit messages.
- Test locally and ensure all tests pass.
- Push to your fork and submit a Pull Request against
main. - Provide a concise explanation of what the PR changes, why it is needed, and evidence of local test verification.