90

Особенности API от NASA

Ранее я писал статью А вы знали что у NASA есть API?, где я рассказал как создал канал, куда ежедневно и автоматически публикуются картина дня от NASA с описанием на русском. На мое удивление подписалось около 300 человек чему я рад,  все работало как нужно, но cегодня я проснулся и публикации не увидел, подумал "что не так?"


Оказалось, что Json который NASA возвращает динамический, и мой скрипт из-за отсутствия определенного поля навернулся😁 пофиксить не проблема, но мне стало интересно, а что NASA мне послал? а оказалось что вернулось красивое видео на несколько секунд:

Дак еще и с описанием😁 я не мог такое игнорировать, и решил что подписчики должны тоже видеть эту красоту, но я столкнулся с несколькими проблемами:


1 - Видео, это просто ссылка на Youtube, а я не хочу чтобы в телеграмме для просмотра видео подписчики шли в Youtube, и так много ссылок, зачем еще одна.


2 - Если я буду добавлять описание + ссылку на Youtube будет выглядеть не так красиво (нуу не так как я задумал то есть😁) что мне тоже не очень понравилось


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


По этому что? я решил сделать чуть более туго, но безотказно (но это не точно)


Получаем Json , понимаем что там ссылка на видео в Youtube, в итоге просто скачиваем его, формируем пост с описанием, потом отправляем в телегу этот видос, щас расскажу как:


1 - Как скачать видео с Youtube (я по прежнему использую Python):

Есть классная библиотека - pytube, в итогу нам от NASA  API в поле url приходитссылка на ютуб видео, и мы его просто подставляем куда нужно:

первая строка это импорт библиотеки


url - думаю вы поняли, сюда ссылка на видео
dest - путь к директории куда будет сохранено видео
в четвертой строке, мы скармливаем библиотеке ссылку на видео, в streams.get_highest_resolution() мы выбираем самое лучшее качество, а download скачивает нам видео в нужную нам директорию

Потом я захотел чтобы я мог эти видео отдельно скачивать, тут мне помог nginx, по факту благодаря конфигурации примерно такого вида:

Можно обратится к серверу по доменному имени + имени видео, и будет возможность его скачать с так сказать собственного хранилища (нуу, такая у меня хотелка была)


Усе? нет, нужно же видео загружать в телеграм еще, и тут мне помогла моя хотелка )


на Python используя библиотеку requests пишем такую тему:


requests.post(f'https://api.telegram.org/bot<Токен вашего бота>/sendVideo?chat_id=<Ид канала>&caption=<Сообщение для видео>&video=<А ТУТ ПРОСТО ССЫЛКА НА ВИДЕО ИЗ ВАШЕГО "ХРАНИЛИЩА">&parse_mode=HTML')

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


и вуаля, в итоге что у нас есть:

1 - Если получили ссылку на видео в ютуб, cкачиваем видео наше хранилище.


2 - Отправляем в телеграм это видео, указывая ему ссылку на наше видео с нашего хранилища + описание.


Done😁


Подводные камни что приходят сразу на ум:

1 - Если NASA API вернет видео больше 50МБ, API телеги нас пошлет

2 - Когда сохраняете видео, лучше дополнительным параметром в методе download(dest) измените имя загружаемого файла на какое-то свое даже рандомное, ибо кто знает как там они его назовут, вдруг это навернет вам сервер или поломает скрипт 😂.


Ну и шаг с хранилищем можете опустить, это больше мне для себя любимого.


Мой канал: https://t.me/daily_nasa

если что не пугайтесь, там теперь льются еще данные из hubblesite.org

Исследователи космоса

19.5K поста49.3K подписчиков

Правила сообщества

Какие тут могут быть правила, кроме правил установленных самим пикабу :)

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества