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.9.tar.gz (8.3 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.9-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: track_flow-0.1.9.tar.gz
  • Upload date:
  • Size: 8.3 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.9.tar.gz
Algorithm Hash digest
SHA256 26123dc793ad4ac5377b914e832b2d662e50138f3f8e45f5c0dbf92b1252dc1c
MD5 203d74780b108069d91247308792c2e3
BLAKE2b-256 3715e9e8444809ad86d78c4664696f72d460f8b684e4b90f574dc11fcb87b2ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: track_flow-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 9.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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 01a3e0f41969e430c69c75a91ca675e0fcf7c6d5d3adbff1bee898a681766d66
MD5 76f8332644738acf2a8f8180e1cee603
BLAKE2b-256 1effbf6bfe68757f8864571b5c2b9ec85808f041b753e0cc870852b0b33a71e2

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