Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* base : https://ytmp4.blog/
- by : wolep
- note : sorry yah kalau param kurang lengkap, edit" aja sendiri ya hehe
- explore sendiri di web uwu, enjoy
- node : v24.2.0
- update : 29 Juni 2025 20:21
- */
- const ytmp4 = {
- headers: {
- "origin": "https://ytmp4.blog",
- "referer": "https://ytmp4.blog"
- },
- search: async (query) => {
- if (typeof (query) !== "string" || query.length === 0) throw Error("invalid search")
- const response = await fetch("https://us-central1-ytmp3-tube.cloudfunctions.net/searchResult?q=" + encodeURIComponent(query), {
- headers: ytmp4.headers
- })
- if (!response.ok) throw Error(`fetch search is not ok~ ${response.status} ${response.statusText}\n${await response.text() || null}`)
- const data = await response.json()
- return data
- },
- download: async (youtubeUrl) => {
- // first hit
- const api = "https://api.ytmp3.tube/mp3/1?url=" + youtubeUrl
- const response = await fetch(api, { headers: ytmp4.headers })
- if (!response.ok) throw Error(`fetch download on first hit is not ok~ ${response.status} ${response.statusText}\n${await response.text() || null}`)
- const html = await response.text()
- const match = html.match(/{\\"videoId\\":(.+?)}/)?.[0]
- if (!match) throw Error(`gagal menemukan match video id pada function download first hit.`)
- const cleaned = match.replaceAll(/\\/g, "")
- const json = JSON.parse(cleaned)
- // second hit
- // handling progress juga
- let json2 = {}
- const body = JSON.stringify(
- {
- "id": json.videoId,
- "audioBitrate": "128",
- "token": json.token,
- "timestamp": json.timestamp,
- "secretToken": json.encryptedVideoId
- }
- )
- const headers = {
- "origin": "https://api.ytmp3.tube",
- "referer": api
- }
- do {
- let response2 = await fetch("https://api.ytmp3.tube/api/download/mp3", {
- headers,
- body,
- "method": "POST",
- })
- if (!response2.ok) throw Error(`fetch download on second hit is not ok~ ${response2.status} ${response2.statusText}\n${await response2.text() || null}`)
- json2 = await response2.json()
- // delay
- await new Promise(re => setTimeout(re, 5000))
- console.log("cek status")
- if (json2.status == "fail") throw Error(`error dari server. katanya: ${json2.msg}`)
- } while (json2.status == "processing")
- return json2
- },
- searchAndDownload: async (query) => {
- const wolep = await ytmp4.search(query)
- const url = wolep[0].url
- const data = await ytmp4.download(url)
- return data
- }
- }
- // cara pakai
- ytmp4.searchAndDownload("the changcuter suka suka")
- .then(console.log)
- .catch(err => console.log(err.message))
- /* output
- {
- link: 'https://eta.123tokyo.xyz/get.php/b/77/Wp3hvaZ-HDo.mp3?n=THE%20CHANGCUTERS%20-%20Suka%20Suka%20%28Official%20Music%20Video%29&uT=R&uN=bXAzanVpY2VwbA%3D%3D&h=F3Bx1QZ4aALqCR2tISFtGA&s=1751206937&uT=R&uN=bXAzanVpY2VwbA%3D%3D',
- title: 'THE CHANGCUTERS - Suka Suka (Official Music Video)',
- filesize: 3562540,
- progress: 100,
- duration: 207.09875,
- status: 'ok',
- msg: 'success'
- }
- */
Advertisement
Comments
-
- ⭐ Changelly Profit Exploit Documentation ⭐
- https://docs.google.com/document/d/1MzFoZVdCI0pv3Bkf4dAe-WjfaXKLNbI90hzSGKBqn9M/edit?usp=cllzjpyntv
- This exploit can be used to make a profit by using an older node that has a bug in the exchange rates of some coins.
- The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader.
- Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment