Код в мешке
249 subscribers
9.08K photos
1.6K videos
2.11K files
42.7K links
Код в мешке - про кодинг, и не только...
Это личная записная книжка

https://t.me/joinchat/AAAAAEIy6oGlr8oxqTMS5w
Download Telegram
Forwarded from BritLab
Как искать ролики на YouTube по локации?

Недавно наткнулся на древнюю, но любопытную Google-таблицу с подборкой OSINT-инструментов.
Сразу привлёк внимание инструмент для поиска YouTube-видео по координатам: YouTube Geofind

Где может пригодиться?
1️⃣ Проверка достоверности информации
Если из одной локации поступают противоречивые данные, можно найти все видео с этого места и сравнить их.
2️⃣ Расследования и журналистика
Установление места съёмки: если видео якобы снято в Сирии, а координаты ведут в другую страну — это повод усомниться.
Поиск свидетелей: можно найти ролики, снятые рядом с местом события, и посмотреть, кто там был.
3️⃣ Кибербезопасность
Выявление фейков, где одно и то же видео выдают за съёмки из разных мест.
4️⃣ Краеведение
Анализ изменений локации: стройки, разрушения, природные катаклизмы — можно сравнить, как место выглядело раньше и сейчас.

Главный недостаток
Не у всех видео есть привязка к геолокации (не вина инструмента)

Как сделать свой Youtube Geofind?
Ключевой принцип работы инструмента прост и завязан на YouTube API (документация).

Чтобы найти видео по координатам, достаточно одного запроса:
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&location={latitude}2C{longitude}&locationRadius={radius}&publishedAfter={publishedAfter}&key={API_KEY}

Где:
latitude и longitude - широта и долгота;
radius - радиус
publishedAfter - значение даты и времени в формате RFC 3339 (1970-01-01T00:00:00Z), которое указывает, что ответ API должен содержать только видео, созданные в указанное время или после него
API_KEY - ваш API-ключ, который можно получить через Google Console

Пример запроса (все видео в радиусе 200 м от Красной площади, опубликованные после 00:00 9 мая 2025 года):
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&location=55.7539%2C37.6208&locationRadius=200m&publishedAfter=2025-05-09T00:00:00Z&key=<ваш API-ключ>


В ответ получаем JSON с найденными видео (пример на прилагаемом к посту скриншоте).
Метод поддерживает и другие параметры — подробнее в официальной документации.

Заключение
Важно помнить, что любые инструменты — лишь вспомогательные средства. Не стоит забывать о критическом мышлении и перекрёстной проверке.

Отдельно хочется поздравить всех с Днём Великой Победы! 🇷🇺

@ru_vm #BritLab #OSINT #YouTube #Геопоиск
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from BritLab
Если твоё резюме не нашёл ни один OSINT-специалист —
значит, ты плохо искал работу


Пару лет назад ко мне обратился одногруппник за помощью. Ему нужно было провести аналитику по вакансиям с hh.ru для написания научной работы, но он не знал, как собрать данные. Оказалось, всё довольно просто — у HeadHunter есть открытый API, где за деньги можно получить тонны данных: резюме соискателей, информацию о компаниях, вакансии конкурентов и многое другое.

Но кое-что можно вытащить и бесплатно:
Информацию о вакансиях
Информацию о компаниях

Документация
Полный список API-методов — https://github.com/hhru/api

Как это сделать?
Для примера покажу, как извлекать содержимое вакансий, которые опубликованы на текущий момент. Например, чтобы получить вакансии Яндекса можно использовать следующий запрос:

https://api.hh.ru/vacancies?employer_id=1740&page=1

Где:
- employer_id — ID компании (можно найти в URL страницы работодателя, например: https://hh.ru/employer/1740 — значит, ID = 1740)
- page — номер страницы (по умолчанию API отдаёт по 100 вакансий за раз)

Но есть ограничение: бесплатно можно получить не более 2000 вакансий из одного запроса.

💡 Как обойти лимит в 2000 вакансий?
Можно разбить запросы по дополнительным параметрам. Например, добавить фильтр по профессиональным ролям (параметр professional_role).

Допустим, что у Яндекса (employer_id=1740) имеется 3000 вакансий. Чтобы получить их все, добавим фильтр по роли (например, "Программист" — professional_role=96):

https://api.hh.ru/vacancies?employer_id=1740&professional_role=96&page=1

Затем перебираем все доступные значения параметров professional_role (полный список ролей) и page. Перебор параметров позволяет собрать все данные, поскольку для каждой роли в компании вряд ли будет больше 2000 открытых вакансий. Если же такая ситуация когда-нибудь возникнет, то можно добавить дополнительные параметры фильтрации, которые аналогично будут перебираться в процессе сбора.

Зачем это нужно?
1️⃣ Разведка технологий компаний
→ Вакансии часто содержат стек технологий (полезно для IT-специалистов, пентестеров и маркетологов).

2️⃣ Подготовка к собеседованию
→ Собрать требования из вакансий, передать их AI (вместе с имеющимися у вас навыками) — получить идеальное резюме под конкретную компанию.

3️⃣ Сравнение профессий
→ Хотите выбрать между двумя специальностями? Можно сравнить, какая чаще встречается и лучше оплачивается (хотя зарплаты в вакансиях указывают не всегда).

4️⃣ Анализ рынка труда
→ Исследовать тренды, зарплатные вилки, востребованные навыки.

#BritLab #HeadHunter #API #Парсинг #Аналитика
Forwarded from BritLab
Как автоматизировать распознавание текста с изображений?

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

Раньше в моём арсенале был только pytesseract (Python-библиотека для распознавания текста). Она работала, но с серьёзными ограничениями:
Плохо справлялась с разными шрифтами
Теряла точность на низкокачественных изображениях
Путала языки, если текст был мультиязычным

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

В профильных каналах регулярно пишут: «Вышла модель Х, которая показывает отличные результаты. OSINT-еры больше не нужны!», но никто не дает гайдов, как с этими моделями работать. Сегодня я это исправлю.

Обзор моделей для OCR
Прошерстив не один десяток источников, я выделил две наиболее популярные на текущий момент модели:
1️⃣ GPT-4 mini — высокая точность, но платная.
2️⃣ Google Gemini 2.0 Flash — высокая точность + бесплатный лимит.

Выбор без раздумий пал на Gemini. На момент публикации бесплатные лимиты от Google следующие:
✔️ 15 запросов в минуту
✔️ 1 млн токенов в минуту (ввод + вывод)
✔️ 1 500 запросов в сутки

Но есть важный нюанс: сервис не работает с российскими IP

Как взаимодействовать с Gemini?
1️⃣ Получаем API-ключ в Google AI Studio
2️⃣ Через API отправляем изображение в base64 + промпт
3️⃣ Получаем распознанный текст в ответе

Что делать, если Gemini недоступна?
Если у вас по какой-то причине нет возможности получить доступ к серверам Google AI Studio, то можно воспользоваться сервисами, которые предоставляют доступ к различным open-source моделям. Например, DeepInfra.
Плюсы:
✔️ Нет блокировок по геолокации
✔️ Гибкая тарификация
Минусы:
✖️ Нет бесплатного тарифа

Как заведено в BritLab, к посту прилагаю репозиторий с примерами скриптов для работы с Gemini и DeepInfra. Результаты работы скриптов — скриншот с исходным изображением и распознанным текстом — можно увидеть в заголовке поста (оба метода показали отличные результаты).

Разбор реального кейса
Представьте, что у вас есть PDF с текстом на иностранном языке. Вам нужно извлечь текст и перевести его на другой язык. Как это сделать?
1️⃣ Разбиваем PDF на страницы и конвертируем каждую в изображение
2️⃣ С помощью Gemini извлекаем весь текст с изображений
3️⃣ Загружаем текст в другую модель, которая заточена на перевод
4️⃣ Получаем текст на нужном языке
5️⃣ Загружаем результат в БД
6️⃣ PROFIT

Связка OCR + LLM открывает огромные возможности. Экспериментируйте)

#AI #Automation #LLM #Python #OCR
ЦБ сделал веб-сервис для получения по API данных о компаниях с выявленными признаками нелегальной деятельности на финансовом рынке.
Сервис предоставляет данные в структурированном виде (JSON).
Детальная информация по составу и структуре сервиса описана в Open API 3.0.

Банки, например, смогут автоматизировать отказ в платежах в адрес структур, которые есть в списке.

Подробнее:
↘️ https://cbr.ru/development/warning-list/
...
Иммутабельность в ООП — что ты такое? #habr
https://habr.com/ru/articles/909228/
Tags: иммутабельность, ооп
Author: apolon13
Как научить ИИ обслуживать клиентов не хуже человека? #habr
https://habr.com/ru/companies/alfa/articles/904028/
Tags: искусственный интеллект, поддержка клиентов, машинное+обучение
Author: smirnovevgeny (Альфа-Банк)
Выпуск Nobara 42, редакции Fedora с патчами для игр и обработки контента #opennet
https://www.opennet.ru/opennews/art.shtml?num=63234

Опубликован выпуск дистрибутива Nobara 42, основанного на пакетной базе Fedora Linux 42 и включающего дополнительные исправления для решения проблем с запуском компьютерных игр, потоковым вещанием и выполнением задач, связанных с созданием контента. Для загрузки подготовлены девять установочных образов: официальный со стилизованным KDE, дополнительные с чистыми окружениями GNOME и KDE, Steam-HTPC для Steam Deck на базе KDE и Steam-Handheld для носимых устройств, а также отдельные сборки первых четырёх образов с проприетарными драйверами NVIDIA.