tapline
Use tapline to collect live data from YouTube, Airbnb, GMGN, and GeckoTerminal in Python.
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.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tapline-0.2.1.tar.gz | 204.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tapline-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 320.4 kB
Release files / tapline-0.2.1.tar.gz
| Download URL | tapline-0.2.1.tar.gz |
|---|---|
| Size | 204.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
868c2ca7b50403676d7ea8ed1f5d0507f7ac7f781012bbed85b0169df3098a49
|
|
BLAKE2b-256 checksum How to use checksums |
e7fb50fb8eda375b6ab529098eb1e4d2b703f1872dfd3b382737d81a02cd51bb
|
| 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 13, 2026.
Transparency logRelease files / tapline-0.2.1-py3-none-any.whl
| Download URL | tapline-0.2.1-py3-none-any.whl |
|---|---|
| Size | 115.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f954fc348a80116675f709c5ce918e0063d37928fb3b84f48aa0a6b1f5c25134
|
|
BLAKE2b-256 checksum How to use checksums |
d050a6b06f5154c6ec244b3fcca38a758511d5daef85fbea3fc3e731716f9953
|
| 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 13, 2026.
Transparency logSecurity for tapline 0.2.1
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.
Attestation for tapline-0.2.1.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 13, 2026.
Transparency logA 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.