This media is not supported in your browser
VIEW IN TELEGRAM
🎬 HomeTube - Удобный загрузчик видео для вашего HomeLab
HomeTube предлагает простой веб-интерфейс для загрузки видео с различных платформ, включая YouTube, с автоматической организацией файлов для медиа-серверов, таких как Plex и Jellyfin. Идеальное решение для интеграции любимых видео в локальный медиаплеер.
🚀Основные моменты:
- 🎯 Загрузка видео в высоком качестве с автоматической организацией
- 📱 Доступ через веб-интерфейс с любого устройства в сети
- 🚫 Поддержка блокировки рекламы и спонсоров
- 🍪 Возможность разблокировки ограниченного контента с помощью cookies
- ⚙️ Поддержка более 1800 платформ
📌 GitHub: https://github.com/EgalitarianMonkey/hometube
#python
@Python_Community_ru
HomeTube предлагает простой веб-интерфейс для загрузки видео с различных платформ, включая YouTube, с автоматической организацией файлов для медиа-серверов, таких как Plex и Jellyfin. Идеальное решение для интеграции любимых видео в локальный медиаплеер.
🚀Основные моменты:
- 🎯 Загрузка видео в высоком качестве с автоматической организацией
- 📱 Доступ через веб-интерфейс с любого устройства в сети
- 🚫 Поддержка блокировки рекламы и спонсоров
- 🍪 Возможность разблокировки ограниченного контента с помощью cookies
- ⚙️ Поддержка более 1800 платформ
📌 GitHub: https://github.com/EgalitarianMonkey/hometube
#python
@Python_Community_ru
🎥 Редактирование видео с Lucy Edit
Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.
🚀 Основные моменты:
- 🏃♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям
📌 GitHub:
#python
@Python_Community_ru
https://github.com/DecartAI/Lucy-Edit-ComfyUI
Lucy Edit — это модель для редактирования видео, позволяющая выполнять изменения по текстовым инструкциям. Она поддерживает разнообразные редактирования, включая смену одежды, замену персонажей и изменение сцен, сохраняя при этом движение и композицию.
🚀 Основные моменты:
- 🏃♂️ Сохранение движения и композиции видео
- 🎯 Надежные и точные редактирования
- 🧢 Изменение одежды и аксессуаров
- 🧌 Замена персонажей на животных или известных личностей
- 🗺️ Замена сцен по текстовым описаниям
📌 GitHub:
#python
@Python_Community_ru
https://github.com/DecartAI/Lucy-Edit-ComfyUI
GitHub
GitHub - DecartAI/Lucy-Edit-ComfyUI
Contribute to DecartAI/Lucy-Edit-ComfyUI development by creating an account on GitHub.
🗣️ RealtimeVoiceChat — живой голосовой чат с ИИ.
RealtimeVoiceChat (https://github.com/KoljaB/RealtimeVoiceChaT) — это open-source проект, который позволяет общаться с LLM в реальном времени голосом. Он объединяет распознавание речи, LLM и синтез речи в единую систему с минимальной задержкой — около 500 мс при локальной установке.
➡️ Как работает:
1. Запись речи в браузере
2. Передача аудио по WebSocket на сервер
3. Распознавание речи через RealtimeSTT (на базе Whisper)
4. Ответ от LLM (Ollama, OpenAI и др.)
5. Озвучка ответа через RealtimeTTS (Coqui XTTSv2, Kokoro и др.)
6. Обратная передача аудио в браузер
7. Поддержка прерываний и динамики через turndetect.py
✨ Особенности:
- Задержка ~500 мс
- Поддержка разных LLM и TTS движков
- Быстрый запуск через Docker Compose
- Чистый веб-интерфейс на Vanilla JS + Web Audio API
✔️ Стек:
- Backend: Python + FastAPI
- Frontend: JS + WebSockets
- ML: transformers, torchaudio, Ollama, Whisper, TTS
- Контейнеризация: Docker
✔️ Требуется CUDA-совместимая видеокарта (для Whisper/TTS) и Docker.
🔥 Отличный проект для тех, кто хочет интегрировать голосовой интерфейс с LLM — например, для ассистентов, чат-ботов, презентаций или UX-экспериментов.
🔜 Репозиторий: https://github.com/KoljaB/RealtimeVoiceChat
🔜 Демо: https://www.youtube.com/watch?v=-1AD4gakCKw
#tts #llm #opensource
@Python_Community_ru
RealtimeVoiceChat (https://github.com/KoljaB/RealtimeVoiceChaT) — это open-source проект, который позволяет общаться с LLM в реальном времени голосом. Он объединяет распознавание речи, LLM и синтез речи в единую систему с минимальной задержкой — около 500 мс при локальной установке.
➡️ Как работает:
1. Запись речи в браузере
2. Передача аудио по WebSocket на сервер
3. Распознавание речи через RealtimeSTT (на базе Whisper)
4. Ответ от LLM (Ollama, OpenAI и др.)
5. Озвучка ответа через RealtimeTTS (Coqui XTTSv2, Kokoro и др.)
6. Обратная передача аудио в браузер
7. Поддержка прерываний и динамики через turndetect.py
✨ Особенности:
- Задержка ~500 мс
- Поддержка разных LLM и TTS движков
- Быстрый запуск через Docker Compose
- Чистый веб-интерфейс на Vanilla JS + Web Audio API
✔️ Стек:
- Backend: Python + FastAPI
- Frontend: JS + WebSockets
- ML: transformers, torchaudio, Ollama, Whisper, TTS
- Контейнеризация: Docker
✔️ Требуется CUDA-совместимая видеокарта (для Whisper/TTS) и Docker.
🔥 Отличный проект для тех, кто хочет интегрировать голосовой интерфейс с LLM — например, для ассистентов, чат-ботов, презентаций или UX-экспериментов.
🔜 Репозиторий: https://github.com/KoljaB/RealtimeVoiceChat
🔜 Демо: https://www.youtube.com/watch?v=-1AD4gakCKw
#tts #llm #opensource
@Python_Community_ru
GitHub
GitHub - KoljaB/RealtimeVoiceChat: Have a natural, spoken conversation with AI!
Have a natural, spoken conversation with AI! Contribute to KoljaB/RealtimeVoiceChat development by creating an account on GitHub.
👍1
IT_ONE Cup. Code & Analyst — хакатон для аналитиков и разработчиков, где ты узнаешь, как работает IT-команда, и получишь сильный кейс в портфолио. Выбери трек и реши одну из задач:
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.
🏆 Призовой фонд: 900 000 рублей
💻 Формат: онлайн
🗓 Регистрация до 16 октября: https://cnrlink.com/itonecupmsupythonl (https://cnrlink.com/itonecupmsupythonl?erid=2W5zFJGEo9a)
Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.
Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.
Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.
Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.
Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupythonl
@Python_Community_ru
→ Проанализируй BPMN-модель кредитного процесса и подготовь ТЗ на систему мониторинга эффективности.
→ Разработай сервис, который в реальном времени следит за переводами и оповещает о подозрительных операциях.
🏆 Призовой фонд: 900 000 рублей
💻 Формат: онлайн
🗓 Регистрация до 16 октября: https://cnrlink.com/itonecupmsupythonl (https://cnrlink.com/itonecupmsupythonl?erid=2W5zFJGEo9a)
Приглашаем системных аналитиков, разработчиков и менеджеров проектов. Размер команды — от 1 до 5 человек.
Что тебя ждёт:
• Применишь навыки системного анализа, построения архитектуры и работы с потоковыми данными.
• Получишь готовый проект в портфолио.
• Для участников ТОП-5 команд в каждом треке — фирменный мерч.
Задачи соревнования:
Трек 1. Навигатор оптимизации. Проанализируй кредитный процесс банка, выяви узкие места и создай ТЗ для системы мониторинга производительности. Решение поможет оптимизировать критически важные процессы.
Трек 2. Финансовый радар. Разработай сервис для анализа транзакций в реальном времени. Архитектура должна включать правила обнаружения мошенничества и поддержку различных алгоритмов обработки.
Ждём тебя на IT_ONE Cup. Code & Analyst — старт 17 октября на Codenrock: https://cnrlink.com/itonecupmsupythonl
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python трюк: динамическое добавление методов в класс
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
Пример 👇
class User:
def __init__(self, name):
self.name = name
# Обычный объект
u = User("Alice")
# Функция, которую хотим "подмешать"
def greet(self):
return f"Hello, {self.name}!"
# Вклиниваем метод в класс
User.greet = greet
print(u.greet()) # Hello, Alice!
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
https://www.youtube.com/shorts/64-dqXJZ8RM
@Python_Community_ru
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
Пример 👇
class User:
def __init__(self, name):
self.name = name
# Обычный объект
u = User("Alice")
# Функция, которую хотим "подмешать"
def greet(self):
return f"Hello, {self.name}!"
# Вклиниваем метод в класс
User.greet = greet
print(u.greet()) # Hello, Alice!
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
https://www.youtube.com/shorts/64-dqXJZ8RM
@Python_Community_ru
🐍 Простые фишки парсинга в Python
1️⃣ Парсинг больших JSON-файлов без загрузки в память
import ijson
with open("big.json", "r") as f:
for item in ijson.items(f, "records.item"):
print(item) # потоковый парсинг, не держим всё в памяти
2️⃣ HTML-парсинг с поддержкой XPath через lxml
from lxml import html
doc = html.fromstring("Hello")
print(doc.xpath("//span/text()")[0]) # Hello
3️⃣ Парсинг логов с регулярками и именованными группами
import re
line = '2025-08-23 12:10:45 [INFO] User=egor Action=login'
pattern = r'(?P\d{4}-\d{2}-\d{2}) .* User=(?P\w+) Action=(?P\w+)'
m = re.search(pattern, line)
print(m.groupdict())
# {'date': '2025-08-23', 'user': 'egor', 'action': 'login'}
4️⃣ Парсинг YAML c поддержкой типов
import yaml
data = yaml.safe_load("""
user: egor
active: true
age: 30
""")
print(data) # {'user': 'egor', 'active': True, 'age': 30}
5️⃣ Парсинг бинарных данных (struct)
import struct
raw = b"\x01\x00\x00\x00\x2A\x00"
id, value = struct.unpack("
@Python_Community_ru
1️⃣ Парсинг больших JSON-файлов без загрузки в память
import ijson
with open("big.json", "r") as f:
for item in ijson.items(f, "records.item"):
print(item) # потоковый парсинг, не держим всё в памяти
2️⃣ HTML-парсинг с поддержкой XPath через lxml
from lxml import html
doc = html.fromstring("Hello")
print(doc.xpath("//span/text()")[0]) # Hello
3️⃣ Парсинг логов с регулярками и именованными группами
import re
line = '2025-08-23 12:10:45 [INFO] User=egor Action=login'
pattern = r'(?P\d{4}-\d{2}-\d{2}) .* User=(?P\w+) Action=(?P\w+)'
m = re.search(pattern, line)
print(m.groupdict())
# {'date': '2025-08-23', 'user': 'egor', 'action': 'login'}
4️⃣ Парсинг YAML c поддержкой типов
import yaml
data = yaml.safe_load("""
user: egor
active: true
age: 30
""")
print(data) # {'user': 'egor', 'active': True, 'age': 30}
5️⃣ Парсинг бинарных данных (struct)
import struct
raw = b"\x01\x00\x00\x00\x2A\x00"
id, value = struct.unpack("
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python: склейка TCP-пакетов
Когда отправляешь ты в сокет много маленьких кусочков - уходит куча мелких TCP-пакетов это работает медленнее и с задержками.
Решение: склеивай данные и отправляй одним блоком.
На Linux можно сказать ядру «подожди, я ещё допишу» команда MSG MORE.
Итог: меньше пакетов, быстрее отклик.
python
import socket
def send_coalesced(sock, parts):
for chunk in parts[:-1]:
sock.sendall(chunk, socket.MSG_MORE)
sock.sendall(parts[-1]) финальный flush
#Вот короткий пример как делать «плохо» и «хорошо»:
import socket
sock = socket.create_connection(("localhost", 9090))
# Плохо: много маленьких пакетов
sock.sendall(b"Hello, ")
sock.sendall(b"world")
sock.sendall(b"!\n")
# Хорошо: склеили всё и отправили одним пакетом
msg = b"".join([b"Hello, ", b"world", b"!\n"])
sock.sendall(msg)
@Python_Community_ru
Когда отправляешь ты в сокет много маленьких кусочков - уходит куча мелких TCP-пакетов это работает медленнее и с задержками.
Решение: склеивай данные и отправляй одним блоком.
На Linux можно сказать ядру «подожди, я ещё допишу» команда MSG MORE.
Итог: меньше пакетов, быстрее отклик.
python
import socket
def send_coalesced(sock, parts):
for chunk in parts[:-1]:
sock.sendall(chunk, socket.MSG_MORE)
sock.sendall(parts[-1]) финальный flush
#Вот короткий пример как делать «плохо» и «хорошо»:
import socket
sock = socket.create_connection(("localhost", 9090))
# Плохо: много маленьких пакетов
sock.sendall(b"Hello, ")
sock.sendall(b"world")
sock.sendall(b"!\n")
# Хорошо: склеили всё и отправили одним пакетом
msg = b"".join([b"Hello, ", b"world", b"!\n"])
sock.sendall(msg)
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Малоизвестный совет по Python: используй pyparsing вместо громоздких и тяжёлых regex.
Обычно все пишут через модуль re и собирают гигантские регулярки, которые сложно читать и отлаживать. Но есть библиотека pyparsing, где можно строить парсер как из конструктора — из простых правил.
Главная фишка: если в одном месте разбор сломался, pyparsing пробует другие варианты, а не падает. Это делает его удобным инструментом для разбора конфигов, мини-языков и любых сложных форматов текста, где regex становится болью.
from pyparsing import Word, alphas, nums, Group, OneOrMore
# Определим правило: слово + число
identifier = Word(alphas) + Word(nums)
# Парсер будет читать такие пары подряд
parser = OneOrMore(Group(identifier))
result = parser.parseString("user123 order456 item789")
print(result.asList())
# output:
@Python_Community_ru
Обычно все пишут через модуль re и собирают гигантские регулярки, которые сложно читать и отлаживать. Но есть библиотека pyparsing, где можно строить парсер как из конструктора — из простых правил.
Главная фишка: если в одном месте разбор сломался, pyparsing пробует другие варианты, а не падает. Это делает его удобным инструментом для разбора конфигов, мини-языков и любых сложных форматов текста, где regex становится болью.
from pyparsing import Word, alphas, nums, Group, OneOrMore
# Определим правило: слово + число
identifier = Word(alphas) + Word(nums)
# Парсер будет читать такие пары подряд
parser = OneOrMore(Group(identifier))
result = parser.parseString("user123 order456 item789")
print(result.asList())
# output:
@Python_Community_ru
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Python трюк: сортировка namedtuple
Вместо словарей можно использовать namedtuple для хранения структурированных данных, а потом легко сортировать по любому полю.
from collections import namedtuple
Name = namedtuple("Name", ["first", "last"])
names = [
Name("Mike", "Driscoll"),
Name("Zahna", "Brown"),
Name("James", "Williams")
]
# Сортировка по имени
print(sorted(names, key=lambda n: n.first))
# Сортировка по фамилии
print(sorted(names, key=lambda n: n.last))
@Python_Community_ru
Вместо словарей можно использовать namedtuple для хранения структурированных данных, а потом легко сортировать по любому полю.
from collections import namedtuple
Name = namedtuple("Name", ["first", "last"])
names = [
Name("Mike", "Driscoll"),
Name("Zahna", "Brown"),
Name("James", "Williams")
]
# Сортировка по имени
print(sorted(names, key=lambda n: n.first))
# Сортировка по фамилии
print(sorted(names, key=lambda n: n.last))
@Python_Community_ru
🚀 Django 6.0 — уже в пути!
✨ Главное в Django 6.0
- Content Security Policy (CSP)
Новый ContentSecurityPolicyMiddleware, теги csp() и настройки SECURE_CSP / SECURE_CSP_REPORT_ONLY.
- Фоновые задачи
Декоратор @task и метод enqueue() для простого запуска background jobs.
- Template Partials
Теги {% partialdef %} и {% partial %} для переиспользуемых фрагментов в шаблонах.
- Обновлённое Email API
Современный EmailMessage вместо устаревших MIME-классов.
- Другие улучшения
• В админке — иконки Font Awesome
• В auth увеличены итерации PBKDF2
• Улучшения в Postgres, GeoDjango, миграциях и др.
🔄 Изменения без обратной совместимости
- Минимальная версия MariaDB — 10.6
- Поддержка Python ≥ 3.12
- DEFAULT_AUTO_FIELD теперь всегда BigAutoField
- Удалены устаревшие API и внутренние методы
👉 Подробнее: https://docs.djangoproject.com/en/dev/releases/6.0/
#django #python
@Python_Community_ru
✨ Главное в Django 6.0
- Content Security Policy (CSP)
Новый ContentSecurityPolicyMiddleware, теги csp() и настройки SECURE_CSP / SECURE_CSP_REPORT_ONLY.
- Фоновые задачи
Декоратор @task и метод enqueue() для простого запуска background jobs.
- Template Partials
Теги {% partialdef %} и {% partial %} для переиспользуемых фрагментов в шаблонах.
- Обновлённое Email API
Современный EmailMessage вместо устаревших MIME-классов.
- Другие улучшения
• В админке — иконки Font Awesome
• В auth увеличены итерации PBKDF2
• Улучшения в Postgres, GeoDjango, миграциях и др.
🔄 Изменения без обратной совместимости
- Минимальная версия MariaDB — 10.6
- Поддержка Python ≥ 3.12
- DEFAULT_AUTO_FIELD теперь всегда BigAutoField
- Удалены устаревшие API и внутренние методы
👉 Подробнее: https://docs.djangoproject.com/en/dev/releases/6.0/
#django #python
@Python_Community_ru
🔥2