Advertisement
Guest User

Untitled

a guest
Mar 24th, 2022
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 3.77 KB | None | 0 0
  1.     Private SID As String
  2.     Private wc As WebClient
  3.  
  4.     Private Function GetURL(name As String) As String
  5.         Return "https://p.ytmp3eu.com/" & name
  6.     End Function
  7.  
  8.     Private Function PerformSearch(link As String) As String
  9.         Const NoCache = "-1"
  10.         Dim req = New Specialized.NameValueCollection()
  11.         req.Add("id", link)
  12.         req.Add("type", "audio")
  13.         req.Add("sid", SID)
  14.         Dim res = wc.UploadValues(GetURL("search2.php"), req)
  15.         Dim txt = System.Text.Encoding.UTF8.GetString(res)
  16.         If txt.StartsWith(NoCache) Then
  17.             WaitForConversion(link)
  18.             txt = PerformSearch(link)
  19.             If txt.StartsWith(NoCache) Then Throw New Exception("Unexpected response")
  20.         End If
  21.         Return txt
  22.     End Function
  23.  
  24.     Private Sub WaitForConversion(link As String)
  25.         Dim req = New Specialized.NameValueCollection()
  26.         req.Add("id", link)
  27.         req.Add("type", "audio")
  28.         req.Add("sid", SID)
  29.         req.Add("onoffswitch", "true")
  30.         wc.UploadValues(GetURL("responsive2_n.php"), req)
  31.         req.Clear()
  32.         req.Add("idt", SID)
  33.         Dim res As String = ""
  34.         Do Until res = "-1"
  35.             Dim b = wc.UploadValues(GetURL("getprogress.php"), req)
  36.             res = System.Text.Encoding.UTF8.GetString(b)
  37.             Threading.Thread.Sleep(1000)
  38.         Loop
  39.     End Sub
  40.  
  41.     Private Function GetDirectLink(metaData As String) As String
  42.         Dim start = "window.location.assign("""
  43.         Dim parts = metaData.Split(",__")
  44.         If parts.Length < 5 Then Throw New Exception("Invalid response in PerformSearch")
  45.  
  46.         Dim req = New Specialized.NameValueCollection()
  47.         req.Add("video_id", parts(1))
  48.         req.Add("type", "audio")
  49.         req.Add("sid", SID)
  50.         req.Add("video_name", parts(0))
  51.         req.Add("file_size", parts(2))
  52.         req.Add("file_length", parts(3))
  53.         req.Add("bitrate", parts(4))
  54.         req.Add("address", parts(5))
  55.         req.Add("onoffswitch", "true")
  56.         Dim res = wc.UploadValues(GetURL("responsivet2d.php"), req)
  57.         Dim text = System.Text.Encoding.UTF8.GetString(res)
  58.         Dim spos = text.IndexOf(start)
  59.         If spos = -1 Then Throw New Exception("Invalid response in GetDirectLink")
  60.         Dim link = text.Substring(spos + start.Length)
  61.         Return link.Substring(0, link.IndexOf(""""))
  62.     End Function
  63.  
  64.     Private Sub GenerateSID()
  65.         SID = ""
  66.         Dim rnd As New Random()
  67.         For i As Integer = 0 To 22
  68.             Dim r = rnd.Next(0, 16)
  69.             If r < 10 Then
  70.                 r += 48
  71.             Else
  72.                 r += 87
  73.             End If
  74.             SID &= Chr(r)
  75.         Next
  76.         SID &= "."
  77.         For i As Integer = 0 To 7
  78.             SID &= Chr(rnd.Next(48, 57))
  79.         Next
  80.     End Sub
  81.  
  82.     Public Function DownloadYoutubeMP3(youtubeLink As String) As Byte()
  83.         If wc Is Nothing Then
  84.             wc = New WebClient
  85.             wc.Encoding = System.Text.Encoding.UTF8
  86.             wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36")
  87.             wc.Headers.Add("Origin", "https://ytmp3eu.com")
  88.             wc.Headers.Add("Referer", "https://ytmp3eu.com")
  89.         End If
  90.         If SID Is Nothing Then GenerateSID()
  91.         Dim metaData = PerformSearch(youtubeLink)
  92.         Dim audioLink = GetDirectLink(metaData)
  93.         ' Se vuoi solo il link ritorna audioLink
  94.         Return wc.DownloadData(audioLink)
  95.     End Function
  96.  
  97.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  98.         Dim mp3 = DownloadYoutubeMP3("https://www.youtube.com/watch?v=-YQ8IbVIwPM")
  99.         IO.File.WriteAllBytes("test.mp3", mp3)
  100.     End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement