{"id":36643796,"url":"https://github.com/serpapps/coomer-downloader","last_synced_at":"2026-01-15T03:12:43.429Z","repository":{"id":332056758,"uuid":"1092156989","full_name":"serpapps/coomer-downloader","owner":"serpapps","description":"Coomer Downloader Browser Extension (Chrome, Firefox, Edge, Opera, Brave)","archived":false,"fork":false,"pushed_at":"2026-01-09T00:39:53.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T17:21:35.666Z","etag":null,"topics":["coomer-downloader","coomer-video-downloader"],"latest_commit_sha":null,"homepage":"https://serp.ly/coomer-downloader","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serpapps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["devinschumacher"],"open_collective":"devinschumacher","custom":["https://serpapps.github.io","https://apps.serp.co","https://serp.co","https://devinschumacher.com"]}},"created_at":"2025-11-08T05:10:37.000Z","updated_at":"2026-01-07T13:01:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/serpapps/coomer-downloader","commit_stats":null,"previous_names":["serpapps/coomer-downloader"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/serpapps/coomer-downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serpapps%2Fcoomer-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serpapps%2Fcoomer-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serpapps%2Fcoomer-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serpapps%2Fcoomer-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serpapps","download_url":"https://codeload.github.com/serpapps/coomer-downloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serpapps%2Fcoomer-downloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["coomer-downloader","coomer-video-downloader"],"created_at":"2026-01-12T09:55:57.074Z","updated_at":"2026-01-15T03:12:43.424Z","avatar_url":"https://github.com/serpapps.png","language":null,"funding_links":["https://github.com/sponsors/devinschumacher","https://opencollective.com/devinschumacher","https://serpapps.github.io","https://apps.serp.co","https://serp.co","https://devinschumacher.com"],"categories":[],"sub_categories":[],"readme":"# Coomer Downloader Browser Extension (Chrome, Firefox, Edge, Opera, Brave)\n\n\n## Related\n\n---\n\u003cdetails\u003e\n\u003csummary\u003e\n  Research\n\u003c/summary\u003e\n# How to Download Coomer Videos: Technical Analysis of Stream Patterns, CDNs, and Download Methods\n*A comprehensive research document analyzing Coomer's video infrastructure, embed patterns, stream formats, and optimal download strategies using modern tools*\n**Authors**: SERP Apps  \n**Date**: December 2025  \n**Version**: 1.0\n---\n- [Coomer Downloader gist](https://gist.github.com/devinschumacher/e86dd22a135ca854743214392117ae01)\n## Abstract\n\nThis document covers Coomer's API endpoints for post metadata and the direct file URLs used for attachments, including video files.\n\n## Table of Contents\n\n1. [Introduction](#1-introduction)\n2. [Coomer Video Infrastructure Overview](#2-coomer-video-infrastructure-overview)\n3. [URL Patterns and Detection](#3-url-patterns-and-detection)\n4. [Stream Formats and CDN Analysis](#4-stream-formats-and-cdn-analysis)\n5. [yt-dlp Implementation Strategies](#5-yt-dlp-implementation-strategies)\n6. [FFmpeg Processing Techniques](#6-ffmpeg-processing-techniques)\n7. [Alternative Tools and Backup Methods](#7-alternative-tools-and-backup-methods)\n8. [Coomer API Integration](#8-coomer-api-integration)\n9. [Implementation Recommendations](#9-implementation-recommendations)\n10. [Troubleshooting and Edge Cases](#10-troubleshooting-and-edge-cases)\n11. [Conclusion](#11-conclusion)\n\n---\n\n## 1. Introduction\n\nCoomer aggregates creator posts and exposes attachments via a public API. Downloads focus on attachments rather than stream manifests.\n\n### 1.1 Research Scope\n\n- Coomer creator and post API endpoints\n- Attachment URLs under /data/\n- Batch downloads via gallery-dl\n\n### 1.2 Methodology\n\n- Query API endpoints for post metadata\n- Extract attachment URLs from JSON\n- Download files directly with yt-dlp or aria2c\n\n---\n\n## 2. Coomer Video Infrastructure Overview\n\n### 2.1 Video Hosting Types\n\n- Direct file attachments (MP4, images)\n\n### 2.2 CDN Architecture\n\n- coomer.su (API and content)\n- coomer.party (alternative mirror)\n\n### 2.3 Video Processing Pipeline\n\n1. Client requests API for creator posts\n2. API returns attachment file paths\n3. Client downloads files from /data/\n\n### 2.4 Access Control and Authentication\n\n- Public API endpoints\n- Some services may require rate limiting\n\n---\n\n## 3. URL Patterns and Detection\n\n### 3.1 Watch Page URL Patterns\n\n```\nhttps://coomer.su/\u003cservice\u003e/user/\u003cid\u003e\n```\n\n### 3.2 Embed URL Patterns\n\n```\nhttps://coomer.su/data/\u003cpath\u003e/\u003cfile\u003e\n```\n\n### 3.3 Direct Media and CDN URL Patterns\n\n```\nhttps://coomer.su/data/\u003cpath\u003e/\u003cfile\u003e.mp4\nhttps://coomer.su/data/\u003cpath\u003e/\u003cfile\u003e.jpg\n```\n\n### 3.4 Regex Patterns for URL Extraction\n\n```regex\ncoomer\\\\.su/(?:\\\\w+)/user/(\\\\d+)\n/data/[^\\\\s\\\\\\\"']+\\\\.(mp4|jpg|png)\n```\n\n### 3.5 Command-line URL Extraction\n\n```bash\ngrep -oE \"https?://coomer\\\\.su/data/[^'\\\" ]+\\.(mp4|jpg|png)\" data.json | sort -u\n```\n\n---\n\n## 4. Stream Formats and CDN Analysis\n\n### 4.1 Stream Formats\n\n| Format | Extension | Notes |\n|--------|-----------|-------|\n| MP4 | .mp4 | Direct attachment downloads |\n| Images | .jpg/.png | Gallery attachments |\n\n### 4.2 Typical Quality Ladder\n\n| Quality | Typical Resolution | Notes |\n|---------|--------------------|-------|\n| Low | 360p - 480p | Fast preview streams or mobile variants |\n| Medium | 720p | Common default for web playback |\n| High | 1080p+ | Available when source uploads are higher quality |\n\n### 4.3 CDN URL Construction and Query Parameters\n\n- Attachments are direct file URLs under /data/\n- No HLS manifests observed\n\n### 4.4 Validation and Inspection Commands\n\n```bash\nffprobe -hide_banner -show_streams \"file.mp4\"\n```\n\n---\n\n## 5. yt-dlp Implementation Strategies\n\nyt-dlp can download direct MP4 URLs. For bulk, use gallery-dl or aria2c with URL lists.\n\n### 5.1 Basic Usage\n\n```bash\nyt-dlp [OPTIONS] [--] URL [URL...]\nyt-dlp -F \"https://example.com/watch/123\"\n```\n\n### 5.2 Authentication and Cookies\n\n- Authentication generally not required for API access\n\n### 5.3 Format Selection and Output Templates\n\n```bash\nyt-dlp -f bestvideo+bestaudio/best \"URL\"\nyt-dlp -o \"%(title)s.%(ext)s\" \"URL\"\nyt-dlp --download-archive archive.txt \"URL\"\n```\n\n### 5.4 Site-Specific Examples\n\n```bash\nyt-dlp \"https://coomer.su/data/\u003cpath\u003e/\u003cfile\u003e.mp4\"\n```\n\n### 5.5 Batch and Archive Mode\n\n```bash\nyt-dlp -a urls.txt --download-archive archive.txt\nyt-dlp --no-overwrites --continue \"URL\"\n```\n\n### 5.6 Error Handling Patterns\n\n- Use --retries for intermittent 5xx responses\n\n---\n\n## 6. FFmpeg Processing Techniques\n\nFFmpeg is only required for validation or remuxing if files are fragmented.\n\n### 6.1 Inspect and Validate Streams\n\n```bash\nffprobe -hide_banner -i \"file.mp4\"\n```\n\n### 6.2 Common Remux and Repair Patterns\n\n```bash\nffmpeg -i \"playlist.m3u8\" -c copy output.mp4\nffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4\nffprobe -hide_banner -show_streams output.mp4\n```\n\n---\n\n## 7. Alternative Tools and Backup Methods\n\n### 7.1 Streamlink\n\n```bash\nstreamlink \"https://coomer.su/data/\u003cpath\u003e/\u003cfile\u003e.mp4\" best -o output.mp4\n```\n\n### 7.2 aria2c\n\n```bash\naria2c -i urls.txt -j 4\n```\n\n### 7.3 gallery-dl\n\n```bash\ngallery-dl \"https://coomer.su/\u003cservice\u003e/user/\u003cid\u003e\"\n```\n\n### 7.4 Browser DevTools\n\n- Use API JSON to build URL lists\n\n---\n\n## 8. Coomer API Integration\n\n### 8.1 Known Endpoints\n\n- GET https://coomer.su/api/v1/creators\n- GET https://coomer.su/api/v1/\u003cservice\u003e/user/\u003cid\u003e/posts\n\n### 8.2 Example Requests\n\n```bash\ncurl https://coomer.su/api/v1/\u003cservice\u003e/user/\u003cid\u003e/posts\n```\n\n### 8.3 Token and Session Handling\n\n- Attachment paths returned in the JSON response\n\n---\n\n## 9. Implementation Recommendations\n\n### 9.1 Detection Hierarchy\n\n- Call API to list posts\n- Extract attachment URLs\n\n### 9.2 Site-Specific Notes\n\n- Batch download attachments with gallery-dl\n- Use download archive to prevent duplicates\n\n### 9.3 Storage and Naming Strategy\n\n- Group downloads by creator and post ID\n\n---\n\n## 10. Troubleshooting and Edge Cases\n\n- Large creator libraries may require pagination\n\n---\n\n## 11. Conclusion\n\nCoomer exposes direct file attachments via a public API. Implementations should query the API, extract attachment URLs, and download with gallery-dl, aria2c, or yt-dlp for MP4 files.\n\n| Tool | Best Use Case | Notes |\n|------|---------------|-------|\n| yt-dlp | Primary downloader for MP4/HLS | Supports cookies, format selection, retries |\n| ffmpeg | Remuxing and validation | Useful for HLS to MP4 conversion |\n| streamlink | Live/HLS fallback | Streams to file or pipes into ffmpeg |\n| aria2c | Multi-connection HTTP/HLS downloads | Good for large files and retries |\n| gallery-dl | Image-first or gallery-heavy sites | Best for gallery or attachment extraction |\n\n\n---\n\n## Disclaimer and Ethical Use\n\nThis document is provided for lawful, personal, or authorized use cases only. Always respect the site terms of service, content creator rights, and applicable laws. If DRM or explicit access controls are present, do not attempt to bypass them; use official downloads or creator-provided access instead.\n\n## Last Updated\n\nDecember 2025\n\n## Next Review\n\n90 days from last update or when site playback changes are observed.\n\n## Related\n\n- SERP Apps research index (internal)\n- SERP extension downloaders (internal)\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserpapps%2Fcoomer-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserpapps%2Fcoomer-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserpapps%2Fcoomer-downloader/lists"}