New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

github-content-downloader

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github-content-downloader

Download any file or folder from GitHub repositories without cloning

  • 0.1.0
  • PyPI
  • Socket score

Maintainers
1

GitHub Content Downloader

A powerful command-line tool to download files and folders from GitHub repositories. Download any file or entire directory from GitHub repositories without cloning - perfect for selectively downloading specific content.

Features

  • Download single files from GitHub repositories
  • Download entire folders recursively
  • Download complete repositories
  • Simple command-line interface (ghcd)
  • Support for both file URLs (blob) and folder URLs (tree)
  • Customizable download location
  • No authentication required for public repositories

Installation

Option 1: Install from PyPI

pip install github-content-downloader

Option 2: Install from source

# Clone the repository
git clone https://github.com/soykot2910/github-content-downloader.git

# Navigate to the project directory
cd github-content-downloader

# Install the package
pip install .

Usage

Command Line Interface

  1. Download a complete repository:
ghcd https://github.com/username/repository

Example:

ghcd https://github.com/tensorflow/tensorflow
  1. Download a specific folder:
ghcd https://github.com/username/repository/tree/branch/folder

Example:

ghcd https://github.com/tensorflow/tensorflow/tree/master/tensorflow/python
  1. Download a single file:
ghcd https://github.com/username/repository/blob/branch/path/to/file

Example:

ghcd https://github.com/tensorflow/tensorflow/blob/master/README.md
  1. Specify custom output directory:
ghcd -o ./my-downloads <github-url>
  1. Interactive mode (if no URL provided):
ghcd

Command Line Options

ghcd --help

Available options:

  • -o, --output: Specify output directory (default: ./downloaded_files)
  • -h, --help: Show help message

Python Package Usage

You can also use it as a Python package in your code:

from github_downloader import download_from_github

# Download complete repository
download_from_github("https://github.com/username/repository")

# Download specific folder
download_from_github(
    "https://github.com/username/repository/tree/master/docs",
    dest_folder="./my-downloads"
)

# Download single file
download_from_github(
    "https://github.com/username/repository/blob/master/README.md"
)

URL Format Examples

1. Complete Repository

https://github.com/username/repository

Downloads the entire repository from the default branch (usually 'master' or 'main').

2. Specific Folder

https://github.com/username/repository/tree/branch/path/to/folder

Downloads only the specified folder and its contents.

3. Single File

https://github.com/username/repository/blob/branch/path/to/file

Downloads only the specified file.

Common Issues and Solutions

  1. Permission Error: If you get a permission error while downloading, make sure you have write permissions in the output directory.

  2. Invalid URL Format: Make sure your GitHub URL follows one of these patterns:

    • Repository: https://github.com/username/repo
    • Folder: https://github.com/username/repo/tree/branch/path
    • File: https://github.com/username/repo/blob/branch/path
  3. Download Failed: If downloads fail, check:

    • Your internet connection
    • The repository is public and accessible
    • The URL is correct and the resource exists

Requirements

  • Python 3.6 or higher
  • requests library (automatically installed with the package)

Development

Want to contribute? Great! Here's how:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Install development dependencies:
pip install -e .
  1. Make your changes
  2. Commit your changes (git commit -m 'Add some amazing feature')
  3. Push to the branch (git push origin feature/amazing-feature)
  4. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

  • Md.Soykot
  • Email: md.soykot2910@gmail.com
  • GitHub: @soykot2910

Support

If you encounter any issues or have questions, please:

  1. Check the Common Issues section
  2. Open an issue on GitHub
  3. Contact the author via email

Acknowledgments

  • Thanks to GitHub for providing their API
  • Inspired by the need to download specific parts of repositories without cloning

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc