the simple cobalt API client written in typescript
npm install --save @tskau/tobalt
# yarn install @tskau/tobalt
# pnpm add @tskau/tobalt
// you can use require() to use tobalt
// const { Client } = require('@tskau/tobalt')
import { Client } from '@tskau/tobalt'
// you can use your own custom instance
// const COBALT_BASE_URL = 'https://co.tskau.team/api/'
const COBALT_BASE_URL = 'https://co.wuk.sh/api/'
// the initialization of the client
const cobalt = new Client({ baseUrl: COBALT_BASE_URL })
// the method to fetch the server information
const serverInfo = await cobalt.serverInfo()
// serverInfo() simply returns the response from cobalt
serverInfo.version // '7.13'
serverInfo.name // 'nl4'
serverInfo.url // 'https://nl4-co.wuk.sh/'
// fetching the "The Atomic Way" trailer in the VP9 codec
const singleContent = await cobalt.fetchContent({
url: 'https://www.youtube.com/watch?v=a-bu_ZUEwuk',
vCodec: 'vp9'
})
await singleContent.content.stream() // readable stream
await singleContent.content.save('/tmp/the-atomic-way.webm') // save to file
singleContent.content.url // 'https://nl4-co.wuk.sh/api/stream?t=...'
// fetching several videos from the tweet
const picker = await cobalt.fetchContent({
url: 'https://twitter.com/akepon0129/status/1782050982723273127'
})
picker.type // 'various' or 'images'
// the same thing like with single content
await picker.items[0].stream()
await picker.items[0].save('/tmp/silly-billy.mp4')
picker.items[0].url // 'https://video.twimg.com/ext_tw_video/...'
// the same thing as with picker but it has audio field
const pickerWithAudio = await cobalt.fetchContent({
url: 'https://www.tiktok.com/@matryoshk4/video/7231234675476532526'
})
await picker.audio.stream()
await picker.audio.save('/tmp/tiktok-audio.mp3')
picker.audio.url // "https://sf16-ies-music-va.tiktokcdn.com/obj/...'
- lostdusty/gobalt (client in golang)
- lostdusty/cobalt (cli client in golang)
- khyerdev/tcobalt (cli client in rust)