selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
social_recipes logo

Self-host social_recipes

v1.9.10

AI-powered recipe extraction from social media videos

ReleaseOpen SourceMIT
Updated14 hours ago
LanguagePython
Setup difficultyModerate
MobilePWA
Stars
52
Port
5006 (Web UI)
Requires
SQLite
Docker
pickeld/pick-a-recipe
Install with Docker

What is social_recipes?

Pick-a-Recipe is a self-hosted Python web app that pulls videos from social media sites via yt-dlp, turns the audio into text with Whisper, reads on-screen details using vision models, builds structured recipes through configurable AI backends (OpenAI, Gemini, Anthropic, or any OpenAI-compatible service), and sends the results to a self-hosted Tandoor or Mealie server. It ships a web interface with live progress, user accounts (local or OIDC), PWA installation on phones, and optional nutrition data from Open Food Facts. You can run it in Docker (amd64/arm64) or install it manually with Python 3.11 and FFmpeg. All settings are adjusted in the web UI.

Should you self-host social_recipes?

social_recipes scores 43/100 on selfhost.directory (how scoring works) and ranks #16 of 18 in Recipe Management. It has 52 GitHub stars.

It shipped 15 stable releases in the past year. The latest, v1.9.10, came out on 18 October 2026. New versions land roughly every 1 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Mealie (75/100, 13 711 stars). It scores higher overall, so compare the two before you pick. See social_recipes vs Mealie side by side.

Features

  • AI recipe generation
  • Audio Transcription
  • Command Line Interface
  • Configurable AI providers
  • Dish image extraction
  • Multi-platform video download
  • Nutrition estimation
  • Offline-capable Whisper
  • Recipe manager integration
  • User Authentication
  • Visual text extraction
  • Web push notifications
  • Web UI with real-time progress

social_recipes README

How to install social_recipes

Install social_recipes with Docker

Docker
Environment variables
FLASK_SECRET_KEY, LOG_LEVEL

docker run -d
--name pick-a-recipe
-p 5006:5006
-e FLASK_SECRET_KEY="your-secure-secret-key"
-e LOG_LEVEL=info
-v pick-a-recipe-data:/app/data
pickeld/pick-a-recipe:latest

Easiest option, pulls from Docker Hub

How to configure social_recipes

  • AUTH_LOCAL_USERNAMEadminPrefills the username field on the setup page

    Prefills the username field on the setup page

  • AUTH_MODElocallocal for accounts stored by this app, or oidc for SSO

    local for accounts stored by this app, or oidc for SSO

    values: local, oidc

  • FLASK_DEBUGfalseEnable debug mode

    Enable debug mode

  • FLASK_SECRET_KEYAuto-generatedSecret key for session cookies

    Secret key for session cookies

  • HOST0.0.0.0Host to bind to

    Host to bind to

  • JWT_SECRET_KEYSigning key for Android app tokens; unset disables mobile auth

    Signing key for Android app tokens; unset disables mobile auth

  • MAX_CONCURRENT_JOBS3 (or Settings value)Parallel extraction workers (1–16)

    Parallel extraction workers (1–16)

    values: 1-16

  • MOBILE_DEEP_LINK_SCHEMESparComma-separated URL schemes the app may receive tokens on

    Comma-separated URL schemes the app may receive tokens on

  • OIDC_ADMIN_GROUPadminsGroup granting admin rights

    Group granting admin rights

  • OIDC_CLIENT_IDOAuth2 client ID (required when AUTH_MODE=oidc)

    OAuth2 client ID (required when AUTH_MODE=oidc)

  • OIDC_CLIENT_SECRETOAuth2 client secret (required when AUTH_MODE=oidc)

    OAuth2 client secret (required when AUTH_MODE=oidc)

  • OIDC_GROUPS_CLAIMgroupsClaim the group names are read from

    Claim the group names are read from

  • OIDC_ISSUER_URLOIDC issuer URL, the one serving /.well-known/openid-configuration (required when AUTH_MODE=oidc)

    OIDC issuer URL, the one serving /.well-known/openid-configuration (required when AUTH_MODE=oidc)

  • OIDC_PROVIDER_NAMESSOName shown on the sign-in button

    Name shown on the sign-in button

  • OIDC_REDIRECT_URIderivedCallback URL, when PUBLIC_URL is not enough

    Callback URL, when PUBLIC_URL is not enough

  • OIDC_SCOPESopenid email profile groupsScopes requested at the provider

    Scopes requested at the provider

  • OIDC_USER_GROUPpick-a-recipe-usersGroup required for access; empty admits any authenticated user

    Group required for access; empty admits any authenticated user

  • PORT5006Port to listen on

    Port to listen on

  • SESSION_COOKIE_SECUREfalseSet secure cookie flag (use with HTTPS)

    Set secure cookie flag (use with HTTPS)

  • VAPID_PRIVATE_KEYGenerated on first useWeb Push private key

    Web Push private key

  • VAPID_PUBLIC_KEYGenerated on first useWeb Push public key

    Web Push public key

  • VAPID_SUBJECTmailto:admin@pick-a-recipe.invalidContact URI push services can use to reach you

    Contact URI push services can use to reach you

social_recipes releases & version history

More in Recipe Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…