{"id":34148206,"url":"https://github.com/ax-i-om/tempest","last_synced_at":"2026-03-12T06:38:40.112Z","repository":{"id":187035976,"uuid":"674337918","full_name":"ax-i-om/tempest","owner":"ax-i-om","description":"Leverage paste sites as a medium for discovery of objectionable/infringing materials. ","archived":false,"fork":false,"pushed_at":"2024-03-04T16:19:51.000Z","size":353,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T15:52:39.050Z","etag":null,"topics":["mega","osint","scraper"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ax-i-om.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-08-03T17:43:09.000Z","updated_at":"2025-10-01T12:40:20.000Z","dependencies_parsed_at":"2023-08-08T18:47:23.268Z","dependency_job_id":"37baf0dd-d2e2-4cec-9730-1a41782a9a3d","html_url":"https://github.com/ax-i-om/tempest","commit_stats":null,"previous_names":["ax-i-om/omega","ax-i-om/vigor"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ax-i-om/tempest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ax-i-om%2Ftempest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ax-i-om%2Ftempest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ax-i-om%2Ftempest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ax-i-om%2Ftempest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ax-i-om","download_url":"https://codeload.github.com/ax-i-om/tempest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ax-i-om%2Ftempest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30417517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T04:41:02.746Z","status":"ssl_error","status_checked_at":"2026-03-12T04:40:12.571Z","response_time":114,"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":["mega","osint","scraper"],"created_at":"2025-12-15T04:40:42.807Z","updated_at":"2026-03-12T06:38:40.107Z","avatar_url":"https://github.com/ax-i-om.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\n  \u003ca\u003e\u003cimg src=\"./images/icon.png\" width=200 height=\"200\"\u003e\u003c/a\u003e\n    \u003ch1 align=\"center\"\u003eTempest\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://pkg.go.dev/github.com/ax-i-om/tempest#section-directories\"\u003e\u003cimg src=\"https://pkg.go.dev/badge/github.com/ax-i-om/tempest.svg\" alt=\"\"\u003e\u003c/a\u003e\n    \u003ca\u003e\u003cimg src=\"https://img.shields.io/badge/version-0.9.3-blue.svg\" alt=\"v0.9.3\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/ax-i-om/tempest\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/ax-i-om/tempest\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\u003cbr\u003e\n    \u003ca href=\"https://app.deepsource.com/gh/ax-i-om/tempest/\" target=\"_blank\"\u003e\u003cimg alt=\"DeepSource\" title=\"DeepSource\" src=\"https://app.deepsource.com/gh/ax-i-om/tempest.svg/?label=active+issues\u0026show_trend=true\"/\u003e\u003c/a\u003e\u003cbr\u003e\n   Leverage paste sites as a medium for discovery of objectionable/infringing materials. \u003cbr\u003e\n\u003c/a\u003e\n  \u003c/p\u003e\u003cbr\u003e\n\u003c/p\u003e\n\n## Table of Contents\n\n- [Information](#information)\n  - [About](#about)\n  - [Features](#features)\n  - [Disclaimer](#disclaimer)\n  - [AI Disclosure](#ai-disclosure)\n  - [Installation](#installation)\n  - [Usage](#usage)\n  - [Cloud Storage / File Sharing Platform Modules](#cloud-storage--file-sharing-platform-modules)\n  - [Entry Format](#entry-format)\n  - [Important Notes](#important-notes)\n  - [TODO](#todo)\n\n## Information\n\n### About\n\nTempest is a simple, lightweight, and cross-platform solution designed to enable individuals to efficiently discover and extract active cloud storage/file sharing links from paste platforms such as [Rentry.co](https://rentry.co). It was created to address the notable uptick in paste sites being used to distribute content that violates copyright and piracy statutes.\n\n### Features\n\n- Scrape and extract information from multiple different cloud storage/file sharing platforms (see [Cloud Storage/File Sharing Platform Modules](#cloud-storage--file-sharing-platform-modules))\n- Print results to the terminal or output them to a specified JSON/CSV file\n- Built in `clean` function for cleaning/validating/deduplicating JSON/CSV files generated by Tempest\n- Design philosophy revolving around high documentation coverage and modularity, enabling easy maintenance, contribution, and integration.\n\n### Disclaimer\n\nIt is the end user's responsibility to obey all applicable local, state, and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program. By using Tempest, you agree to the previous statements.\n\n### AI Disclosure\n\nThe Tempest logo/symbol/mark was generated using OpenAI's DALL-E 2 AI system.\n\n### Installation\n1. Fetch the repository via ***git clone***: `git clone https://github.com/ax-i-om/tempest.git`\n2. Navigate to the root directory of of the cloned repository via ***cd***: `cd tempest`\n3. In your preferred terminal, enter and run: `go run main.go`\n\n ***OR***\n\n1. Install the repository via ***go install***: `go install github.com/ax-i-om/tempest@latest`\n2. In your preferred terminal, enter and run: `tempest`\n\n### Usage\n\nDisplay Tempest usage help in the terminal via: `tempest help`\n\nTempest supports three primary methods of output, those being JSON, CSV, and plain text (output to console). \nIf you want to output plain text to the console, run tempest like so: `tempest console`.\n\n*Note:*\nIf you want to output the console results to a file, append this to the command: `2\u003e\u00261 | tee results.txt` \u003cbr\u003e\nFor example `tempest console 2\u003e\u00261 | tee results.txt` (may vary depending on operating system) \u003cbr\u003e\nCAUTION: IF THE SPECIFIED OUTPUT FILE ALREADY EXISTS, THIS WILL OVERWRITE THE CONTENTS\n\nIf you want to output the results to a JSON/CSV file, the command should be formatted like so: `tempest \u003cjson/csv\u003e \u003cfilename\u003e`\u003cbr\u003e\nJSON Example: `tempest json results` ***VS*** CSV Example: `tempest csv results`\u003cbr\u003e\n*Note:* If you exclude the file extension *(.json/.csv)*, one will be automatically appended.\n\nIn order to gracefully shut down Tempest, press `Ctrl + C` in the terminal **ONCE** and wait until the remaining goroutines finish executing (typically \u003c60s).\u003cbr\u003e\nIn order to forcefully shut down Tempest press `Ctrl + C` in the terminal **TWICE**.\u003cbr\u003e\n*CAUTION:* FORCEFULLY SHUTTING DOWN TEMPEST MAY RESULT IN ISSUES INCLUDING, BUT NOT LIMITED TO, DATA LOSS AND FILE CORRUPTION.\n\nIf you decide to output the results to a JSON file specifically, it will not be valid JSON.\u003cbr\u003e\nTempest comes bundled with a function for cleaning the resulting JSON content and can be used like so: `tempest clean results.json`\u003cbr\u003e\nThis will be the quickest way of converting the JSON file formatting into one that is valid; however, reusing this file for results will cause further formatting issues. The clean function also removes any duplicate entries from the file. The clean function will also remove duplicate entries from CSV files generated by tempest.\n*Note:* Unlike other functions in Tempest, a file extension *(.json/.csv)* will not be automatically appended. When cleaning, you must specify the file extension.\n\nAppend `-d` or `--debug` flag to the command to print more detailed logs\n\n### Cloud Storage / File Sharing Platform Modules\n\n| Module        | Status       | Information Extracted                                                            |\n| :-----------: | ------------ | :------------------------------------------------------------------------------: |\n| Bunkr         | Functioning  | Link, Title, Service, Type, Size, FileCount, Thumbnail, Views                    |\n| CloudMailRu   | Functioning  | Link, Title, Service, Type, Size, MTime, Hash, Malware                           |\n| Cyberdrop     | Functioning  | Link, Title, Service, Type, Size, FileCount, Thumbnail, Description, UploadDate  |\n| Dood          | Functioning  | Link, Service, Type                                                              |\n| Gofile        | Functioning  | Link, Title, Service, Type, FileCount, Downloads                                 |\n| Google Drive  | Functioning  | Link, Title, Service, Type                                                       |\n| Mega          | Functioning  | Link, Service, Type, Size, FileCount                                             |\n| Sendvid       | Functioning  | Link, Title, Service, Type, Thumbnail, Views                                     |\n\n### Entry Format\n\n``` go\n// Entry represents the extracted link and it's accompanying data.\ntype Entry struct {\n\tSource string `json:\"source\"`\n\tLink   string `json:\"link\"`\n\n\tTitle       string `json:\"title\"`\n\tDescription string `json:\"description\"`\n\tService     string `json:\"service\"`\n\n\tUploaded string `json:\"uploaded\"`\n\tMtime    string `json:\"mtime\"`\n\n\tType      string `json:\"type\"`\n\tSize      string `json:\"size\"`\n\tFileCount int    `json:\"filecount\"`\n\n\tThumbnail string `json:\"thumbnail\"`\n\tDownloads int    `json:\"downloads\"`\n\tViews     int    `json:\"views\"`\n\n\tHash    string `json:\"hash\"`\n\tMalware string `json:\"malware\"`\n}\n```\n\n### Important Notes\n\n- Mega file count and size is unreliable, as the metadata specified in the Mega folder/file headers doesn't seem to accurately align with the true content's file count/size. Take with a grain of salt.\n- CSV values are delimited with commas (,). Ensure that when opening/rendering/presenting the CSV file, fields are not separated via other characters/delimeters such as semicolons (;) and tabs as this may cause presentation/formatting issues.\n\n### TODO\n\n- Add tests\n- Better logging\n- Implement proxy support?\n- General optimization \u0026 cleanup\n- Improve error handling","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fax-i-om%2Ftempest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fax-i-om%2Ftempest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fax-i-om%2Ftempest/lists"}