XTOR

A minimal, open format for distributed video feeds. Like RSS for video content.

Key Principles

🌐

Decentralized

Anyone can host a feed. No central authority or gatekeepers.

📺

Provider-agnostic

Any client can consume any feed. True interoperability.

🔓

Open Standard

No registration or API keys required. Just HTTP and JSON.

🎯

Minimal

Three simple endpoints. Easy to implement and understand.

What is XTOR?

XTOR is a standard HTTP/JSON format that enables any content provider to expose their video catalog in a machine-readable way. Think of it like RSS/Atom feeds, but specifically designed for video content with quality selection, filtering, and pagination.

How XTOR Compares

Feature XTOR RSS YouTube API
Video-specific
Quality selection
Decentralized
No authentication
Live streams
Filtering & search

Three Simple Endpoints

GET

/manifest

Feed metadata and capabilities

Learn more →
GET

/videos

Paginated video list with filtering

Learn more →
GET

/videos/:id

Individual video details

Learn more →

Quick Start

Minimal Python Implementation
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/manifest')
def manifest():
    return jsonify({
        "name": "My Video Feed",
        "xtor_version": "1.0",
        "active": True,
        "search": False
    })

@app.route('/videos')
def videos():
    page = request.args.get('page', 1, type=int)
    return jsonify({
        "videos": [{
            "id": "video1",
            "title": "Sample Video",
            "thumbnail": "https://example.com/thumb.jpg",
            "duration": 120,
            "formats": [{
                "quality": 720,
                "url": "https://example.com/video-720p.mp4"
            }]
        }],
        "pagination": {
            "page": page,
            "has_next": False
        }
    })

@app.route('/videos/<video_id>')
def video_detail(video_id):
    return jsonify({
        "id": video_id,
        "title": "Sample Video",
        "thumbnail": "https://example.com/thumb.jpg",
        "duration": 120,
        "formats": [
            {"quality": 720, "url": "https://example.com/video-720p.mp4"},
            {"quality": 1080, "url": "https://example.com/video-1080p.mp4"}
        ]
    })

if __name__ == '__main__':
    app.run(debug=True)

Get Started

For Providers

Implement the XTOR spec to expose your video content to any compatible client.

Read Specification →

For Developers

Build clients and apps that can consume any XTOR-compatible feed.

Browse Clients →

Test Your API

Use our interactive testing tool to validate your XTOR feed implementation.

Open Tester →