Я работаю над небольшой забавной программой для загрузки видео с веб-сайтов, которая позволяет загружать видео напрямую.
Пока у меня есть браузер SWT для загрузки страницы, где находится видео, и я использую JSoup проанализировать данные браузера HTML и найти ссылку на скачивание видео. Однако сайт, на котором я пытаюсь заставить это работать, требует входа для загрузки файлов. Если я использую обычный метод загрузки URL-адреса, он загружает страницу входа на веб-сайт.
Теперь из браузера SWT я могу щелкнуть ссылку для загрузки и получить диалоговое окно сохранения как, но хочу сохранить видео / файл в фоновом режиме. Любые идеи?
Что я пытался сделать, чтобы каким-то образом перенаправить данные из видеофайла при загрузке страницы в строку, а затем сохранить строку позже как файл MP4. Но, конечно, это не сработало ...
//Create Browser
Browser Browser = new Browser(shell, SWT.NONE);
Browser.setUrl("https://google.com");
Browser.setBounds(10, 43, 988, 582);
//Create Download Button
Button DownloadButton = new Button(shell, SWT.NONE);
DownloadButton.setToolTipText("Go to URL and run Download script");
DownloadButton.setTouchEnabled(true);
DownloadButton.setText("Download");
DownloadButton.setBounds(902, 7, 96, 30);
DownloadButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
switch(e.type) {
case SWT.Selection:
if(WebsiteList.getText() == "Example") {
//Get Loaded page Data
Document doc = Jsoup.parse(Browser.getText());
//Get Download Link
String DownloadLink = "https://example.com" + doc.getElementById("video-download-format").select("a").first().attr("href");
//Get Video Name
String VideoName = doc.getElementsByTag("h1").text();
//Get Uploader Name
String UploaderName = doc.getElementsByTag("h2").select("a").first().text();
//Get Download Directory
String DownloadPath = DownloadLocation.getText();
//Compile Filename
String FileName = DownloadPath + "/" + UploaderName + " - " + VideoName + ".mp4";
//Start Download
Browser.setUrl(DownloadLink);
String test = Browser.getData().toString();
System.out.println(test);
}else {
System.out.println("Nothing Selected");
}
}
}
});
Так что мой вопрос, есть ли какой-нибудь возможный способ обойти диалог сохранения и просто сохранить файл без взаимодействия с пользователем?