{"adoption": {"forks": 308, "observed_at": "2026-08-28T04:04:39.916775+00:00", "stars": 1416}, "canonical_url": "https://ross.abutalabs.com/products/pafy", "card": {"archived": false, "artifact_type": "library", "description": "Python library to download YouTube content and retrieve metadata", "domain": ["media", "developer-tools"], "enriched": true, "function": ["http-client", "web-scraping", "cli", "video-processing"], "health_score": 20, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["mps-youtube/pafy"], "name": "mps-youtube/pafy", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-04-29T15:15:40+00:00", "repo": "mps-youtube/pafy", "stars": 1416, "tags": ["youtube", "youtube-downloader", "metadata", "streaming", "youtube-dl", "command-line"], "topics": [], "urls": [], "use_cases": ["download youtube videos in python", "get youtube video metadata like viewcount and duration", "extract audio from youtube videos", "get stream url to play youtube video in vlc", "download youtube playlists", "command line youtube downloader"], "what_it_is": "Pafy is a Python library for retrieving YouTube video metadata and downloading video or audio streams at requested resolutions and formats. It also ships a small command-line tool (ytdl) and can fetch stream URLs for playback in external players.", "when_to_avoid": ["you need actively maintained YouTube extraction that keeps up with YouTube changes - yt-dlp is more reliable", "you need Python 2 support is irrelevant or you want modern async tooling", "you need features beyond YouTube platforms"], "when_to_choose": ["you need a lightweight single-module Python library for YouTube metadata and downloads", "you want to select specific resolution, bitrate, or audio-only streams", "you need stream URLs for external players like VLC or mplayer"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pafy", "repo": "mps-youtube/pafy", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.916775+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:06.399798+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1d108e40b6a0a59d9fcbd72687bb9a08f092f79ce528082d74cf3f820b3b84cf", "fetched_at": "2026-08-28T04:04:39.916775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mps-youtube/pafy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4818, "days_push": 856, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}