Skip to main content

tapline

Use tapline to collect live data from YouTube, Airbnb, GMGN, and GeckoTerminal in Python.

PyPI Python License

What you can do

Service Use it to Full guide
YouTube Get transcripts, search videos, read video and channel details, list playlists, collect comments, inspect formats, and read replay heatmaps YouTube guide
Airbnb Find locations and listings, check prices and availability, and read listing details and reviews Airbnb guide
GMGN Find tokens, check security and market data, inspect holders and traders, and analyze wallets GMGN guide
GeckoTerminal Find pools, read candlesticks and swaps, inspect holders and traders, and follow market trends GeckoTerminal guide

One API key and credit balance work across all four services.

Get started

Create a Tapline account and create an API key on the API keys page.

Install the package and save your key in TAPLINE_API_KEY:

pip install tapline
export TAPLINE_API_KEY="your-api-key"

Pass a key from your environment or secret manager as api_key= when you create either the blocking or async client:

import os

from tapline import SyncTaplineClient, TaplineClient

api_key = os.environ["TAPLINE_API_KEY"]
sync_tapline = SyncTaplineClient(api_key=api_key)
async_tapline = TaplineClient(api_key=api_key)

If you omit api_key, both clients read TAPLINE_API_KEY. Python 3.10 or newer is required.

Get a transcript

import os

from tapline import SyncTaplineClient

with SyncTaplineClient(api_key=os.environ["TAPLINE_API_KEY"]) as tapline:
    subtitles = tapline.youtube.subtitles(
        "https://www.youtube.com/watch?v=jNQXAC9IVRw",
        language="en",
        subtitle_format="txt",
    )

print(subtitles.transcript)

See the YouTube guide for search, metadata, channels, playlists, comments, formats, and replay heatmaps.

Search Airbnb listings

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    places = tapline.airbnb.search_locations(query="London")
    place_id = places.suggestions[0].place_id
    if place_id is None:
        raise RuntimeError("Airbnb returned a location without a place_id")
    results = tapline.airbnb.search(
        place_id=place_id,
        adults=2,
    )

for listing in results.listings:
    print(listing.room_id, listing.name)

Listing IDs can stop resolving when a host removes a property. See the Airbnb guide for prices, availability, details, reviews, and search filters.

Search GMGN token data

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    results = tapline.gmgn.search("sol", q="bonk")

for token in results.data.coins[:5]:
    print(token.symbol, token.address)

See the GMGN guide for discovery, rankings, security, candles, holders, traders, liquidity, and wallet analytics.

Discover GeckoTerminal pools

from tapline import SyncTaplineClient

with SyncTaplineClient() as tapline:
    pools = tapline.geckoterminal.network_latest_pools("solana")

for pool in pools.data[:5]:
    print(pool.attributes.address, pool.attributes.name)

See the GeckoTerminal guide for pool, token, trend, and developer history data.

Go beyond the free tier

Your free account starts with 500 credits and can use every live endpoint. When you need more credits or higher rate limits, choose a paid plan under Billing. Your API key and code stay the same.

Async client

Every service method has the same name and arguments on TaplineClient; only the call becomes awaitable.

import asyncio

from tapline import TaplineClient


async def main() -> None:
    async with TaplineClient() as tapline:
        metadata = await tapline.youtube.metadata("dQw4w9WgXcQ")
        print(metadata.title)


asyncio.run(main())

Handle errors

Failed requests raise an APIStatusError. Use its status, error code, and request ID to decide what to do or to contact support.

from tapline import APIStatusError, SyncTaplineClient

try:
    with SyncTaplineClient() as tapline:
        tapline.youtube.metadata("not-a-video")
except APIStatusError as error:
    print(error.status_code, error.code, error.request_id)

Authentication, credit, rate-limit, timeout, and connection failures also have their own exception classes. The client retries temporary network and server failures.

Full API reference

Use the Tapline API reference to check inputs, response fields, and the credit cost of each call.

License

MIT

Metadata

Release files for tapline 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tapline 0.2.2
File Size Uploaded Provenance
tapline-0.2.2.tar.gz 204.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tapline 0.2.2
File Interpreter ABI Platform
tapline-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 320.6 kB

Release files / tapline-0.2.2.tar.gz

Download URL tapline-0.2.2.tar.gz
Size 204.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b0b97f9b1f5778dbd7af7a0a10dc6d97ab31c940ddd50764c9fd91332c65e2fc
BLAKE2b-256 checksum
How to use checksums
737273934d44d8dae9ebd4ea91fa618db285627709e13c8a2ca0dbaa6ffbc9d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / tapline-0.2.2-py3-none-any.whl

Download URL tapline-0.2.2-py3-none-any.whl
Size 115.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57cba48bf6c0be6ad7436028ef8f9a7fb8509b28fb4b2fb11218fcfaff6a7e8a
BLAKE2b-256 checksum
How to use checksums
217b3b737d6e6898046002bb4cd31197d5365ae64c0728a0a546df4217aa6e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Security for tapline 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tapline-0.2.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page