Skip to main content

Simple URL shortening with advanced analytics, emoji aliases, and more using spoo.me.

Project description

py_spoo_url banner

🚀 Simple URL shortening with advanced analytics, emoji aliases, and more using spoo.me


📖 Table of Contents

📦 Installing

You can install this package using pip:

pip install py_spoo_url

📥 Importing

from py_spoo_url import Shorten, Statistics

✂️ Shortening URL

For Non-emoji aliases

shortener = Shortener()
long_url = "https://www.example.com"
short_url = shortener.shorten(long_url, password="SuperSecretPassword@444", max_clicks=100)
# for custom alias, put `alias=<your_choice>`

print(f"Shortened URL: {short_url}")

😎 For Emoji aliases

shortener = Shortener()
long_url = "https://www.example.com"
emoji_url = shorten.emojify(long_url) # pass password and max-clicks as shown above if you want
# for custom emoji alias, put `emoji_alias=<random_emoji_sequence>`

print(f"Emojified URL: {emoji_url}")

Note: The emoji sequence must contain actual emojies like 😆🤯...


📊 URL Statistics

The Statistics class enables you to retrieve detailed statistics for a given short code.

🔧 Initializing the class

from spoo_me import Statistics

# Initialize Statistics with a short code
stats = Statistics(short_code="ga") # replace with the shortcode you want
# if the shortUrl is password protected you have to pass the password too

👀 Viewing the Basic Statistics

print(f"Total Clicks: {stats.total_clicks}")
print(f"Total Unique Clicks: {stats.total_unique_clicks}")
print(f"Average Daily Clicks: {stats.average_daily_clicks}")
print(f"Clicks Analysis: {stats.clicks_analysis}")
print(f"Browser Analysis: {stats.browsers_analysis}")
# ... and more (details below)
List of the analytics you can access

Method/Attribute Description
total_clicks Total number of clicks on the short URL.
total_unique_clicks Total number of unique clicks on the short URL.
average_daily_clicks Average number of clicks per day.
average_monthly_clicks Average number of clicks per month.
average_weekly_clicks Average number of clicks per week.
last_click Information about the last click on the short URL.
last_click_browser Browser used for the last click.
last_click_platform Operating system used for the last click.
created_at Date when the short URL was created.
creation_time Time of day when the short URL was created.
browsers_analysis Analysis of browsers used for clicks.
platforms_analysis Analysis of operating systems used for clicks.
country_analysis Analysis of countries from which clicks originated.
referrers_analysis Analysis of referrers (sources) of clicks.
clicks_analysis Detailed analysis of daily clicks.
unique_browsers_analysis Analysis of unique browsers used for clicks.
unique_platforms_analysis Analysis of unique operating systems for clicks.
unique_country_analysis Analysis of unique countries from which clicks originated.
unique_referrers_analysis Analysis of unique referrers (sources) of clicks.
unique_clicks_analysis Detailed analysis of daily unique clicks.
expired Indicates if the short URL has expired.
password Password associated with the short URL (if any).

Example Usage

print(f"Creation Time: {stats.creation_time}")

📈 Generating Insightful Charts

plt = stats.make_chart(data="browsers_analysis", chart_type="bar") # this returns an object of matplotlib
plt.show()

# ... and more (see below)

# generating countries heatmaps
plt = stats.make_countries_heatmap()
plt.show()

plt = stats.make_unique_countries_heatmap()
plt.show()
List of Available Charts

Method Description
make_chart Create various types of charts based on the data provided.
Parameters Description
data Type of data to visualize (e.g., 'browsers_analysis', see below).
chart_type Type of chart to create (e.g., "bar", "pie", "line", see below).
days Number of days to consider for time-based analysis. (only for last_n_days_analysis and last_n_days_unique_analysis)

Valid Data that can be passed to make the chart

  • 'browsers_analysis'
  • 'platforms_analysis'
  • 'country_analysis'
  • 'referrers_analysis'
  • 'clicks_analysis'
  • 'unique_browsers_analysis'
  • 'unique_platforms_analysis'
  • 'unique_country_analysis'
  • 'unique_referrers_analysis'
  • 'unique_clicks_analysis'
  • 'last_n_days_analysis'
  • 'last_n_days_unique_analysis'

Valid Chart types

  • 'bar'
  • 'pie'
  • 'line'
  • 'scatter'
  • 'hist'
  • 'box'
  • 'area'

Usage Example

plt = stats.make_chart('browsers_analysis', chart_type="bar")
plt.show()

👀 Heatmap Preview

Heatmap Example Image

📤 Exporting Stats Data

You can export the statistical data to various file formats, including Excel, CSV, and JSON:

# Export data to Excel
stats.export_data(filename="stats_export.xlsx", filetype="xlsx")

# Export data to CSV and compress into a ZIP file
stats.export_data(filename="stats_export", filetype="csv")

# Export data to Json
stats.export_data(filename="stats_export.json", filetypes="json")

🧳 Dependencies

  • matplotlib: For creating charts and visualizations.
  • requests: For making HTTP requests to the Spoo.me API.
  • pandas: For handling and manipulating data in tabular form. 🐼
  • geopandas: For creating geographical visualizations. 🌎

All of the dependencies are automatically installed while installing the package but in case of any errors, you can install all of the dependencies listed in the requirements.txt file.

🚨 Error Codes

To see the error codes returned by the API, please visit https://spoo.me/api

🤝 Support and Issues

If you encounter any issues or have questions about using the Spoo.me Python package, please open an issue on the GitHub repository.

🤗 Contributing

Contributions are welcome! If you have ideas for improvements or new features, feel free to fork the repository, make your changes, and submit a pull request

📜 Licence

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


PyPI Downloads Contributions Welcome Last Commit



© spoo.me . 2024

All Rights Reserved

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

py_spoo_url-0.0.5.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

py_spoo_url-0.0.5-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file py_spoo_url-0.0.5.tar.gz.

File metadata

  • Download URL: py_spoo_url-0.0.5.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for py_spoo_url-0.0.5.tar.gz
Algorithm Hash digest
SHA256 0e36f631fc54840fa746f9318971af8a953b62825d8e91a653097d18d45142bb
MD5 6f984dc3c205745a705aa2dfa040d632
BLAKE2b-256 5795dd05522bf523cdfc6b1c9f0b11eb12b19746baa381897bb534afc90d15f7

See more details on using hashes here.

File details

Details for the file py_spoo_url-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: py_spoo_url-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for py_spoo_url-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f5863e09ece4e2c643b26c69e15fb5e231dfb7fd7a36dae88e064e116579cb0
MD5 0248dec12146b43ea763c78258c0d9c9
BLAKE2b-256 e2c4fc5ff1b74157618c87dbd439470d0b628bcdb1a4275bccae5d6959f1a343

See more details on using hashes here.

Supported by

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