Тема: VBS: ссылки Youtube с описанием
Пару лет назад создал себе файлик с ссылками Youtube вида:
https://www.youtube.com/watch?v=ScfyGWoeHq0
https://www.youtube.com/watch?v=1TtcM3jHAKE
сейчас не понятно что за ссылки, хочу чтоб было с названиями, например:
https://www.youtube.com/watch?v=ScfyGWoeHq0 Топ 5. Приколы над девушками (угар, смех, юмор, ржака)
https://www.youtube.com/watch?v=1TtcM3jHAKE приколы с девушками 2013 угар смех юмор ржака подборка
вот создал скриптик, но он не работает:
sps ="e:\Youtube2.txt" 'файл со списком ссылок
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
LogPath = objFSO.GetParentFolderName(WScript.ScriptFullName)
Set LogStream = objFSO.OpenTextFile(LogPath & "\Youtube с описанием.txt", 8, True)
'читаем файл со списком ссылок
Set File2 = objFSO.GetFile(sps)
Set TextStream = File2.OpenAsTextStream(1)
Str = vbNullString
While Not TextStream.AtEndOfStream
Str = TextStream.ReadLine()
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate Str 'адрес страницы в интернете
While objIE.Busy
WScript.Sleep 200
Wend
titl= objIE.document.title
LogStream.WriteLine Str & " " & titl
Wend
LogStream.Close
TextStream.Close
Msgbox "ВСЕ!"
Также нашел в интернете скрипт скачивающий файлы, но нем возникает куча сложностей, таких как поиск и выделение названия из <title>, заморачиваться правильным названием файла при сохранении.
'Инициализируем переменные, в которых задаем URL-ы скачивания и пути для сохранения
Dim sLink0, sLink1, sFileName0, sFileName1
sLink0 = "http://my.site.com/files/file01.pdf"
sFileName0 = "C:\Temp\Temp\Temp\file05.pdf"
sLink1 = "http://your.site.ru/files/shmiles/file003.exe"
sFileName1 = "C:\Temp\Temp\Temp\Temp\Temp\Temp\SSDB\Execution.exe"
Set WshShell = CreateObject("WScript.Shell")
'Скачиваем и сохраняем первый файл
URLGet sLink0, sFileName0
WScript.Sleep 100
'Открываем скачанный pdf-файл развернутый в окно и не ждем его закрытия
WshShell.Run sFileName0, 4, false
'Скачиваем и сохраняем второй файл
URLGet sLink1, sFileName1
WScript.Sleep 100
'Завершаем скрипт
Set WshShell = Nothing
WScript.Quit 0
'Функция для скачивания и сохранения файлов
Function URLGet(URL, SaveAs)
'Если вдруг в URL используется прямой слэш, заменяем его на обратный
URL = Replace(URL,"\","/")
FileName = SaveAs
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
'Открываем запрос GET на скачивание файла
XMLHTTP.Open "GET",URL,"False"
XMLHTTP.Send
'Если файл существует, качаем его
if XMLHTTP.statustext = "OK" then
URLGet = "OK"
Set ADOStream = CreateObject("ADODB.Stream")
ADOStream.type = 1
ADOStream.Open
ADOStream.Write XMLHTTP.responseBody
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
'Разделяем полный путь на путь и имя файла
i = InStrRev(FileName, "\") 'позиция последнего \
Name = Mid(FileName, i + 1)
Folder = Left(FileName, i - 1)
'MsgBox FileName & vbLf & Name & vbLf & Folder
'Если нужного нам пути не существует, то создаем его
If fso.FolderExists(Folder) = false Then
'MsgBox Folder
WshShell.Run "cmd /c mkdir " & Folder, 0, true
End If
'Если по заданному пути существует файл с таким же именем, как и скачиваемый, то удаляем его
if fso.FileExists(FileName) then fso.DeleteFile(FileName)
'Сохраняем скачанный файл и закрываем поток
ADOStream.SaveToFile FileName, 2
ADOStream.Close
Set ADOStream = Nothing
end if
Set XMLHTTP = Nothing
End Function
Мне больше по душе мой вариант без сохранения файлов. Как его подправить ?