OpenShorts

Transforme vídeos longos em cortes verticais virais e publique-os no TikTok, Instagram e YouTube: detecção de momentos por IA, reenquadramento 9:16, legendas e dublagem.

Documentação

OpenShorts.app

License: MIT Open Source PRs Welcome Docker GitHub stars Last Commit

Plataforma de vídeo com IA de código aberto com 3 ferramentas em uma: Gerador de Clipes, AI Shorts (vídeos UGC com atores de IA) e YouTube Studio.

Your podcast, and the vertical clip OpenShorts makes of it: both speakers stacked, captions on the seam

Duas pessoas na câmera? O OpenShorts as empilha em vez de reduzir o plano aberto, coloca as legendas na divisória onde não cobrem ninguém e volta para o recorte com rastreamento facial quando o corte vai para uma pessoa. A IA escolhe o layout por vídeo; nada para configurar.

Duas formas de executar, mesmo software em ambas:

Self-hosted (este repositório)Hospedado em openshorts.app
PreçoGratuito para sempre, MITPlano gratuito, pago a partir de $12/mês
Velocidade5 a 8 min por vídeo de 8 min na CPUCerca de 50s na nossa GPU NVIDIA
Chaves de APITraga suas próprias Gemini, ElevenLabs, fal.aiGemini incluída, nada para configurar
Marca d'água / limitesNenhum, nuncaMarca d'água e 20 min/mês no plano gratuito, nenhum no pago
ConfiguraçãoDocker, 8GB+ de RAM, downloads de modelosEntre e cole um link
MCP / API para agentesMesmo endpoint /mcp, mas apenas enquanto sua máquina estiver ligadaEndpoint sempre ativo em mcp.openshorts.app, chaves de API em um clique
Seus dadosSeu servidorNossos

O self-hosting é genuinamente gratuito e sempre será. Custa a você uma máquina, suas próprias chaves de API e o tempo para mantê-lo funcionando. Os planos hospedados existem para cobrir esse hardware e essas chaves, não para desbloquear recursos.

https://github.com/user-attachments/assets/b45fa983-16b4-48b5-ac5b-a267836b9ad9

Tutorial em Vídeo: Como funciona

OpenShorts Tutorial

Clique na imagem acima para assistir ao passo a passo completo.


3 Ferramentas em 1 Plataforma

1. Gerador de Clipes

Transforme seus vídeos longos — podcasts, webinars, transmissões ao vivo, vlogs, entrevistas — em shorts 9:16 prontos para viralizar no TikTok, Instagram Reels e YouTube Shorts.

Clip Results

2. AI Shorts (Criador de Vídeos UGC)

Gere vídeos de marketing com atores de IA para qualquer produto ou negócio. Sem câmera, sem estúdio, sem orçamento para influenciadores. Basta descrever seu produto ou colar uma URL.

AI Shorts Setup

  • Dois modos de custo: Baixo Custo ($0,65/vídeo) e Premium ($2/vídeo)
  • Funciona para qualquer negócio: SaaS, restaurantes, e-commerce, coaching, negócios locais
  • Atores gerados por IA com sincronização labial, narração, b-roll e legendas estilo TikTok
  • Escolha entre uma galeria de avatares compartilhada ou envie sua própria foto
  • Publique diretamente no TikTok, Instagram e YouTube

3. YouTube Studio

Kit completo e gratuito de ferramentas de IA para YouTube: miniaturas, títulos, descrições e publicação direta.

YouTube Studio

  • Gerador de miniaturas com IA e sobreposição de rosto
  • 10 sugestões de títulos virais com chat de refinamento
  • Descrições geradas automaticamente com timestamps de capítulos
  • Publicação com um clique no YouTube

Galeria de Vídeos UGC

Todos os vídeos e avatares gerados são salvos em uma galeria pública com páginas de SEO para cada vídeo.

UGC Gallery

  • Página de galeria pública com reprodução ao passar o mouse (/gallery)
  • Páginas de vídeo individuais com SEO e meta tags og:video (/video/{id})
  • Dados estruturados JSON-LD para mecanismos de busca
  • Galeria de avatares com histórico de prompts

Recursos Principais

Gerador de Clipes

  • Detecção de Momentos Virais: Google Gemini 3.1 Flash-Lite analisa transcrições e limites de cenas para detectar 3-15 momentos de alto potencial
  • Funciona totalmente local se você quiser: aponte LLM_BASE_URL para Ollama, LM Studio, vLLM ou qualquer servidor compatível com OpenAI e o seletor de momentos roda no seu próprio modelo, sem necessidade de chave Google (veja Executar sem chave Google)
  • Recorte Inteligente 9:16: Reenquadramento com IA por cena — modo TRACK (rastreamento facial MediaPipe + YOLOv8), modo GENERAL (fundo desfocado), modo SPLIT (dois falantes empilhados, legendas na divisória) e modo SCREENCAST (tela sobre o apresentador); o layout é escolhido por vídeo pelo Gemini ou forçado pelo painel
  • Legendas Automáticas: faster-whisper com timestamps em nível de palavra, estilizadas e gravadas nos clipes
  • Dublagem de Voz com IA: Integração ElevenLabs para 30+ idiomas com clonagem de voz
  • Sobreposições de Texto de Gancho: Sobreposições de texto geradas por IA para chamar atenção
  • Efeitos de Vídeo com IA: Filtros FFmpeg gerados pelo Gemini para efeitos profissionais

Pipeline AI Shorts

  1. Analisar: Raspar URL do site + pesquisa na web, ou gerar a partir de descrição manual
  2. Roteiro: IA escreve roteiros virais (formato gancho - problema - solução - CTA)
  3. Ator: Gerar atores de IA com Flux 2 Pro ou selecionar da galeria compartilhada
  4. Voz: Narração TTS ElevenLabs (inglês/espanhol, masculino/feminino)
  5. Vídeo: Geração de cabeça falante (Hailuo 2.3 Fast img2video + VEED Lipsync)
  6. B-roll: Visuais gerados por IA com efeito Ken Burns
  7. Composição: Montagem final FFmpeg com legendas e sobreposições de gancho
  8. Publicar: Postagem direta no TikTok, Instagram Reels, YouTube Shorts via Upload-Post

YouTube Studio

  • Geração de títulos com IA com 10 opções virais
  • Chat interativo de refinamento para títulos
  • Geração de miniaturas com IA com rosto e fundo personalizados
  • Descrições automáticas com timestamps de capítulos da transcrição Whisper
  • Publicação direta no YouTube via Upload-Post

Publicação Automática em Redes Sociais

  • Postagem com um clique para TikTok, Instagram Reels e YouTube Shorts simultaneamente
  • Agende uploads para qualquer data e hora — planeje seu calendário de conteúdo e deixe o OpenShorts publicar automaticamente
  • Distribuição multi-plataforma — publique em todas as suas redes sociais de uma só vez a partir de uma única interface
  • Integração Upload-Post com uploads assíncronos

Infraestrutura

  • Backup em nuvem S3 (bucket privado para clipes, bucket público para galeria/avatares)
  • Páginas de galeria com SEO servidas por FastAPI com dados estruturados JSON-LD
  • Galeria de avatares compartilhada entre todos os usuários
  • Fila de trabalhos assíncrona com concorrência configurável

Para Quem É Isso?

  • Criadores de conteúdo — Transforme vídeos longos em shorts automaticamente, publique em todas as plataformas de uma vez
  • Agências de marketing — Gere vídeos UGC para clientes em escala, sem atores ou estúdios
  • Fundadores de SaaS — Crie demonstrações de produto e shorts de marketing a partir de apenas uma URL
  • Marcas de e-commerce — Vídeos de produto com atores de IA para TikTok Shop, Instagram, YouTube
  • Negócios locais — Restaurantes, academias, imobiliárias, coaching — marketing em vídeo acessível
  • Desenvolvedores — Self-hosted, personalize o pipeline, integre via API

Vitrine AI Shorts

Vídeos gerados com OpenShorts AI Shorts — sem câmera, sem estúdio, sem atores:

Biohacking for InvestorsSecret Weapon for DevsEl Secreto de los Agentes de IA
Biohacking para Investidores · BAIXO CUSTOArma Secreta para Devs · BAIXO CUSTOEl Secreto de los Agentes de IA · PREMIUM

Veja todos os vídeos em openshorts.app/gallery


OpenShorts vs Concorrentes

RecursoOpenShortsOpus ClipCapCutVizardKlapDescript
PreçoSelf-hosted gratuito
hospedado a partir de $12/mês
$15-29/mês$8/mês$15-20/mês$23-63/mês$24-65/mês
Self-hostedSimNãoNãoNãoNãoNão
Código abertoSimNãoNãoNãoNãoNão
Marca d'águaNunca no self-hosted
apenas no plano gratuito quando hospedado
Nível gratuitoAlgunsNível gratuitoNível gratuitoNível gratuito
Limites de uploadNenhum no self-hosted
por plano quando hospedado
10-30GBBaseado em créditos60min-10hr10-100 vídeos/mês60min-40hr
Detecção de clipes com IASimSimSimSimSimSim
Reenquadramento inteligente 9:16SimSimSimSimSimNão
Legendas automáticasSimSimSimSimSimSim
Dublagem de voz (30+ idiomas)SimNãoApenas ProNãoApenas ProApenas Business
Atores UGC com IASimNãoNãoNãoNãoNão
Efeitos de vídeo com IASimNãoSimNãoNãoNão
Sobreposições de texto de ganchoSimNãoNãoNãoNãoNão
YouTube Studio (títulos, miniaturas)SimNãoNãoNãoNãoNão
Publicação automática em redes sociaisSimApenas ProApenas TikTokApenas pagoApenas pagoNão
Agendar uploadsSimApenas ProNãoApenas pagoApenas pagoNão
Privacidade de dadosSeu servidorNuvem delesNuvem delesNuvem delesNuvem delesNuvem deles
Funciona com LLM local (Ollama)SimNãoNãoNãoNãoNão

Quanto Custa?

O self-hosting do OpenShorts é gratuito. Você fornece a máquina e paga apenas pelas APIs de IA que usa, e a maioria tem níveis gratuitos generosos:

ServiçoNível GratuitoCusto PagoUsado Para
Google GeminiTeste gratuito com limites generosos< $0,01 por vídeo de 10 minDetecção de momentos virais, geração de roteiros, pesquisa na web
LLM Local (Ollama, LM Studio, vLLM...)Gratuito, seu hardware$0Detecção de momentos virais em vez do Gemini (LLM_BASE_URL)
fal.aiPague por uso~$0,50-1,50 por AI ShortGeração de atores, vídeo de cabeça falante, sincronização labial
ElevenLabsNível gratuito disponívelPague por usoNarração, dublagem de voz
Upload-Post10 uploads gratuitos/mês para todas as redes (sem cartão de crédito)Pague por usoPublicação automática no TikTok, Instagram, YouTube
AWS S3Opcional~$0,023/GBBackup em nuvem para clipes e galeria

Resumo: Você pode gerar clipes praticamente de graça com Gemini e publicar 10 vídeos/mês em todas as redes sociais a custo zero com Upload-Post.

Não quer executar nada disso? openshorts.app é o mesmo software no nosso hardware: nossa GPU NVIDIA gera clipes de um vídeo de 8 minutos em cerca de 50 segundos em vez dos 5 a 8 minutos que leva em uma CPU típica, a chave Gemini está incluída e a publicação automática já está configurada. O plano gratuito é de 20 minutos por mês com marca d'água e sem cartão de crédito; planos pagos começam em $12/mês por 100 minutos sem marca d'água.


Requisitos

  • Docker e Docker Compose
  • Chave de API Google Gemini (Grátis — obtenha aqui) — necessária para todos os recursos de IA
  • Chave de API fal.ai (Pague por uso) — necessária para AI Shorts (geração de atores, vídeo, sincronização labial)
  • Chave de API ElevenLabs (Nível gratuito) — necessária para narração/dublagem
  • Chave de API Upload-Post (nível gratuito) — necessária para postagem direta em redes sociais

Começando

1. Clone

git clone https://github.com/mutonby/openshorts.git
cd openshorts

2. Configure (opcional)

cp .env.example .env
# Edit .env with your AWS keys for S3 backup

3. Inicie

docker compose up --build

4. Abra o Painel

Navegue até http://localhost:5175

  1. Vá para Configurações e insira suas chaves de API (Gemini, fal.ai, ElevenLabs, Upload-Post)
  2. Gerador de Clipes: Envie um vídeo longo para gerar shorts virais
  3. AI Shorts: Descreva seu produto ou cole uma URL para gerar vídeos de marketing UGC
  4. YouTube Studio: Gere miniaturas, títulos e descrições para YouTube
  5. Galeria UGC: Navegue por todos os vídeos e avatares gerados

5. Aceleração por GPU (opcional, NVIDIA)

A imagem padrão é apenas CPU. Com uma placa NVIDIA (qualquer placa com NVENC, ex.: RTX 4060), um vídeo de 8 minutos é transformado em clipes em cerca de um minuto em vez de 5 a 8. Nada é passado no sentido de VM — o contêiner apenas recebe acesso à GPU do host.

Host: instale o driver NVIDIA (nvidia-smi deve funcionar) e o NVIDIA Container Toolkit:

sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi   # sanity check

No Windows, use o Docker Desktop com o backend WSL2 e o driver NVIDIA do Windows; nenhum driver dentro do WSL.

Compose: crie docker-compose.override.yml ao lado de docker-compose.yml (detectado automaticamente). GPU: "1" adiciona cuBLAS/cuDNN e onnxruntime-gpu à imagem (~2 GB); video é necessário para NVENC.

services:
  backend:
    build:
      context: .
      args:
        GPU: "1"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu, video]

.env:

WHISPER_MODEL=large-v3-turbo
WHISPER_DEVICE=cuda
WHISPER_COMPUTE=float16
FFMPEG_ENCODER=auto           # probes h264_nvenc at startup, falls back to x264
TRANSCRIBE_BACKEND=parakeet   # optional: ~2x faster than whisper, 25 European languages, auto-falls back to whisper
ASR_GPU_CONCURRENCY=1
**Verificação:** ```bash docker compose up --build -d docker exec openshorts-backend nvidia-smi -L docker exec openshorts-backend ffmpeg -hide_banner -f lavfi -i testsrc=size=256x256:rate=1 -frames:v 1 -c:v h264_nvenc -f null - ``` O log do backend no primeiro job relata o codificador escolhido e o dispositivo de transcrição. Um erro de CUDA no whisper (ex.: VRAM esgotada) tenta novamente uma vez na CPU automaticamente. 8 GB de VRAM são suficientes para `large-v3-turbo` fp16 mais os modelos de detecção.

6. Executar sem chave do Google (LLM local, opcional)

A única chamada em nuvem no pipeline de clipes é o seletor de momentos: ele envia a transcrição (nunca o vídeo) para o Gemini. Aponte-o para qualquer servidor compatível com OpenAI e todo o pipeline permanece na sua máquina:

# .env
LLM_BASE_URL=http://host.docker.internal:11434/v1   # Ollama on the host
LLM_MODEL=qwen2.5:14b                                # any chat model that follows instructions
# LLM_API_KEY=...                                    # only if your server checks one (vLLM --api-key, OpenRouter)

Funciona com Ollama, LM Studio, vLLM, servidor llama.cpp, LocalAI e OpenRouter. O painel para de pedir uma chave do Gemini quando isso é configurado. Duas coisas para saber:

  • Tamanho do contexto. Uma chamada de pontuação carrega três janelas de transcrição (~2-3k tokens) e a chamada de detalhes até dez (~5k em um podcast longo). O Ollama usa como padrão um contexto de 4096 tokens e trunca silenciosamente, então execute-o com OLLAMA_CONTEXT_LENGTH=16384 (ou defina num_ctx em um Modelfile); aumente LLM_SCORE_BATCH acima de 3 somente se seu contexto permitir. Modelos de 7-8B retornam JSON válido de forma confiável; os de 3B não.
  • O que ainda precisa do Gemini. Qualquer coisa que precise olhar para frames: o seletor automático de layout (AUTO_LAYOUT), o detector de conteúdo na tela e vídeos silenciosos (sem fala para recortar). Sem uma chave do Gemini, esses recursos voltam ao corte simples com rastreamento facial, e um vídeo silencioso falha com uma mensagem que explica isso. Adicione uma chave junto com LLM_BASE_URL e você terá ambos.

Pipeline Técnico

Gerador de Clipes

  1. Ingestão — Upload de vídeo local (ou ingestão por URL auto-hospedada via yt-dlp)
  2. Transcrição — faster-whisper com timestamps em nível de palavra
  3. Detecção — PySceneDetect para limites de cena
  4. Análise — Gemini identifica 3-15 momentos virais (15-60s cada)
  5. Extração — Corte preciso de clipes com FFmpeg
  6. Reenquadramento — Corte vertical com IA e rastreamento de assunto
  7. Efeitos — Legendas, ganchos, efeitos de vídeo com IA
  8. Publicação — Backup em S3 + distribuição social Upload-Post

AI Shorts

  1. Análise — Raspagem de site + pesquisa web com Gemini (ou descrição manual)
  2. Roteiro — Gemini gera roteiros virais com segmentos
  3. Ator — Geração de retrato com Flux 2 Pro (ou galeria/upload)
  4. Voz — Narração com ElevenLabs TTS
  5. Vídeo — Hailuo 2.3 Fast img2video + Lipsync VEED (Baixo Custo) ou Kling Avatar v2 (Premium)
  6. B-roll — Geração de imagem com Flux 2 Pro + efeito Ken Burns
  7. Composição — Montagem com FFmpeg, legendas ASS e sobreposições de gancho
  8. Galeria — Upload para S3 público com metadados para páginas de SEO
  9. Publicação — Upload-Post para TikTok, Instagram, YouTube

Automatize: Servidor MCP, API REST e Webhooks

Você não precisa do painel. Todo o pipeline pode ser chamado por agentes de IA e scripts.

Servidor MCP (/mcp)

O OpenShorts inclui um servidor MCP integrado, então Claude, ChatGPT, Cursor ou qualquer cliente MCP pode recortar e publicar vídeos para você:

claude.ai e ChatGPT: cole https://mcp.openshorts.app/mcp como um conector personalizado (Configurações → Conectores) e aprove o acesso em openshorts.app. O servidor usa OAuth 2.1 com registro dinâmico de clientes, então não há chave para copiar; a conexão aparece em Conta → Chaves de API, onde revogá-la desconecta o aplicativo.

# Claude Code / Cursor / n8n (hosted): create an API key in your account page
claude mcp add --transport http openshorts https://mcp.openshorts.app/mcp \
  --header "Authorization: Bearer osk_..."

# Self-hosted (no key needed, BYOK rules apply):
claude mcp add --transport http openshorts http://localhost:8000/mcp

# Self-hosted without running the web server: same tools over stdio
claude mcp add openshorts -- python mcp_stdio.py

Ferramentas: process_video (URL ou upload_id; captions: false quando a fonte já tem legendas, auto_hook: false para pular a linha de gancho, queimada por padrão como no painel), create_upload (entregue um arquivo local ao agente: envie os bytes via PUT, depois processe), get_job_status, list_clips, get_quota, add_subtitles, recut_clip, publish_clip. Um prompt como "recorte este podcast e agende os 3 melhores para o TikTok" agora é uma linha no agente de sua escolha.

API REST + chaves de API

Contas hospedadas podem gerar chaves de API osk_... (página da conta). Uma chave autentica você em todos os lugares — mesmo plano, mesmos minutos, mesma propriedade de jobs:

curl -X POST https://api.openshorts.app/api/process \
  -H "Authorization: Bearer osk_..." -H "Content-Type: application/json" \
  -d '{"url": "https://youtube.com/watch?v=...", "acknowledged": true,
       "webhook_url": "https://your-server.com/hooks/openshorts"}'

Documentação interativa em /docs (OpenAPI) em qualquer instância.

Webhooks de conclusão

Passe webhook_url (e opcionalmente webhook_secret) para POST /api/process e você recebe exatamente um POST quando o job atinge um estado terminal — sem loops de polling nos seus pipelines n8n / Zapier / cron:

{"event": "job.completed", "job_id": "…",
 "clips": [{"index": 0, "title": "…", "video_url": "…", "download_url": "…"}]}

Com um segredo, o corpo é assinado: X-OpenShorts-Signature: sha256=<hmac-sha256(body)>.

CLI

A mesma API do terminal, zero dependências (cli/):

pip install openshorts   # or: uvx openshorts

export OPENSHORTS_API_KEY=osk_...              # hosted
# export OPENSHORTS_API_URL=http://localhost:8000   # self-hosted, no key

openshorts process "https://youtube.com/watch?v=..." --wait
openshorts clips <job_id>
openshorts publish <job_id> 0 --platforms tiktok,youtube

Habilidade de agente

skills/openshorts/SKILL.md segue o padrão aberto Agent Skills, então funciona em qualquer agente com suporte a habilidades:

# Claude Code (and most agents): copy the folder into the skills directory
cp -r skills/openshorts ~/.claude/skills/

# Hermes Agent: install straight from this repo
hermes skills install mutonby/openshorts/skills/openshorts

# OpenClaw: from ClawHub
openclaw skills install @mutonby/openshorts

n8n

Um workflow importável (URL de vídeo na entrada, clipes prontos para publicação na saída, sem polling) está em examples/n8n/.


Stack Tecnológica

CamadaTecnologia
BackendPython 3.11, FastAPI, google-genai, faster-whisper, ultralytics (YOLOv8), mediapipe, opencv-python, yt-dlp, FFmpeg, httpx
FrontendReact 18, Vite 4, Tailwind CSS 3.4
APIs de IAGoogle Gemini, fal.ai (Flux, Hailuo, VEED, Kling), ElevenLabs
InfraestruturaDocker + Docker Compose, AWS S3
PublicaçãoAPI Upload-Post (TikTok, Instagram, YouTube)

Variáveis de Ambiente

Lado do servidor (.env):

VariávelDescrição
AWS_ACCESS_KEY_IDChave de acesso AWS para S3
AWS_SECRET_ACCESS_KEYChave secreta AWS
AWS_REGIONRegião AWS (padrão: us-east-1)
AWS_S3_BUCKETBucket privado para backup de clipes
AWS_S3_PUBLIC_BUCKETBucket público para galeria/avatares
MAX_CONCURRENT_JOBSLimite de processamento concorrente (padrão: 5)
LLM_BASE_URLServidor compatível com OpenAI para o seletor de momentos (Ollama, vLLM, LM Studio...). Defina-o e a chave do Gemini se torna opcional
LLM_MODELNome do modelo nesse servidor (padrão llama3.1:8b)
LLM_API_KEYToken Bearer para esse servidor, se ele verificar um
LLM_SCORE_BATCHJanelas de transcrição por chamada de pontuação (padrão 3 local, 8 Gemini)

Lado do cliente (criptografado no localStorage):

ChaveDescrição
GEMINI_API_KEYGoogle Gemini — obrigatória, a menos que LLM_BASE_URL esteja definido (então apenas para seleção de layout e vídeos silenciosos)
FAL_KEYfal.ai — obrigatória para AI Shorts
ELEVENLABS_API_KEYElevenLabs — obrigatória para narração/dublagem
UPLOAD_POST_API_KEYUpload-Post — obrigatória, para publicação social

Segurança e Desempenho

  • Execução sem root: Contêineres rodam como appuser dedicado
  • Controle de concorrência: Fila de jobs baseada em semáforo (MAX_CONCURRENT_JOBS)
  • Limpeza automática: Purga automática de jobs antigos (retenção de 1h)
  • Chaves criptografadas: Chaves de API criptografadas no lado do cliente, nunca armazenadas no servidor
  • Validação de upload: Uploads de imagem validados quanto a formato e tamanho mínimo
  • Limites de arquivo: Proteção de limite de upload de 2GB

Configuração de Mídias Sociais (Upload-Post)

  1. Registre-se: app.upload-post.com/login
  2. Crie um perfil: Vá para Manage Users
  3. Conecte contas: Vincule TikTok, Instagram e/ou YouTube
  4. Obtenha a chave de API: Navegue até API Keys
  5. Use no OpenShorts: Cole a chave em Configurações

Histórico de Estrelas

Star History Chart

Contribuições

Contribuições são bem-vindas! Seja adicionando novos modelos de IA, melhorando o pipeline de sincronização labial ou construindo novos recursos — sinta-se à vontade para abrir um PR.

Licença

Licença MIT para o aplicativo principal — o OpenShorts é seu para usar, modificar e escalar.

Exceção: o diretório cloud/ (cobrança, chaves gerenciadas e a infraestrutura do serviço hospedado por trás do flag opcional BILLING_ENABLED) é de código-fonte disponível sob a Licença Comercial OpenShorts. Você pode lê-lo, modificá-lo e auto-hospedá-lo para uso pessoal ou interno, mas não pode oferecê-lo a terceiros como um serviço pago/hospedado. Auto-hospedar o aplicativo principal nunca requer este diretório.