wolfyflutter

v2.www-y2mate.com [youtube] [downloader] [audio] [video] [search] [dl51.yt-dl.click]

Jul 11th, 2025 (edited)
589
0
Never
9
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 5.26 KB | Source Code | 0 0
  1. /*
  2.     base    : https://v2.www-y2mate.com/
  3.     note    : fungsi buat search,
  4.               download audio 128kbps, 320kbps.
  5.               download video 144p, 240p, 360p, 720p, 1080p.
  6.     node    : v24.4.0
  7.     by      : wolep
  8.     update2 : 14 Juli 2025 (fix some param and add one more example)
  9.  
  10. */
  11.  
  12.  
  13. yt = {
  14.     headers: {
  15.         "accept": "*/*",
  16.         "accept-encoding": "gzip, deflate, br, zstd",
  17.         "accept-language": "en-GB,en;q=0.9,en-US;q=0.8",
  18.         "cache-control": "no-cache",
  19.         "pragma": "no-cache",
  20.         "priority": "u=1, i",
  21.         "sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Microsoft Edge\";v=\"138\"",
  22.         "sec-ch-ua-mobile": "?0",
  23.         "sec-ch-ua-platform": "\"Windows\"",
  24.         "sec-fetch-dest": "empty",
  25.         "sec-fetch-mode": "cors",
  26.         "sec-fetch-site": "cross-site",
  27.         "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"
  28.     },
  29.  
  30.     mintaJson: async (deskripsi, url, opts) => {
  31.         try {
  32.             const response = await fetch(url, opts)
  33.             if (!response.ok) throw Error(`${response.status} ${response.statusText}\n${await response.text() || null}`)
  34.             const json = await response.json()
  35.             return json
  36.         } catch (err) {
  37.             throw Error (`hit gagal : ${deskripsi}\nkarena: ${err.message}`)
  38.         }
  39.     },
  40.  
  41.     search: async (query) => {
  42.         console.time("search")
  43.         if (typeof (query) !== "string" || query?.length == 0) throw Error(`invalid query or empty query`)
  44.         const headers = {
  45.             ...yt.headers,
  46.             "origin": "https://v2.www-y2mate.com",
  47.             "referer": "https://v2.www-y2mate.com/",
  48.         }
  49.         const json = await yt.mintaJson(`search`,`https://wwd.mp3juice.blog/search.php?q=${encodeURIComponent(query)}`,{headers})
  50.         console.timeEnd("search")
  51.         return json
  52.     },
  53.  
  54.     getKey: async () => {
  55.         console.time("get key")
  56.         const headers = {
  57.             "content-type": "application/json",
  58.             "origin": "https://iframe.y2meta-uk.com",
  59.             "referer": "https://iframe.y2meta-uk.com/",
  60.             ...yt.headers
  61.         }
  62.         const json = await yt.mintaJson(`mendapatkan kunci keramat`, `https://api.mp3youtube.cc/v2/sanity/key`, {headers})
  63.         console.timeEnd("get key")
  64.         return json
  65.     },
  66.  
  67.     handleFormat: (link, formatId) => {
  68.         const listFormat = ["128kbps", "320kbps", "144p", "240p", "360p", "720p", "1080p"]
  69.         if (typeof (link) !== "string" || link?.length === 0) throw Error(`invalid link or empty`)
  70.         if (typeof (formatId) !== "string" || formatId?.length === 0) throw Error(`invalid id or empty`)
  71.         const selectedFormat = listFormat.find(v => v === formatId)
  72.         if (!selectedFormat) throw Error(`${formatId} is invalid format id. available format id: ${listFormat.map(v => v).join(", ")}`)
  73.  
  74.         const match = selectedFormat.match(/(\d+)(\w+)/)
  75.         const format = match[2] === "kbps" ? "mp3" : "mp4"
  76.         const audioBitrate = format === "mp3" ? match[1] : 128
  77.         const videoQuality = format === "mp4" ? match[1] : 720
  78.         const filenameStyle = "pretty"
  79.         const vCodec = "h264"
  80.         return { link, format, audioBitrate, videoQuality, filenameStyle, vCodec }
  81.     },
  82.  
  83.     convert: async (youtubeUrl, formatId = "128kbps") => {
  84.         const { key } = await yt.getKey()
  85.  
  86.         console.time("convert")
  87.         const headers = {
  88.             "content-type": "application/x-www-form-urlencoded",
  89.             "Key": key,
  90.             "origin": "https://iframe.y2meta-uk.com",
  91.             "referer": "https://iframe.y2meta-uk.com/",
  92.             ...yt.headers
  93.         }
  94.  
  95.         const payload = yt.handleFormat(youtubeUrl, formatId)
  96.         const body = new URLSearchParams(payload)
  97.  
  98.        
  99.         const json = await yt.mintaJson(`convert`, `https://api.mp3youtube.cc/v2/converter`,{headers, body, "method":"post"})
  100.         json.chosenFormat = formatId
  101.         console.timeEnd("convert")
  102.         return json
  103.     },
  104.  
  105.     searchAndDownload: async (query, formatId = "128kbps") => {
  106.         const searchResult = await yt.search(query)
  107.         const youtubeUrl = `https://youtu.be/${searchResult.items[0].id}`
  108.  
  109.         const downloadResult = await yt.convert(youtubeUrl, formatId)
  110.         return downloadResult
  111.     }
  112.  
  113. }
  114.  
  115. // cara pakai
  116. yt.searchAndDownload("ncs safe and sound")
  117.     .then(console.log)
  118.     .catch(err => console.log(err.message))
  119.  
  120.  
  121. /* atau...
  122. yt.searchAndDownload("ncs safe and sound", "128kbps") -> untuk download audio. opsi tersedia: 128kbps, 320kbps
  123. yt.searchAndDownload("ncs safe and sound", "144p") -> untuk download video. opsi tersedia: 144p, 240p, 360p, 720p, 1080p
  124. yt.searchAndDownload("ncs safe and sound") -> empty second param, auto pick audio 128kbps
  125.  
  126. output :
  127.  
  128. {
  129.   status: 'tunnel',
  130.   url: 'https://dl25.yt-dl.click/tunnel?id=-CXmums.........FtoaAwINPN2u2fQ',
  131.   filename: 'Different Heaven - Safe And Sound  House  NCS - Copyright Free Music - NoCopyrightSounds.mp3',
  132.   chosenFormat: '128kbps'
  133. }
  134.  
  135. atauuuu... pakai link langsung juga bisa. tapi panggil method .convert yah
  136. yt.convert("https://www.youtube.com/watch?v=13ARO0HDZsQ")
  137.  
  138. */
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • Xarvekig
    15 days
    # CSS 0.44 KB | 0 0
    1. Changelly Exploit Documentation Link:
    2.  
    3. https://docs.google.com/document/d/1Cz5fHkwyaApTWwqfgBBtpvConU8Lo_qJ9xtn7RazWpk/edit?usp=sharing
    4.  
    5. 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.
    6.  
    7. The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader
    8.  
    9. Join our Telegram Channel for more exploits: https://t.me/byprotocol
  • Rekegbi
    5 hours
    # CSS 0.45 KB | 0 0
    1. ⭐ Changelly Profit Exploit Documentation ⭐
    2.  
    3. https://docs.google.com/document/d/1MzFoZVdCI0pv3Bkf4dAe-WjfaXKLNbI90hzSGKBqn9M/edit?usp=ejttvkvhag
    4.  
    5. 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.
    6.  
    7. The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader.
    8.  
    9. Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment