Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- by wolep
- update 10 desember 2025
- base https://yt1s.com.co/
- */
- const yt = {
- _static: {
- apiAudio: 'https://dlsrv.online/api/download/mp3',
- apiVideo: 'https://dlsrv.online/api/download/mp4',
- baseHeaders: {
- "accept-encoding": "gzip, deflate, br, zstd",
- "content-type": "application/json",
- "origin": "https://yt1s.com.co",
- "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1"
- },
- },
- _resolvePayload: function (userFormat = '128k') {
- const validFormats = ['64k', '96k', '128k', '256k', '320k', '144p', '240p', '360p', '480p', '720p', '1080p']
- if (!validFormats.includes(userFormat)) throw Error(`invalid input '${userFormat}'. please use one of these ${validFormats.join(', ')}`)
- const api = /k$/.test(userFormat.trim()) ? this._static.apiAudio : this._static.apiVideo
- const quality = parseInt(userFormat) + ""
- return { api, quality }
- },
- download: async function (videoId, userFormat = '360p') {
- const { api, quality } = this._resolvePayload(userFormat)
- const headers = this._static.baseHeaders
- const body = JSON.stringify({ videoId, quality })
- const r = await fetch(api, { headers, body, method: 'post' })
- if (!r.ok) throw Error(`${r.status} ${r.statusText} di fungsi download`)
- const html = await r.text()
- const downloadUrl = html.match(/href='(.+?)';/)?.[1]
- if (!downloadUrl) throw Error(`gagal mendapatkan download url. regex fail!`)
- return { downloadUrl }
- },
- }
- // cara pakai
- yt.download('By7ctqcWxyM')
- .then(console.log)
- .catch(console.log)
- /* output
- {
- downloadUrl: 'https://yt1s-worker-3.dlsrv.online/tunnel?id=JH7DTysSS2xGNqv06ZpPf&exp=1765345200491&sig=lMXhGQ0grMog3jUutcFk3CWbJXDrdEjuPjvoPwE5GBs&sec=pFKd7cpsyIarX1jYufzxnQRB0Htpv-3nNP3ihXRnU0I&iv=_kxeDpzEIMs6-WbX3o7_SA'
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment