Skip to content

psiagoleal/LANMediaControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Remote Media Control (Python + Flask)

Controle a reprodução de mídia do seu Windows via navegador (iOS/Android/PC) com uma interface web simples.

Interface Demo

✨ Funcionalidades

  • Controles: Play/Pause, Próxima Faixa, Faixa Anterior
  • Controle de volume do sistema (Windows)
  • Informações básicas da faixa (mock)
  • Interface responsiva em templates/player.html

📦 Pré-requisitos

  • Python 3.12
  • Windows 10/11
  • Mesmo Wi‑Fi para acessar via rede local

🛠 Stack

  • Web: Flask
  • Mídia/Teclas: keyboard
  • Volume (Windows): pycaw + comtypes
  • HTTP: requests

Arquivos principais:

🚀 Setup com uv (recomendado)

  1. Instale o uv (https://docs.astral.sh/uv/getting-started/)

  2. Adicione as dependências ao projeto:

uv add flask requests keyboard pycaw comtypes
  1. (Opcional) Defina variáveis de ambiente:
  • API_KEY: token do Genius (se desejar buscar letras)
  • SERVER_IP: IP de bind (padrão: 0.0.0.0)
  • PORT: porta (padrão: 5000)
  • FLASK_DEBUG: 1/0 para habilitar/disable debug (padrão: 1)

Exemplos:

  • PowerShell:
$env:API_KEY="seu_token"
$env:SERVER_IP="0.0.0.0"
$env:PORT="5000"
$env:FLASK_DEBUG="1"
  • CMD:
set API_KEY=seu_token
set SERVER_IP=0.0.0.0
set PORT=5000
set FLASK_DEBUG=1
  • Bash:
export API_KEY=seu_token
export SERVER_IP=0.0.0.0
export PORT=5000
export FLASK_DEBUG=1

Observação: Um arquivo .env não é carregado automaticamente pelo código atual. Para usá-lo, instale python-dotenv e carregue-o no início de server.py.

▶ Execução

  • Com uv:
uv run python main.py
  • Python puro:
python main.py

Acesse no navegador:

🔌 Endpoints

  • GET / → Renderiza templates/player.html
  • GET /track-info → JSON com info da faixa mock
  • POST /control → body: {"action":"playpause"|"next"|"previous"}
  • POST /volume → body: {"level": 0..100}

Implementação no app:

📝 Notas

  • Em alguns sistemas, para enviar teclas de mídia com keyboard, pode ser necessário executar como Administrador.
  • pycaw funciona apenas em Windows.
  • O campo de letras depende de API_KEY do Genius e implementação adicional de scraping/parse.

📄 Licença

MIT


Apoie

Feito com ❤️ por Iago Leal | [☕ Apoie o criador]

Se este projeto ajudou você, considere apoiar:

Buy Me A Coffee

About

Controle a reprodução de mídia do seu Windows via navegador (iOS/Android/PC) na mesma LAN com uma interface web simples.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors