{"id":47590995,"url":"https://github.com/iuliandita/digarr","last_synced_at":"2026-05-05T17:02:14.029Z","repository":{"id":345153887,"uuid":"1184726701","full_name":"iuliandita/digarr","owner":"iuliandita","description":"AI-powered music discovery for your *arr stack. Analyzes listening history, discovers artists through a 7-stage AI pipeline, scores and ranks them, and learns from your feedback. Supports Lidarr, Spotify, Navidrome, Jellyfin, Plex. Self-hosted, open source.","archived":false,"fork":false,"pushed_at":"2026-05-02T23:01:52.000Z","size":22278,"stargazers_count":74,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-03T00:25:55.979Z","etag":null,"topics":["ai","docker","lastfm","lidarr","listenbrainz","music-discovery","musicbrainz","recommendations","self-hosted"],"latest_commit_sha":null,"homepage":"https://github.com/iuliandita/digarr#readme","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iuliandita.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-17T21:53:32.000Z","updated_at":"2026-05-02T23:01:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c864f23-dda1-44a8-9ffa-9ae012b0b6c5","html_url":"https://github.com/iuliandita/digarr","commit_stats":null,"previous_names":["iuliandita/digarr"],"tags_count":246,"template":false,"template_full_name":null,"purl":"pkg:github/iuliandita/digarr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iuliandita%2Fdigarr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iuliandita%2Fdigarr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iuliandita%2Fdigarr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iuliandita%2Fdigarr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iuliandita","download_url":"https://codeload.github.com/iuliandita/digarr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iuliandita%2Fdigarr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32554777,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T00:31:16.350Z","status":"ssl_error","status_checked_at":"2026-05-03T00:31:15.546Z","response_time":132,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","docker","lastfm","lidarr","listenbrainz","music-discovery","musicbrainz","recommendations","self-hosted"],"created_at":"2026-04-01T17:26:08.515Z","updated_at":"2026-05-03T01:01:41.860Z","avatar_url":"https://github.com/iuliandita.png","language":"TypeScript","funding_links":[],"categories":["Complimenting Apps","TypeScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.png\" alt=\"Digarr\" width=\"120\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003edigarr\u003c/h1\u003e\n\n[![CI](https://github.com/iuliandita/digarr/actions/workflows/ci.yml/badge.svg)](https://github.com/iuliandita/digarr/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Bun](https://img.shields.io/badge/runtime-Bun-f9f1e1?logo=bun)](https://bun.sh)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org)\n[![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker\u0026logoColor=white)](deploy/docker/)\n[![Tests](https://img.shields.io/badge/tests-vitest%20%2B%20playwright-brightgreen)](https://github.com/iuliandita/digarr/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/tag/iuliandita/digarr?label=release)](https://github.com/iuliandita/digarr/releases)\n\n**Music discovery for your *arr stack.** Digarr builds a taste profile from your listening sources, asks your AI provider for candidates, scores them, and gives you a review queue. From there you can approve artists into Lidarr or playlist targets, run mood searches, save discovery subscriptions, generate playlists, and browse by genre. The UI and AI-assisted reasoning ship in 15 languages. It is self-hosted, so the data stays with you.\n\n\u003e [!WARNING]\n\u003e **Beta software, working toward v1.0.** You can use it today, but expect rough edges. Releases can land quickly, sometimes several in a day, so check the [releases page](https://github.com/iuliandita/digarr/releases) and [CHANGELOG.md](CHANGELOG.md) before updating. If you run into something broken, [open an issue](https://github.com/iuliandita/digarr/issues) or send over a feature idea.\n\u003e\n\u003e Free and open source, forever. No tracking from Digarr itself. If you choose a hosted AI provider (Anthropic, OpenAI, Gemini) or point a local-provider option at a remote host, your discovery prompts are sent to that provider under its terms. Use Ollama on localhost or a local OpenAI-compatible endpoint to keep everything on your server.\n\n![Dashboard](docs/screenshots/dashboard-dark.png)\n\n[More screenshots](docs/SCREENSHOTS.md)\n\n\u003e [!NOTE]\n\u003e **Built with AI.** A human sets the roadmap, designs the architecture, and reviews the output; most code and tests are AI-generated.\n\n## What Makes Digarr Different\n\n### 7-Stage AI Pipeline\nDigarr takes signals from up to 8 sources, runs them through an AI-assisted pipeline, scores candidates with configurable weights, removes duplicates across batches, and learns from what you approve or reject.\n\n### Mood Discovery\nType \"something like Boards of Canada but darker\" or \"upbeat 90s pop for a road trip\" and Digarr turns that into a result set. You do not have to translate the idea into filters first.\n\n### Discovery Modes\nRun focused discovery flows from Discover -\u003e Discovery Modes (`/discover/modes`) for the currently shipped modes: ListenBrainz (Artist Radio, User Radio, Tag Radio, Similar Users Quick and Deep), Release Radar, and Similar Artist Web. Labels and Artist Relationships stay visible on that page so you can see what is planned, and unavailable cards explain why they are blocked while the server rejects those runs until real implementations ship. Manual runs now preflight invalid Artist Radio seeds before the job is accepted, and each accepted run is recorded in Jobs immediately so fast background failures are visible. Available discovery modes can be saved as subscriptions, and those subscriptions now reuse the same provider/fallback path as the manual run you configured.\n\n### Auto-Playlists\nBuild playlists from approved recommendations and send them to Navidrome, Jellyfin, Emby, Plex, or Spotify, or export them as M3U/XSPF. The built-in playlist types are Weekly Digest, Genre Focus, Mood Mix, and Rediscover.\n\n### Your AI, Your Choice\nUse Anthropic, OpenAI, Google Gemini, Ollama, or any OpenAI-compatible endpoint. Recommendation cards include a short explanation of why an artist made the cut.\n\n### Multilingual UI and AI Output\nDigarr now ships localized catalogs for 15 languages, a visible language switcher before and after login, persisted per-user locale preferences, and locale-aware AI reasoning for mood discovery, quick discover, and full scans.\n\n\u003e [!NOTE]\n\u003e Shipped UI languages: English, Spanish, French, German, Portuguese (Brazil), Italian, Dutch, Romanian, Polish, Turkish, Ukrainian, Russian, Japanese, Korean, and Simplified Chinese.\n\u003e\n\u003e Translations are reviewed in-repo and checked for missing or untranslated catalog values. If you notice awkward wording or missing context, please [open an issue](https://github.com/iuliandita/digarr/issues) or send a PR with fixes.\n\n### Flexible Setup\nThe setup wizard supports three starting points: Lidarr, Emby, or discovery-only. If you connect Lidarr, approved artists are added with your chosen quality and metadata profiles. If you start with Emby, Digarr saves the server connection for library sync and creates an Emby playlist target during setup. If you skip both, you can still run discovery and add targets later from Settings, including playlist exports. `slskd` targets are configured later in Settings \u003e Targets and support standalone queueing or linked Lidarr handoff.\n\n### slskd Integration\n`slskd` targets support two approval modes:\n\n- **Standalone approval** queues the matched release directly in `slskd`.\n- **Combined Lidarr + slskd approval** adds the artist to Lidarr first, then queues the selected release in `slskd` when the target is linked to a Lidarr destination.\n\nIn addition to approval-driven queueing, Digarr now runs a background `slskd` worker for linked Lidarr targets. It polls Lidarr wanted releases, creates deduped `slskd` jobs per target, advances them through search and transfer states, and only marks Lidarr-backed jobs complete after import verification. Admins can trigger a manual sync and inspect active `slskd` jobs from the API.\n\n### Cross-Platform Search\nSearch across Spotify, Deezer, MusicBrainz, TIDAL, and Bandcamp in one pass. Digarr merges the results, deduplicates them, and lets you launch Quick Discover from any match.\n\n## Features\n\n- **8 data sources:** ListenBrainz, Last.fm, Spotify (OAuth), Deezer (OAuth), Plex, Jellyfin, Emby, and Discogs\n- **Smart scoring:** weighted composite scoring across consensus, similarity, genre overlap, AI confidence, feedback learning, and popularity\n- **Auto-approve:** send high-scoring recommendations to your targets automatically\n- **Discovery modes:** manual and subscription flows for ListenBrainz (Artist Radio, User Radio, Tag Radio, Similar Users Quick/Deep), Release Radar, and Similar Artist Web, with unavailable planned modes exposed in metadata but blocked from execution until they ship\n- **Subscriptions:** scheduled discovery from discovery modes, Spotify Liked Songs, playlists and charts, Deezer favorites, followed artists and Flow, Last.fm tags and charts, ListenBrainz feeds, genre searches, and similar-artist seeds\n- **Genre deep dive:** browse by genre with Recommended, Trending, and Deep Cuts tabs\n- **Library sync and reconciliation:** background artist and album sync, per-source status, album sync coverage, unreconciled artist and album review, album coverage badges on recommendation cards, and 6 automated health checks with one-click fixes\n- **Analytics:** approval rates, genre trends, source effectiveness, score distribution, and time-to-act\n- **Multilingual UI:** 15 shipped locales, saved user language preference, localized auth/setup/high-traffic pages, and locale-aware AI reasoning\n- **Top tracks:** Deezer 30-second previews on recommendation cards with MusicBrainz fallback\n- **Decade filtering:** filter recommendations by era, from the 60s through the 20s+\n- **Music previews:** Spotify embeds, Deezer clips, and YouTube on recommendation cards\n- **OIDC/SSO and multi-user:** per-user queues, sources, scoring weights, and target configs\n- **Swipe-to-approve** on mobile, card-stack mode on desktop\n- **Webhook notifications:** Discord, Slack, ntfy, Gotify, or any HTTP endpoint\n- **15 color themes:** editor classics plus streaming-service-inspired *arr themes, in dark and light variants\n- **Export:** JSON, CSV, M3U, and XSPF\n- **Self-hosted:** a single container that runs alongside your existing *arr stack\n\n### Integrations\n\nConnect external services to unlock discovery feeds, library sync, playlist export, and one-click imports.\n\n| Service | Discovery | Subscriptions | Library Sync | Playlist Export | Import |\n|---------|-----------|--------------|-------------|----------------|--------|\n| ListenBrainz | Artist Radio, User Radio, Tag Radio, Similar Users (Quick), Similar Users (Deep) | Weekly Jams, Fresh Releases, Artist Radio, Tag Radio, Similar Users | - | - | - |\n| Spotify | - | Liked Songs, Charts, Playlists | - | Yes | Playlist |\n| Deezer | - | Favorites, Followed, Flow, Playlists | - | - | Favorites, Followed, Playlists |\n| Discogs | Collection, Wantlist | - | - | - | - |\n| Last.fm | - | Charts, Tag Radio | - | - | - |\n| Lidarr | - | - | Artists, Albums | - | - |\n| Plex | - | - | Artists, Albums | Yes | - |\n| Jellyfin | - | - | Artists, Albums | Yes | - |\n| Emby | - | - | Artists, Albums | Yes | - |\n| TheAudioDB | - | - | - | - | Artist images (primary) |\n| Wikidata | - | - | - | - | Bio + external links per artist |\n| AI Provider | Mood Discover | - | - | - | - |\n\n## Quick Start\n\n```sh\nmkdir digarr \u0026\u0026 cd digarr\ncurl -LO https://raw.githubusercontent.com/iuliandita/digarr/main/deploy/docker/docker-compose.yml\ncurl -LO https://raw.githubusercontent.com/iuliandita/digarr/main/deploy/docker/.env.example\nmkdir -p secrets\nprintf '%s\\n' 'change-this-password' \u003e secrets/postgres_password\nprintf '%s\\n' 'postgres://digarr:change-this-password@postgres:5432/digarr' \u003e secrets/database_url\ncp .env.example .env\n# Edit both secrets files and optionally .env\ndocker compose up -d\n```\n\nOpen `http://localhost:3000` and complete the setup wizard. You can start with Lidarr, Emby, or discovery-only mode. Alternatively, fill in the service env vars in `.env` and setup completes automatically on first boot. Database migrations run automatically on every startup.\n\nThe bundled `docker-compose.yml` pulls `docker.io/iuliandita/digarr:stable`, the channel that only moves once a release has soaked for at least seven days without a follow-up patch. Track `:latest` (or pin to a specific patch like `:0.44.0`) when you want the head of the release line.\n\nFor zero-touch boot, set `DIGARR_INITIAL_USERNAME`, `DIGARR_INITIAL_PASSWORD`, `AI_PROVIDER`, and `AI_MODEL`. Listening sources stay optional, but connect at least one before running discovery. Lidarr stays optional: omit `LIDARR_URL` / `LIDARR_API_KEY` to run in discovery-only mode. Emby can be added during the setup wizard or later in Settings.\n\nFor local development, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## How It Works\n\nDigarr runs a 7-stage recommendation pipeline:\n\n1. **Collect:** fetches your Lidarr library, or skips it in discovery mode\n2. **Analyze:** builds a taste profile from all connected sources\n3. **Discover:** queries Last.fm similar artists, Discogs genres, AI recommendations, and library seeds\n4. **Resolve:** validates against MusicBrainz, fetches metadata and images, and handles genre-aware disambiguation\n5. **Score:** applies the weighted scoring formula\n6. **Filter:** removes library duplicates, rejected artists with cooldowns, and low-score results\n7. **Store:** saves the batch and its recommendations\n\nYou can run the pipeline on a schedule, by hand, through subscriptions for targeted discovery, or from Discover -\u003e Discovery Modes for focused manual runs on `/discover/modes`.\n\n## Requirements\n\n| Service | Required | Purpose |\n|---------|----------|---------|\n| **Lidarr** | Optional | Music library management + auto-download |\n| **Listening source** | Optional | ListenBrainz, Last.fm, Spotify, Deezer, Plex, Jellyfin, Emby, or Discogs |\n| **AI Provider** | Yes | Anthropic, OpenAI, Gemini, Ollama, or any compatible endpoint |\n| **PostgreSQL** | Yes | Data storage (included in Docker Compose) |\n\n## Configuration\n\nMost day-to-day configuration lives in the web UI after initial setup: connections, scoring weights, schedules, preferences, and the saved interface language. If you connect Spotify, Settings \u003e Connections includes an `Import Liked Songs` action to seed recommendations for a faster first scan. Settings also includes `Job History` and `System Health` tabs; Library Health keeps the latest scan snapshot, shows when it last synced, auto-rescans on the configured library-sync interval, and still exposes a manual `Sync Now` action.\n\nEnv-var auto-setup needs initial admin credentials plus an AI provider and model. Listening sources, Lidarr, and Emby can be added later in the UI or supplied during setup. `slskd` targets are added later in Settings \u003e Targets and can be linked to a Lidarr target, so a single approval can add the artist to Lidarr first and then queue the matched Soulseek release. See [`.env.example`](.env.example) for local development fallbacks and [`deploy/docker/.env.example`](deploy/docker/.env.example) for Compose deployments.\n\n## Backup \u0026 Restore\n\nDigarr provides application-level backup and restore through the admin UI (Settings \u003e Administration) or API.\n\n**Manual backup:** `POST /api/v1/admin/backup` returns a JSON file with all configuration, users, targets, subscriptions, and recommendation history. Add `?includeCaches=true` to include artist and genre caches. The file is larger, but restores do not need to fetch that data from MusicBrainz again.\n\n**Restore:** `POST /api/v1/admin/restore` accepts a backup JSON file. The restore runs in a single transaction, so failures roll back cleanly. It restores a cleared database using the backup's primary keys plus stable natural keys for cache and lookup tables where IDs are instance-specific. If the encryption key differs from the backup, Digarr lists the affected credential fields so you can re-enter them manually.\n\n**Auto-backup before migrations:** When Digarr detects pending database migrations on startup, it saves a backup to `DIGARR_BACKUP_DIR` (default: `./backups/`). It keeps the last 14 auto-backups so a self-hoster can miss roughly two weeks of releases and still roll back. Disable this with `DIGARR_AUTO_BACKUP=false`.\n\n**Kubernetes / Helm note:** Auto-backup needs a writable `/app/backups` volume. The bundled Helm chart and raw manifests mount one by default; custom deployments should do the same.\n\n### Data Hygiene\n\nAdmin tools available under Settings \u003e Administration \u003e Data Hygiene:\n\n- **Clear Image Failures:** reset failed image cache entries so Digarr can retry them\n- **Rebuild Genre Cache:** regenerate cached genres from artist tags\n- **Re-score Recommendations:** recalculate scores with the current weights\n- **Dedupe Repair:** merge duplicate recommendations\n- **AI Reasoning Audit:** detect and fix AI hallucinations\n- **Purge Sessions:** clean out expired login sessions\n\n## Deployment\n\n| Method | Path | Notes |\n|--------|------|-------|\n| Docker Compose | [`deploy/docker/`](deploy/docker/) | Recommended. Includes PostgreSQL. Also on [Docker Hub](https://hub.docker.com/r/iuliandita/digarr). |\n| Helm chart | [`deploy/helm/digarr/`](deploy/helm/digarr/) | Kubernetes. Bundled PostgreSQL or bring your own. |\n| Raw k8s manifests | [`deploy/k8s/`](deploy/k8s/) | Reference manifests for advanced setups. |\n| Unraid | [`deploy/unraid/`](deploy/unraid/) | Community Applications template. Requires external PostgreSQL. |\n| Synology NAS | [`docs/guides/synology.md`](docs/guides/synology.md) | DSM 7.1+ (Docker/Container Manager). SSH or GUI. |\n| Docker Desktop | [`docs/guides/docker-desktop.md`](docs/guides/docker-desktop.md) | macOS and Windows (WSL 2). |\n\n### Verifying image signatures\n\nSince v0.27.8, every release image is signed with [cosign](https://github.com/sigstore/cosign) using GitHub OIDC (no long-lived keys). Signatures are stored alongside the image at both `ghcr.io/iuliandita/digarr` and `docker.io/iuliandita/digarr`. The generated SBOM is attached as a signed SPDX attestation bound to the same image digest.\n\nInstall cosign and verify a pulled image before running it:\n\n```sh\n# Replace \u003cTAG\u003e with the version you pulled, e.g. 0.27.8\ncosign verify \\\n  --certificate-identity-regexp '^https://github\\.com/iuliandita/digarr/\\.github/workflows/release\\.yml@refs/tags/v' \\\n  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \\\n  ghcr.io/iuliandita/digarr:\u003cTAG\u003e\n\n# Verify the signed SBOM\ncosign verify-attestation \\\n  --type spdxjson \\\n  --certificate-identity-regexp '^https://github\\.com/iuliandita/digarr/\\.github/workflows/release\\.yml@refs/tags/v' \\\n  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \\\n  ghcr.io/iuliandita/digarr:\u003cTAG\u003e\n```\n\nA successful verify proves the image was built by this repo's `release.yml` workflow on a tagged push. Any tampering or registry compromise after publication would fail verification.\n\n## Friends\n\nOther self-hosted music discovery projects:\n\n| Project | Approach |\n|---------|----------|\n| [Lidify](https://github.com/TheWicklowWolf/Lidify) | The OG. Lidarr library + Last.fm similar artists. Simple, focused. |\n| [Aurral](https://github.com/lklynet/aurral) | Last.fm tag similarity + Weekly Flow playlists via Soulseek/Navidrome. |\n| [MixArr](https://github.com/aquantumofdonuts/mixarr) | 56 subscription types across 12 services. Widest net in the space. |\n| [Curatorr](https://github.com/MickyGX/curatorr) | Behavior-first. Scores artists on skips/play completion, not tags. |\n| [Brainarr](https://github.com/RicherTunes/Brainarr) | Native Lidarr plugin. Privacy-first with local AI. |\n| [Sonobarr](https://github.com/Dodelidoo-Labs/sonobarr) | Last.fm discovery with optional AI assistant. Real-time UI. |\n| [Explo](https://github.com/LumePart/Explo) | Discover Weekly for self-hosted. ListenBrainz recs to your media server. |\n| [MusicMoveArr Datasets](https://github.com/MusicMoveArr/Datasets) | MB/Spotify/Deezer/Tidal datasets used by Digarr for genre enrichment. |\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Commit message format\n\nThis repo uses Conventional Commits. The commit-msg hook at `.githooks/commit-msg` enforces:\n\n    type(scope): description\n\nTypes: `feat`, `fix`, `chore`, `docs`, `refactor`, `test`, `perf`, `build`, `ci`, `revert`. Scope is optional.\n\nActivate the hook once per clone:\n\n    git config --local core.hooksPath .githooks\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=iuliandita%2Fdigarr\u0026type=timeline\u0026logscale=\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/image?repos=iuliandita/digarr\u0026type=timeline\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/image?repos=iuliandita/digarr\u0026type=timeline\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/image?repos=iuliandita/digarr\u0026type=timeline\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiuliandita%2Fdigarr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiuliandita%2Fdigarr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiuliandita%2Fdigarr/lists"}