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

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

20.3K постов49.9K подписчика

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

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

Вы смотрите срез комментариев. Показать все
3
вуглускр
Автор поста оценил этот комментарий

А ты знаешь, что через него можно получать и данные с последнего марсохода?

раскрыть ветку (12)
1
Автор поста оценил этот комментарий

Да, спасибо =) но я пока до этого не дошел, пока хочу довести до ума то что уже сделал)

раскрыть ветку (9)
0
Kobld here!
Автор поста оценил этот комментарий

Я где-то даже виджет видал, который вообще все данные с марсохода в развёрнутом виде в онлайне и показывает.

Походу ту же API использует.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

скорее всего да, других таких API я не встречал

раскрыть ветку (7)
0
Kobld here!
Автор поста оценил этот комментарий

Было бы кстати прикольно аналогичное для пикабу запилить, хех.

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

эх, было бы тут API, я бы уже как в телеге сделал только на пикабу)

раскрыть ветку (5)
1
Kobld here!
Автор поста оценил этот комментарий

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

раскрыть ветку (3)
Автор поста оценил этот комментарий

Да рандом туда передавайте, 99.9% пользователей не отличит от настоящих показаний телеметрии.

раскрыть ветку (2)
0
Kobld here!
Автор поста оценил этот комментарий

В том же сообществе ИК думаю как минимум четверть заметит если на Марсе давление вдруг в десяток раз скакнёт...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Нормальный рандом с плавным изменением параметров

X = X_предыдущее + 0.01*рандом

При отклонении от среднего плавно корректируем, привязываемся к марсианским суткам

В итоге должно быть что-то похожее

Иллюстрация к комментарию
0
Kobld here!
Автор поста оценил этот комментарий

Не, увы, говорят что никак.

0
Автор поста оценил этот комментарий

Не с последнего, а с крайнего!

раскрыть ветку (1)
0
вуглускр
Автор поста оценил этот комментарий

Это кто ж член марсохода приделал?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

Недвижимость и ремонт

Теги

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

Сообщества