2013-06-17 11 views
9

Chcę uzyskać rzeczywisty URL pliku wideo z osadzonego wideo na dowolnej stronie internetowej. Zasadniczo nie jest to YouTube. Może to być dowolna witryna internetowa. Koduję dla Androida na Javie.Jak uzyskać prawidłowy adres URL pliku wideo z osadzonego wideo?

Dla przykładu: Rzecz chcę zrobić to sam, jak ten przycisk IDM robi:

IDM "Download this video" Button

[Właściwie to nie to samo, bo przycisk nie przechwytuje strumień sieć gdy rozkręci przez gracz. Ale chcę pobrać plik bezpośrednio z odtwarzacza.] Czy istnieje sposób na osiągnięcie tego? Czy dowolna biblioteka zewnętrzna [np. Jsoup] zrobić to?

jestem już przy użyciu Jsoup dostać jakieś inne zawartość strony, ale nie mam pojęcia jak to zrobić.

+0

Nie ma problemu! Już to mam. Ale byłoby lepiej, gdyby ktoś przedstawił mi jakąś uniwersalną metodę, która działa dla każdego osadzonego wideo. W tym filmie adres URL był wyświetlany w źródle jako zapytanie. Po prostu musiałem to odkryć. Tak, Jsoup mógłby to zrobić – Writwick

+0

Z którego gracza korzystasz? Jeśli odtwarzacz jest inny za każdym razem, na przykład po otwarciu strony internetowej z przeglądarki, należy uzyskać katalog pamięci podręcznej: getApplicationContext(). GetCacheDir() i wyszukać pliki o określonym rozszerzeniu (trzeba je wyliczyć (avi, 3gp itd.), jeśli to jest to, co masz na myśli przez coraz plik „prosto” z odtwarzacza (nie mogę wymyślić inny sposób). – g00dy

+0

Właściwie, mówiłem, że byłoby wspaniale, gdyby to była uniwersalna (znalazłem rozwiązanie dla konkretnego gracza, ale w przyszłości chciałbym również włączyć wsparcie dla innych, i dlatego.] Wiem, że to trochę trudne, ale nie wiem, czy istnieje lepsze rozwiązanie niż przechwytywania strumienia podobnie jak IDM. I będę używał niczego więcej niż samodzielna aplikacja, która byłaby strumieniowego wideo, więc nie ma mowy o Browser. – Writwick

Odpowiedz

-1

Jak być może wiesz, że różne strony internetowe mają różne strategie pobierania wideo, niektóre mogą dać prawdziwy URL w pliku html do bezpośredniego pobrania, inne mogą po prostu zwrócić strumień wideo, gdy klikniesz przycisk lub ekran dotykowy.
podczas gdy tak wiele różnych strategii pobierania wideo jest naprawdę trudne, aby znaleźć uniwersalny sposób na pobranie prawdziwego adresu URL, aby rozpocząć zadanie pobierania. Ale tutaj mam pomysł, niezbyt mądry, może być bardzo głupi:

1.Zapisz wideo w tle (aby umożliwić przeglądarce pobranie tego wideo w pamięci podręcznej przeglądarki).
2.Znajdź ten plik pamięci podręcznej i wyodrębnij żądany plik wideo.

dla siebie, zazwyczaj mam kilka filmów, które chcę, ale nie można pobrać prosto, więc będę używać IE grać ten film i okaże się, że wideo w folderze tymczasowym IE. Chciałbym Ci pomóc!

+5

Jak mogłeś zauważyć, próbuję to zrobić na Androidzie. Nie ma IE. Poza tym nie ma wsparcia flashowego w 4.1 Androidach. Dlatego nie zawsze mogę odtworzyć wideo, aby uchwycić strumień. Jeśli wykonasz trochę badań za pomocą narzędzi programistycznych Chrome, zobaczysz, że nowy strumień otwiera się po kliknięciu przycisku odtwarzania. Stamtąd adres URL do pliku strumieniowego można uzyskać bez żadnych kłopotów. Ale w żaden sposób nie mogę odtwarzać wideo w przeglądarce lub dynamicznej przeglądarce internetowej, przynajmniej nie mogę wymyślić żadnego sposobu. Z lampy błyskowej nie jest obsługiwany w wersji 4.0+. Muszę więc przejść na drugą stronę ... – Writwick

+0

thx za twoją radę, która naprawdę mnie oświeci! – Rugal

1

Jeśli używasz jsoup można uzyskać url dość łatwo. Wystarczy użyć jsoup, aby wybrać wszystkie możliwe znaczniki wideo (, <videos>, <embed>, itp.). Następnie uzyskać atrybut src i zapisać, że tam, gdzie chcesz:

Przykład

//Standard Jsoup search 
Elements iframes = body.select("iframe"); 

/*Gets the src of all the iframes or other tag, and if you have 
multiple videos you might have to do this in a for loop.*/  
String videoURL = iframes.attr("src"); 
+2

Nie sądzę, że pole 'src' zawiera bezpośredni adres URL pliku wideo. Gdyby zawierał, nie opublikowałbym tego pytania tutaj! Dokładnie sprawdziłem kod HTML strony (i zdecydowałem się użyć jsoup do przeanalizowania go, aby uzyskać informacje), ale nie mogłem znaleźć adresu URL w źródle. Nawet założę się, że nie może zawierać bezpośredniego adresu URL. Najprawdopodobniej zawiera link do strony, na której wideo jest osadzone, dzięki czemu może wyświetlać zawartość strony w elemencie 'iframe' lub podobnych znacznikach ..... – Writwick

Powiązane problemy