
Extracts YouTube videos and comments, maintaining compatibility with original usage. Refactored for improved readability, structure, and platform compatibility, with a pure Kotlin JSON implementation.
This repository is a Compose Multiplatform-compatible adaptation of the NewPipeExtractor, forked from version v0.24.5. It is intended for extracting YouTube and SoundCloud content within Kotlin Multiplatform projects.
nanojson with a pure Kotlin implementation.implementation("io.github.yushosei:newpipe-extractor-kmp:1.2.1")NewPipe.init(DefaultDownloaderImpl.initDefault())ExtractorHelper.searchFor(
SERVICE_ID, searchText, listOf("videos"),
"",
)ExtractorHelper.getMoreSearchItems(
SERVICE_ID, searchText, listOf("videos"), "", page
)ExtractorHelper.suggestionsFor(SERVICE_ID, searchText)ExtractorHelper.getStreamInfo(SERVICE_ID, item.url)For more details, refer to the sampleApp.
https://github.com/user-attachments/assets/d4221163-619f-49fa-83a5-48b580da29af
https://github.com/user-attachments/assets/5f8ab309-4e46-40fb-9911-ff82c18c5a3e
https://github.com/user-attachments/assets/35e628ea-50ad-4cba-a970-7e5cb4705823
β This demo showcases successful audio stream extraction and search suggestions retrieval on both Android and iOS using Kotlin Multiplatform code.
Although the test focused on audio streams for simplicity, the extractor is also capable of handlingvideo streams.(TODO) All core logic is written in pure Kotlin, making it platform-independent and theoretically usable across desktop and web environments too.The current implementation has been verified on Android and iOS targets using Compose Multiplatform UI.
π¦ We plan to release a cleaned-up and library-ready version of the module in the near future to facilitate reuse and integration !
This project includes a reimplementation of nanojson in pure Kotlin, rewritten from scratch to work within the Kotlin Multiplatform (NewPipeExtractor).
Serializable, Optional, Pattern, URL, Objects)Pair, ManifestCache, etc.) to idiomatic KotlinSerializable with @Serializable and kotlinx.serialization
nanojson dependencynanojson using pure Kotlin logicCore functionality has been migrated but not yet fully cleaned or published.
commonTest casesrunBlocking and mock data for multiplatform testabilityNewPipeExtractor v0.24.5
This project is licensed under the GNU General Public License v3 or (at your option) any later version.
This repository is a Compose Multiplatform-compatible adaptation of the NewPipeExtractor, forked from version v0.24.5. It is intended for extracting YouTube and SoundCloud content within Kotlin Multiplatform projects.
nanojson with a pure Kotlin implementation.implementation("io.github.yushosei:newpipe-extractor-kmp:1.2.1")NewPipe.init(DefaultDownloaderImpl.initDefault())ExtractorHelper.searchFor(
SERVICE_ID, searchText, listOf("videos"),
"",
)ExtractorHelper.getMoreSearchItems(
SERVICE_ID, searchText, listOf("videos"), "", page
)ExtractorHelper.suggestionsFor(SERVICE_ID, searchText)ExtractorHelper.getStreamInfo(SERVICE_ID, item.url)For more details, refer to the sampleApp.
https://github.com/user-attachments/assets/d4221163-619f-49fa-83a5-48b580da29af
https://github.com/user-attachments/assets/5f8ab309-4e46-40fb-9911-ff82c18c5a3e
https://github.com/user-attachments/assets/35e628ea-50ad-4cba-a970-7e5cb4705823
β This demo showcases successful audio stream extraction and search suggestions retrieval on both Android and iOS using Kotlin Multiplatform code.
Although the test focused on audio streams for simplicity, the extractor is also capable of handlingvideo streams.(TODO) All core logic is written in pure Kotlin, making it platform-independent and theoretically usable across desktop and web environments too.The current implementation has been verified on Android and iOS targets using Compose Multiplatform UI.
π¦ We plan to release a cleaned-up and library-ready version of the module in the near future to facilitate reuse and integration !
This project includes a reimplementation of nanojson in pure Kotlin, rewritten from scratch to work within the Kotlin Multiplatform (NewPipeExtractor).
Serializable, Optional, Pattern, URL, Objects)Pair, ManifestCache, etc.) to idiomatic KotlinSerializable with @Serializable and kotlinx.serialization
nanojson dependencynanojson using pure Kotlin logicCore functionality has been migrated but not yet fully cleaned or published.
commonTest casesrunBlocking and mock data for multiplatform testabilityNewPipeExtractor v0.24.5
This project is licensed under the GNU General Public License v3 or (at your option) any later version.