Pmmlabs / OpenPeriscope

Unofficial Periscope client
GNU General Public License v2.0
74 stars 30 forks source link

Баг записи следующей трансляции одного и того же пользователя или ограничение на одновременное количество записей/скачиваний #75

Open ghost opened 7 years ago

ghost commented 7 years ago

Проблема вот в чём: допустим пользователь закончил трансляцию и начал новую через 5 минут, но её запись не началась. В чём может быть причина? Существует ли ограничение на одновременное количество скачиваний? Также запись трансляции может начинаться не сначала.

Pmmlabs commented 7 years ago

Конкретно в моей программе никаких ограничений нет. Не сначала может начинаться запись в том случае, если пользователь начал трансляцию через 5 минут, а в настройках стоит частота проверки новых трансляций раз в 15 минут и тогда запись начнется в тот момент, когда произойдет очередная проверка подписок, т.е. на 10-й минуте стрима. А если запись вообще не началась, то возможно что трансляция закончилась раньше, чем прошла очередная проверка, т.е. продолжительность транслсяции меньше периода проверки. В таком случае в подписках трансляция появляется сразу в виде повтора, а повторы исключены из автоматической загрузки. (баг https://github.com/Pmmlabs/OpenPeriscope/issues/36)

ghost commented 7 years ago

Проблема всё равно имеет место быть. Параметр проверки этот: Notifications refresh interval? Он выставлен на 1 секунду.

unicorn-style commented 7 years ago

@Copelaw, Я могу вам сказать сразу, что проверка раз в секунду чревата временным баном по IP. У меня бот ходит по топ-листу и где-то на 80 запросе с периодом 10 секунд API выдает 403 Too much requests. Приходится иметь 10 ботов с разными IP, чтобы между запросами было больше времени. Я точно не знаю какие лимиты, но они даже срабатывают когда юзаешь приложение на iPhone и быстро передвигаешься по поискам и прочее. Поэтому с 1 секундой вы явно погорячились.

ghost commented 7 years ago

@lxprost Понятно, попробую увеличить. Неплохо бы тогда добавить предупреждение на этот счёт или ограничить этот параметр. А можете поподробнее рассказать про различные IP. Как это организовано?

unicorn-style commented 7 years ago

@Copelaw на сколько я понимаю, OpenPeriscope – клиент. Чтобы можно баловаться было с компьютера. Если я правильно понимаю, то у вас запросы явно не побаловаться. Proxy вам в помощь и прочее. В любом случае, это минимум разработка собственного софта, – довольно трудоемкий процесс. Мы на этом деньги зарабатываем и даже уже ушли с платных прокси серверов. Нет, не продаем технологии накрутки ботов. Это заказ оплачиваемый от блогеров, который попросили сделать некоторый фрюли в том числе для Periscope, к примеру:

  1. Более хорошую статистику
  2. Размер аудитории на текущий момент (для этого топ и отсматриваем)
  3. Фильтрация чата ботом
  4. Транслирование потока не только в Periscope, но и в другие сервисы

По поводу записей, да тоже делается. Но у нас отслеживается просто начало эфира и его конец. Легче просто по ID записи слить эфир youtube-dl инструментом по её окончанию.

Pmmlabs commented 7 years ago

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

Vol-2016 commented 7 years ago

@lxprost

Легче просто по ID записи слить эфир youtube-dl инструментом по её окончанию.

Это - наихудший (по времени) вариант скачивания replay :)

unicorn-style commented 7 years ago

@Pmmlabs А я знаю, что если пустить бота в трансляцию и ожидать её END то можно слить трансляцию в легкую. Да необязательно ждать END, достаточно ключи получить в самом начале. Видео само не удаляется, а ранее выданные ключи доступа действуют. Притом действуют они сутки. PS: Для неверующих, зайдите в любую трансляцию с айфона перед концом. Она закончится, её удалят. А проиграть её можно с любого место, если не закрывать видео. Хоть через час, хоть через два

@Vol-2016 Это наилучший по времени вариант скачивания. Поток youtube-dl льется на скорости ~2.5 мбит, поток с айфона в режиме трансляции 600кбит + 64кбит звук. По скорости, после трансляции скачивается быстрее, более того в записи отсутствуют пустые куски когда связь лагала.

Vol-2016 commented 7 years ago

@lxprost

Это наилучший по времени вариант скачивания.

"По скорости, после трансляции скачивается быстрее" - это ясно и это ни о чем. Поэтому лучше так: за сколько скачивается replay часового live (при связи без лагов, без "пустых кусков") ?

unicorn-style commented 7 years ago

@Vol-2016

  • это ясно и это ни о чем.

НЕТ! Вот конкретно вот это ни о чем:

Это - наихудший (по времени) вариант скачивания replay 😀

Вы не пробовав и не разбираясь в вопросе написали фигню. Я со своей стороны все уже объяснил. Читайте внимательно! Я вам написал скорость при которой качает youtube-dl ~ 2.5мбитс. Скорость трансляции с айфона 600кбитс, те это тот максимум который вы получите когда трансляции идет (вы же не можете скачивать то чего еще не показали). 2500/600 ~> 4 раз Считайте, скачивание готовой трансляции идет быстрее в 4 раза. Недавно руками сливал на макбук трансляцию c помощью youtube-dl, скорость скачивания 2 час 09 минут составила 16 минут. Скорость скачивания готовой, может быть выше, тут как отдает конкретно periscope.

Я вообще мало представляю, для каких целей люди скачивают записи трансляций. Ад перескопа?! Если автор удаляет - значит запрещает дальнейшую републикацию и прочее.

Vol-2016 commented 7 years ago

@lxprost

Вы не пробовав и не разбираясь в вопросе написали фигню.

Не без удовольствия цитирую ваш спесивый треп. Потому как у меня replay качается всегда не менее чем в 10 раз быстрее соотв. live (разъяснять как именно - ассу вроде вас без надобности).

unicorn-style commented 7 years ago

Не без удовольствия цитирую ваш спесивый треп. Потому как у меня replay качается всегда не менее чем в 10 раз быстрее соотв. live (разъяснять как именно - ассу вроде вас без надобности).

Молодой человек - вы бредите. Если вы скачиваете live – то оно скачивается ровно столько, сколько идет трансляция. Если вы скачиваете запись, т.е hls - то можете его скачать в два раза быстрее запустив в два потока скачивания кусков HLS, но вас ждет неминуемый автобан на серваках AWS, где собственно и стоит periscope. Вы можете брызгать здесь слюной, доказывать обратное. HLS сервер обеспечивается NGINX, судя по цифровой подписи, т.е это докрученный nginx-rtmp скорее всего. Там просто в базе вшита защита при скачивании m3u2 кусков. Собственно, в API выдается ссылка именно на m3u2 файл листа с кусками. Без прокси скачивать быстрее можно в два раза, но с вероятностью автобана. Вы можете хоть в 10 потоков лить куски и доказывать с пеной у рта, что вот у вас там быстрее. Но сервер обработки наших ботов стоит как раз на AWS, не думаю что скорость скачивания у вас будет выше чем на площадке где это все стоит. youtube-dl посути скачивает куски в m3u2 листе один за другим, а потом ffmpeg скручивает в один файл.

Хотите еще поспорить, чтоб что-то доказать? Не спорили со мной, если бы хоть чуток понимали как работают видеотрансляции, как работает periscope и какие ключи и ограничения там работают.

unicorn-style commented 7 years ago

@Vol-2016 я только сейчас заметил, что вы сами разработчик проги для записи. Ответ для вас выше и менять его не буду. И судя по вашим комментариям, я настоятельно не рекомендую ваш софт к использованию. Это называется я сделал софт as is, забанят - ваши проблемы. Мы баны уже получали при разработке софта в перископе, знаем не понаслышке. И знаем как лимиты на запросы сжимались за этот год, и знаем сколько банов в день выставляется.

Я думаю @Pmmlabs тоже знает, что защитой Periscope занимается очень активно. И возможно сам испытал при разработке баны и прочее.

Vol-2016 commented 7 years ago

К сожалению не молодой, знаю цену времени, и тратить его на самоуверенного незнайку не собираюсь. Повзрослеете - возможно, чему и научитесь. Успехов.

Pmmlabs commented 7 years ago

Видео само не удаляется, а ранее выданные ключи доступа действуют.

Вот этого не знал, хорошо что такая фича есть.

@Vol-2016 не разработчик, он форкнул чей-то bat-скрипт который использует параллельную загрузку частей hls - не знаю как сейчас, а раньше никаких банов за это не было. Перископ действительно постоянно вводит какие-то ограничения, лично я сталкивался несколько раз когда авторизация в моем приложении отваливалась, и связано это было отнюдь не с какими-то новыми фичами мобильного приложения. Так что тут надо держать нос по ветру, это точно.

unicorn-style commented 7 years ago

@Pmmlabs Только сказал и пум, они обновились. Ключи уничтожаются в тот момент, как трансляцию ведущий убивает. Все кто смотрит во время трансляции kick 😧 Но! В любом случае, использовали запись трансляции через youtube-dl в реал-тайм. Работает!

a1ex7 commented 7 years ago

@lxprost а чем вам не подходит скачивание с помощью бат-скрипта? Любое видео скачивается практически мгновенно (иногда даже автор трансляции не успевает ее удалить до того, как она уже скачалась). Бан при скачивании здесь в принципе не возможен, т.к. скачивание не требует авторизации. Собственно говоря банить то некого )

unicorn-style commented 7 years ago

@a1ex7 речь идет о том, как только пользователь нажимает удалить - сразу теряется доступ к кускам. Длинную трансляцию час и более быстро скатать не получится. А отвечая на ваш вопрос, почему не с помощью бат-скрипта - у нас винды нет. :) Потому что не являюсь пользователем этого софта. У нас сторонний софт для других целей, более профессиональных и нам за это платят деньги. Я нахожусь в этом репо для отслеживания изменений. Не все удается заметить нам.