
Provider-based media client offering built-in YouTube audio downloads and English transcript extraction, modular engine plus native audio-encoding bridge, extensible provider architecture.
Provider-based Kotlin Multiplatform media client with a built-in YouTube provider for audio downloads and English transcripts.
repositories {
mavenCentral()
}
kotlin {
sourceSets {
commonMain.dependencies {
implementation("dev.lizz.ytdl:youtube-downloader-core:0.1.0-alpha04")
implementation("dev.lizz.ytdl:youtube-downloader-engine-youtube:0.1.0-alpha04")
}
}
}Published Maven coordinates and Kotlin packages use dev.lizz.ytdl.
import dev.lizz.ytdl.core.AudioDownloadOptions
import dev.lizz.ytdl.core.AudioDownloadRequest
import dev.lizz.ytdl.providers.youtube.JvmYoutubeProviderFactory
suspend fun downloadAudio(): String {
val client = JvmYoutubeProviderFactory.createDefault()
return client.downloadAudio(
AudioDownloadRequest(
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
options = AudioDownloadOptions(outputPath = "./downloads")
)
).path
}Android uses AndroidYoutubeProviderFactory.create(context).
iOS uses IosYoutubeProviderFactory.createDefault().
youtube-downloader-core: public KMP APIyoutube-downloader-engine-youtube: built-in YouTube provider implementation and factoriesandroid-native-media: owned Android LAME bridge used by the enginesamples: Compose Multiplatform sample moduleandroidApp: Android sample host appiosApp: iOS sample host appsignatureCipher, n, and anti-bot handling are still incompleteffmpeg for now./gradlew check
./gradlew publishAllPublicationsToBuildRepo
./gradlew :samples:compileKotlinDesktop
./gradlew :androidApp:assembleDebug
./gradlew :iosApp:compileKotlinIosSimulatorArm64Release and architecture notes live in docs/.
Provider-based Kotlin Multiplatform media client with a built-in YouTube provider for audio downloads and English transcripts.
repositories {
mavenCentral()
}
kotlin {
sourceSets {
commonMain.dependencies {
implementation("dev.lizz.ytdl:youtube-downloader-core:0.1.0-alpha04")
implementation("dev.lizz.ytdl:youtube-downloader-engine-youtube:0.1.0-alpha04")
}
}
}Published Maven coordinates and Kotlin packages use dev.lizz.ytdl.
import dev.lizz.ytdl.core.AudioDownloadOptions
import dev.lizz.ytdl.core.AudioDownloadRequest
import dev.lizz.ytdl.providers.youtube.JvmYoutubeProviderFactory
suspend fun downloadAudio(): String {
val client = JvmYoutubeProviderFactory.createDefault()
return client.downloadAudio(
AudioDownloadRequest(
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
options = AudioDownloadOptions(outputPath = "./downloads")
)
).path
}Android uses AndroidYoutubeProviderFactory.create(context).
iOS uses IosYoutubeProviderFactory.createDefault().
youtube-downloader-core: public KMP APIyoutube-downloader-engine-youtube: built-in YouTube provider implementation and factoriesandroid-native-media: owned Android LAME bridge used by the enginesamples: Compose Multiplatform sample moduleandroidApp: Android sample host appiosApp: iOS sample host appsignatureCipher, n, and anti-bot handling are still incompleteffmpeg for now./gradlew check
./gradlew publishAllPublicationsToBuildRepo
./gradlew :samples:compileKotlinDesktop
./gradlew :androidApp:assembleDebug
./gradlew :iosApp:compileKotlinIosSimulatorArm64Release and architecture notes live in docs/.