Cobaltik
Kotlin Multiplaform wrapper library for media downloader Cobalt API (cobalt.tools)
How to add cobaltik as a dependency
Gradle (kotlin)
implementation("me.darefox:cobaltik:2.0.0")
Gradle
implementation 'me.darefox:cobaltik:2.0.0'
Apache Maven
<dependency>
<groupId>me.darefox</groupId>
<artifactId>cobaltik</artifactId>
<version>2.0.0</version>
</dependency>
What class should I use?
Difference between Wrapper (Cobalt) and Raw API implementation (CobaltRaw) is:
Using wrapper class (Cobalt)
Create simple request
import me.darefox.cobaltik.wrapper.Cobalt
suspend fun simpleRequest(): WrappedCobaltResponse {
val cobaltApiUrl = " https://co.wuk.sh/"
val cobaltClient = Cobalt(cobaltApiUrl)
val youtubeVideo = "https://www.youtube.com/watch?v=qWNQUvIk954"
return cobaltClient.request(youtubeVideo)
}
Get data from wrapped response
suspend fun getSpecificResponse() {
val response: WrappedCobaltResponse = simpleRequest()
when (response) {
is ErrorResponse -> println("error: ")
RedirectResponse -> println()
StreamResponse -> println()
-> println(response)
}
}
Override default request settings
suspend fun overrideDefaultRequest(cobaltClient: Cobalt): WrappedCobaltResponse {
val youtubeVideo = "https://www.youtube.com/watch?v=qWNQUvIk954"
return cobaltClient.request(youtubeVideo) {
videoQuality = VideoQuality.MAX
videoCodec = VideoCodec.AV1
muteAudio = true
}
}
Use specific builders
Use request object instead of builders
suspend fun useRequestObject(cobaltClient: Cobalt): WrappedCobaltResponse {
val youtubeVideo = "https://www.youtube.com/watch?v=qWNQUvIk954"
val request = CobaltRequest(
url = youtubeVideo,
videoCodec = VideoCodec.AV1,
videoQuality = VideoQuality.MAX,
useDubLang = true,
isAudioMuted = false
)
return cobaltClient.request(request)
}
Get server info
fun getServerInfo(cobaltClient: Cobalt): CobaltServerInfo {
return cobaltClient.getServerInfo()
}
Using raw API class (CobaltRaw)
Create raw client
fun createRawClient(): CobaltRaw {
val cobaltApiUrl = "https://co.wuk.sh/"
return CobaltRaw(cobaltApiUrl)
}
Create raw request
suspend fun rawRequest(rawClient: CobaltRaw): CobaltResponse {
val request = CobaltRequest(
url = "https://www.youtube.com/watch?v=qWNQUvIk954",
videoCodec = VideoCodec.AV1,
videoQuality = VideoQuality.MAX,
useDubLang = true,
isAudioMuted = false
)
return rawClient.request(request)
}
Get server info
suspend fun getServerInfoRaw(rawClient: CobaltRaw): CobaltServerInfo {
return rawClient.getServerInfo()
}