Невозможно скачать файлы FLV на Android?

Я думаю, можно ли написать приложение для Android, которое позволило бы пользователю загружать флеш-видео с веб-сайта, не заставляя пользователя запускать воспроизведение каждого видео вручную в браузере. Приложение также должно идеально работать для любого веб-сайта, воспроизводящего флеш-видео, а не только для некоторых конкретных веб-сайтов. Приложение не должно требовать root.

После выполнения домашней работы и большого количества поисковых запросов я пришел к выводу, что такое приложение невозможно, но я просто хотел, чтобы более опытные люди подтвердили это (или, возможно, предложили обходные пути, если я ошибаюсь).

Как такое приложение могло бы (теоретически, в идеале) работать:

  1. приложение запускает службу, которая работает в фоновом потоке и даже не требует открытого действия.

  2. служба загружает веб-страницу (файл HTML), на которой находится видео

  3. приложение анализирует страницу, чтобы найти файл .swf, который обычно воспроизводит видео

  4. приложение каким-то образом отправляет фальшивый щелчок по сценарию действия в SWF-файле, как если бы пользователь нажал "Play"

  5. через некоторое время приложение проверяет кеш веб-просмотра (пока пользователю не отображается никаких действий). Если в кеше есть файлы .flv, он копирует их, скажем, в какую-то папку на SD-карте.

В этой схеме несколько вещей, вероятно, потерпят неудачу:

в 3: Я не уверен, что можно имитировать нажатие кнопки Play для SWF-файла, особенно если мы не знаем, на каком именно веб-сайте мы находимся (мы хотим, чтобы приложение работало на любом веб-сайте), а веб-сайты используют свои собственные , специально написанные SWF-плееры. Также я не уверен, что файл .swf даже будет в состоянии, когда он может получать ввод, если у нас даже нет запущенной активности

в 4: веб-кеш хранится в / data / data / app_package_name / cache / webViewCacheChromium, и эта папка недоступна даже для самого приложения (?), если телефон не рутирован.

Я полагаю, что это все, поэтому не должно быть возможности создать такое приложение.

Кстати, расширение FVD для Google Chrome получает файлы FLV путем сканирования кеша браузера Chrome?

Спасибо!

РЕДАКТИРОВАТЬ: Я знаю, что Youtube теперь использует html5, я не хочу загружать видео Youtube.

РЕДАКТИРОВАТЬ: я видел приложения, которые работают с определенными веб-сайтами (например, с Youtube), но создание такого приложения нецелесообразно, поскольку веб-сайты меняют способы доставки файлов flv в качестве базовой защиты. У меня вопрос о запуске фальшивого воспроизведения и получении видеофайлов, которые уже находятся в кеше.


person iseeall    schedule 05.09.2013    source источник


Ответы (1)


Думаю, это возможно:

1: откуда взялся «веб-сайт»? Собираетесь ли вы поймать, когда пользователь открывает свой браузер и вводит веб-сайт? Если так, то это невозможно.

Я полагаю, вы откуда-то получите "сайт".


2 Вам не нужно эмулировать кнопку воспроизведения: вам нужен только файл .flv. Достаточно легко очистить веб-сайт на наличие файла .swf с помощью любого доступного инструмента. Вы можете попробовать jsoup


3 Иногда SWF получает этот файл с обычным параметром. Например <embed bla bla link="http://website/file"> Вам просто нужно очистить и получить этот файл.


4 Теперь, если ссылка на файл недоступна, вам придется декомпилировать файл swf. Это сложная часть. Ознакомьтесь с некоторыми из доступных инструментов здесь. Если вы будете упорно работать, вы сможете добиться результата. Я говорю так, потому что уже существует множество инструментов, которые делают то, что вы хотите. Например, Keepvid находится на java.

person Sherif elKhatib    schedule 25.09.2013
comment
Спасибо! Пункты 1-3 кажутся простыми, сложная часть связана с декомпиляцией swf. Поскольку каждый SWF-файл может работать по-своему, я все еще не могу написать универсальное решение для ВСЕХ веб-сайтов. Вместо этого мне пришлось бы сначала вручную декомпилировать swf-файл с каждого веб-сайта (например, youtube, 4shared, 5min ..), посмотреть, как это работает, и реализовать специфичный для веб-сайта способ получения flv. Это решение, но дорогостоящее. Такое приложение было бы очень сложно поддерживать. Я уже вижу, что обзоры с 1 звездой с комментариями не работает, накапливаются, как только один из моих целевых веб-сайтов изменяет свои SWF-файлы. - person iseeall; 01.10.2013
comment
@iseeall. Я должен сказать, что не являюсь экспертом в подобных приложениях. Но поскольку я использую приложения, которые получают ссылки для скачивания со многих веб-сайтов, мне всегда было интересно, как они это делают. Вот что у меня получилось. Я уверен, что это очень тяжело. Прежде чем получить ссылку, я не думаю, что легко заставить библиотеку декомпиляции swf работать на Android. Если это так, вам, вероятно, придется придумать какой-то алгоритм (возможно, какой-то AI), который может извлекать ссылки из этих кодов. Могу только предположить, насколько это было бы утомительно. Я надеюсь, что кто-то предложит более простой подход, если таковой имеется. - person Sherif elKhatib; 01.10.2013
comment
:) В любом случае спасибо, я дал сумму вознаграждения за ваш ответ. Да, похоже, это цель размещения на веб-сайте Flash-видео вместо обычных видеофайлов - сделать загрузку очень сложной. Я, наверное, сконцентрируюсь на нескольких флеш-сайтах и ​​посмотрю, как они загружают свои FLV-файлы. - person iseeall; 02.10.2013
comment
Бывает, что просто проверял vimeo! и я должен сказать, что это сложно. Декомпилировать удалось. Я пытаюсь получить URL-адрес потока, и здесь это практически невозможно - person Sherif elKhatib; 02.10.2013
comment
Также проверил некоторые веб-сайты, и это просто подтверждает, что создание приложений-загрузчиков для них экономически нецелесообразно (я имею в виду, учитывая потенциальные доходы, которые можно получить, и постоянные хлопоты, с которыми приходится сталкиваться, чтобы не отставать от их меняющейся защиты). - person iseeall; 05.10.2013