Metadata-Version: 2.4
Name: smc360
Version: 1.0.0
Summary: Social media data connector for extracting, parsing, and managing social media data at scale.
Home-page: https://github.com/fishOmlette/SMC360
Author: Mohammed Adil Farooq
Author-email: Mohammed Adil Farooq <adil.farooq@blend360.com>
License: MIT
Project-URL: Homepage, https://github.com/fishOmlette/SMC360
Project-URL: Repository, https://github.com/fishOmlette/SMC360
Project-URL: Bug Tracker, https://github.com/fishOmlette/SMC360/issues
Keywords: social-media,youtube,instagram,data-extraction,api-client
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3>=1.26.0
Requires-Dist: click>=8.0.0
Requires-Dist: dash>=2.10.0
Requires-Dist: dash-ace>=0.2.0
Requires-Dist: dash-bootstrap-components>=1.4.0
Requires-Dist: Flask>=2.2.0
Requires-Dist: halo>=0.0.31
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: requests>=2.28.0
Requires-Dist: snowflake-connector-python>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: moto>=4.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# SMC360 — Social Media Data Connector

[![Python](https://img.shields.io/badge/Python-3.9%2B-blue.svg)]()
[![License](https://img.shields.io/badge/License-MIT-green.svg)]()
[![Status](https://img.shields.io/badge/status-inactive-lightgrey)]()

**SMC360** is a unified toolkit for extracting, parsing, and managing social media data at scale.  
It provides both a **command-line interface (CLI)** and a **web interface**, enabling flexible integration into automated workflows and user-friendly interactive environments.

---

## ✨ Features

- **Multi-Platform Support**
  - YouTube (YouTube Data API)  
  - Instagram (Basic Display API)  

- **Data Persistence**
  - Databases: PostgreSQL, Snowflake  
  - Object Storage: Amazon S3  

- **Flexible Interfaces**
  - **CLI Tool** — for automation, scheduling, and scripting  
  - **Web Interface** — for interactive extraction and monitoring  

- **Dual Storage**
  - **Parsed Data** → relational databases for analytics  
  - **Raw API Responses** → object storage for traceability and reprocessing  

---

## 🚀 Installation

```bash
pip install "git+https://github.com/Mdadilfarooq/social_media_connector.git@main"
````

---

## ⚡ Quickstart

### 1. Configure

Prepare a configuration file (`config.yaml`) with your API keys, database credentials, and storage settings:

```yaml
platform:
  name: youtube
  api_key: YOUR_YOUTUBE_API_KEY

database:
  type: postgresql
  host: localhost
  port: 5432
  user: postgres
  password: secret
  database: SMC360

storage:
  type: s3
  bucket: SMC360-data
  access_key: YOUR_AWS_KEY
  secret_key: YOUR_AWS_SECRET
```

---

### 2. CLI Usage

Extract and store social media data directly from the terminal:

```bash
SMC360 extract --config config.yaml --platform youtube
```

Other commands:

```bash
SMC360 extract --platform instagram
SMC360 status
SMC360 config validate
```

---

### 3. Web Interface

Launch the web app for interactive control:

```bash
SMC360 web
```

Open [http://localhost:8000](http://localhost:8000) to manage configurations, run extractions, and monitor jobs.

---

## 📂 Workflow

1. **Configuration** — Connect to the chosen social media platform, database, and storage service.
2. **Dynamic Loading** — Pull additional configuration from object storage.
3. **Extraction & Parsing** — Collect raw data via APIs and convert it into structured formats.
4. **Storage** — Save structured data into databases and archive raw responses in object storage.

---

## 💡 Use Cases

* Social media analytics and insights
* Data warehousing for BI/reporting
* Marketing and campaign performance tracking
* Archival of raw API responses for compliance and auditing

---

## 🛠 Development

Clone the repo and install in editable mode:

```bash
git clone https://github.com/Mdadilfarooq/social_media_connector.git
cd social_media_connector
pip install -e .
```

Run tests:

```bash
pytest
```

---

## 📜 License

This project is licensed under the [MIT License](LICENSE).

---

