Skip to main content

ETL para extraer, transformar y cargar datos de charts de spotify en S3

Project description

Track Flow / Flujo de Seguimiento

ES / Español 🇪🇸

track-flow es una librería modular en Python diseñada para implementar un pipeline ETL completo, ideal para flujos de trabajo donde se requiere extracción, transformación y carga de datos de forma eficiente y reutilizable.


🚀 Características

  • Extracción desde APIs externas (por ejemplo, Spotify)
  • Transformación de datos en DTOs
  • Almacenamiento en formato Parquet
  • Carga en Amazon S3 u otros destinos
  • Configuración flexible mediante variables de entorno
  • Uso como librería o desde línea de comandos

⚙️ Variables de entorno necesarias

Debes definir un archivo .env en la raíz de tu proyecto con las siguientes variables:

# Claves AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=

# Bucket de destino
AWS_BUCKET_SONG_NAME=

# Datos a procesar
TRACK_LIST=2U3UUpx6ocHXgvcXmq0YBw  # ID de playlist o track de Spotify

#CLIENT AND CLIENT SECRET SPOTIFY 

CLIENT_ID_SPOTIFY= 
CLIENT_SECRET_SPOTIFY=

# Directorio de salida local
ETL_OUTPUT_DIR=output

📦 Instalación

pip install track-flow

💻 Uso básico

Como script:

trackflow

Como módulo de Python:

from track_flow.main import main

main()

🧠 Requisitos

  • Python >= 3.9
  • Tener configurado el archivo .env
  • Acceso válido a la API de Spotify y AWS

🪪 Licencia

MIT © Facu Vega
https://github.com/facuvegaingenieer


EN / English 🇬🇧

track-flow is a modular Python library that implements a full ETL pipeline, ideal for workflows requiring robust data extraction, transformation, and loading in a reusable and configurable way.


🚀 Features

  • Extraction from external APIs (e.g., Spotify)
  • Data transformation into DTOs
  • Storage as Parquet files
  • Upload to Amazon S3 or other destinations
  • Environment-based configuration
  • Usable as a library or from the command line

⚙️ Required Environment Variables

You must define a .env file at the root of your project with the following variables:

# AWS credentials
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=

# S3 Bucket
AWS_BUCKET_SONG_NAME=

# Data to extract
TRACK_LIST=2U3UUpx6ocHXgvcXmq0YBw  # Playlist or track ID from Spotify

# Local output directory
ETL_OUTPUT_DIR=output

📦 Installation

pip install track-flow

💻 Basic Usage

As CLI:

trackflow

As a Python module:

from track_flow.main import main

main()

🧠 Requirements

  • Python >= 3.9
  • Valid .env file
  • Access to Spotify and AWS

🪪 License

MIT © Facu Vega
https://github.com/facuvegaingenieer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

track_flow-0.1.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

track_flow-0.1.4-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file track_flow-0.1.4.tar.gz.

File metadata

  • Download URL: track_flow-0.1.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for track_flow-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1c28e59c086d8be54cd900711992159a00864e506190e621c950b267c02c8262
MD5 45f6caa7ea81d6c37cd7e3f92634cc63
BLAKE2b-256 2945fa4ce3371fc1073313666b7c055e07595ba4fbe8200e42345bacd30ceb33

See more details on using hashes here.

File details

Details for the file track_flow-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: track_flow-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for track_flow-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f0143dfdf20f2cb834ee4b1ce5faf17c4f1258621d25db6ccdcac7c3b6c67a37
MD5 0e43d218da1a9944121a00295dc053ca
BLAKE2b-256 c1daa816076071e6135f62e2b4e53f93e7c8be6feef27d54f1a9c957b29f12e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page