Перенос 88гб контента из ВК паблика в ТГ 📦
Сегодня расскажу чем занимался последние два дня. Если вкратце, то один из наших редакторов ведёт паблик вк про Мэддисона и его компашку (ещё 24 стримера), куда закидывает разные клипы и нарезки со стримов. И вчера на этот паб пожаловался "представитель канала Мэддисона" с просьбой все материалы с ним удалить. Что интересно - в сообществе состоит 600 человек, и посты набирали по 500 просмотров.
Собственно редактор хотел закончить на этом свой небольшой проект, но я решил ему помочь и предложил несколько вариантов решения проблемы на основании тех разработок, которые у меня уже были. В итоге мы выбрали перенести его деятельность в телегу, где по идее со "свободой слова" немного лучше. И я сказал, что могу набросать скрипт, который заполнит телеграм контентом из вк сообщества.
Итак что я имел на входе: 16 часов на экспорт материала (поддержка дала сутки на удаление) и 3000+ публикаций, в почти каждой из которых - видос от нескольких мегабайт до 1.8гб. В сумме объём всех материалов - 88гб.
Как я распланировал работу:
1. Скрипт должен экспортировать все данные с группы - это список постов и прикреплений, а также список содержимого видео-альбомов, за счёт которых я буду каталогизировать в будущем контент (это про теги ниже будет). Для этого я использовал свою разработку по бэкапу данных с вк, и она бонусом мне сохранила инфу о лайках/репостах и комментариях.
2. Посты надо загрузить в телеграм канал, учитывая особенности платформы (ограничение на размер прикрепляемого текста и файлов, которое не такое же, как вк).
3. Я сходу не додумался записывать в какой телеграм-пост какой вк-пост я сохранял, поэтому мне пришлось ещё отдельным шагом парсить созданный мною же канал и сопоставлять каждому телеграм посту источник из вк.
4. Пост-обработка публикаций - добавление приятных мелочей к уже готовому каналу.
Полностью процесс я наверное не смогу описать в рамках поста в телеге, просто перечислю несколько интересных моментов, с которыми мне пришлось столкнуться в процессе работы:
— Телеграм даёт запостить 60-90 постов, потом вешает
кд на 15-30 секунд. Это кд не растёт со временем, блокировку бот не словил.
— Телеграм
не даёт загружать больше 50мб прикреплений через стаднартное API, надо ставить дополнительное ПО ("Local Bot API Server") с кучей зависимостей (на ~10гб), что дико усложнило задачу и добавил много ручной работы.
— Телеграм API н
е предоставляет метода для загрузки информации об уже опубликованных постах. Её приходилось получать кривой загрузкой с сайта
https://t.me/<channel_id>/<message_id>.
В остальном работа была лёгкой и больше монотонной, сам телеграм бот создаётся одним обращением к официальному
@BotFather, и 6 строчками кода его уже можно использовать. Неудобно, что редактирование текста в обычном посте и в посте с картинкой/видео делается разными методами. И что каждое прикрепление - это отдельный пост. Ну и в паре постов из-за ограничения в размере текста пришлось разбивать на 2 поста, и трек не закинуть в пост с другим прикреплением.
Что в итоге:
— Канал заполнен 3300+ постами с контентом на 88гб за 20 часов;
— Не была скипнута ни одна публикация из группы;
— Из приятных мелочей: редактор собирал ролики вк в альбомы по стримерам, благодаря этому я соотносил инфу из 25 тегов каждому посту в тг, ещё добавил время публикации в группе-источнике и название ролика, если его не было в посте, но оно было в названии к самому видео.
— Ну и вишенкой: сделал хэштег Лучшее для 60 наибольших постов по лайкам.
Полностью с пост-обработкой работа скриптов заняла в районе 30 часов и думаю часов 6 чисто моего времени.