speedtest-cli README

The project's README from github.com/sivel/speedtest-cli. As one markdown file: README.md.

speedtest-cli

Command line interface for testing internet bandwidth using speedtest.net

.. image:: https://img.shields.io/pypi/v/speedtest-cli.svg :target: https://pypi.python.org/pypi/speedtest-cli/ :alt: Latest Version .. image:: https://img.shields.io/travis/sivel/speedtest-cli.svg :target: https://pypi.python.org/pypi/speedtest-cli/ :alt: Travis .. image:: https://img.shields.io/pypi/l/speedtest-cli.svg :target: https://pypi.python.org/pypi/speedtest-cli/ :alt: License

Versions

speedtest-cli works with Python 2.4-3.7

.. image:: https://img.shields.io/pypi/pyversions/speedtest-cli.svg :target: https://pypi.python.org/pypi/speedtest-cli/ :alt: Versions

Installation

pip / easy_install


::

    pip install speedtest-cli

or

::

    easy_install speedtest-cli

Github
~~~~~~

::

    pip install git+https://github.com/sivel/speedtest-cli.git

or

::

    git clone https://github.com/sivel/speedtest-cli.git
    cd speedtest-cli
    python setup.py install

Just download (Like the way it used to be)

::

wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli

or

::

curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli

Usage

::

$ speedtest-cli -h
usage: speedtest-cli [-h] [--no-download] [--no-upload] [--single] [--bytes]
                     [--share] [--simple] [--csv]
                     [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json]
                     [--list] [--server SERVER] [--exclude EXCLUDE]
                     [--mini MINI] [--source SOURCE] [--timeout TIMEOUT]
                     [--secure] [--no-pre-allocate] [--version]

Command line interface for testing internet bandwidth using speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli

optional arguments:
  -h, --help            show this help message and exit
  --no-download         Do not perform download test
  --no-upload           Do not perform upload test
  --single              Only use a single connection instead of multiple. This
                        simulates a typical file transfer.
  --bytes               Display values in bytes instead of bits. Does not
                        affect the image generated by --share, nor output from
                        --json or --csv
  --share               Generate and provide a URL to the speedtest.net share
                        results image, not displayed with --csv
  --simple              Suppress verbose output, only show basic information
  --csv                 Suppress verbose output, only show basic information
                        in CSV format. Speeds listed in bit/s and not affected
                        by --bytes
  --csv-delimiter CSV_DELIMITER
                        Single character delimiter to use in CSV output.
                        Default ","
  --csv-header          Print CSV headers
  --json                Suppress verbose output, only show basic information
                        in JSON format. Speeds listed in bit/s and not
                        affected by --bytes
  --list                Display a list of speedtest.net servers sorted by
                        distance
  --server SERVER       Specify a server ID to test against. Can be supplied
                        multiple times
  --exclude EXCLUDE     Exclude a server from selection. Can be supplied
                        multiple times
  --mini MINI           URL of the Speedtest Mini server
  --source SOURCE       Source IP address to bind to
  --timeout TIMEOUT     HTTP timeout in seconds. Default 10
  --secure              Use HTTPS instead of HTTP when communicating with
                        speedtest.net operated servers
  --no-pre-allocate     Do not pre allocate upload data. Pre allocation is
                        enabled by default to improve upload performance. To
                        support systems with insufficient memory, use this
                        option to avoid a MemoryError
  --version             Show the version number and exit

Python API

See the wiki <https://github.com/sivel/speedtest-cli/wiki>_.

Inconsistency

It is not a goal of this application to be a reliable latency reporting tool.

Latency reported by this tool should not be relied on as a value indicative of ICMP style latency. It is a relative value used for determining the lowest latency server for performing the actual speed test against.

There is the potential for this tool to report results inconsistent with Speedtest.net. There are several concepts to be aware of that factor into the potential inconsistency:

  1. Speedtest.net has migrated to using pure socket tests instead of HTTP based tests
  2. This application is written in Python
  3. Different versions of Python will execute certain parts of the code faster than others
  4. CPU and Memory capacity and speed will play a large part in inconsistency between Speedtest.net and even other machines on the same network

Issues relating to inconsistencies will be closed as wontfix and without additional reason or context.

speedtest-cli (sivel/speedtest-cli)

network-monitoring
Searching Database…

14K ·GitHub
archived
What is this?This is a command-line tool that tests your internet bandwidth using the servers and infrastructure of speedtest.net.
Is this just a CLI, or can I use it as a Python library too?It is primarily a CLI script, but it also exposes a Python API for scripting, documented on the project wiki.
How do I install speedtest-cli?Install it with 'pip install speedtest-cli', or just download the single Python script with wget/curl and make it executable — no build step required.
What do I need to run it?Just Python itself — it's a pure Python script with no external dependencies, and it supports Python versions 2.4 through 3.7.
Can I trust its latency numbers, and is it still maintained?The repository is archived, so it receives no further updates, and the author explicitly warns it is not meant to be a reliable latency-reporting tool — speed/latency readings can diverge from speedtest.net's own results.
What output formats does it support besides the plain text report?Besides the default verbose output, you can get --simple summaries, --csv, or --json formatted results, and even generate a shareable speedtest.net results image with --share.
Can I pick which speedtest.net server to test against?Yes — --list shows nearby servers sorted by distance, --server lets you target a specific one, and --exclude lets you skip servers you don't want used.
Does it test both download and upload speed by default?Yes, both run by default, but each can be skipped individually with --no-download or --no-upload, and --single forces a single-connection test to simulate a typical file transfer.
Why might my results differ from the official speedtest.net?The README notes several causes: speedtest.net now uses raw socket tests instead of HTTP, Python version differences affect execution speed, and local CPU/memory capacity can also skew results.
Creator
sivel
Size
0.3 MB
Stars
14K
Age
14y
Commits · 90 Days