# danikula/androidvideocache

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/danikula-androidvideocache).**

5,490 stars · 1,178 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/danikula/AndroidVideoCache
- awesome-repositories: https://awesome-repositories.com/repository/danikula-androidvideocache.md

## Topics

`android` `cache` `video`

## Description

AndroidVideoCache is a local proxy server and disk-based media cache for Android. It intercepts network requests to store streamed video data on the local file system, allowing for offline playback and reduced data usage.

The project differentiates itself by functioning as an HTTP proxy cache that can inject custom request headers. This enables the delivery of authenticated video content by satisfying server-side security and authentication requirements during the caching process.

The system manages storage through byte-level disk caching, URL-to-file mapping, and the enforcement of storage quotas using least-recently-used eviction. It also includes utilities for tracking caching progress and customizable file naming logic to prevent collisions.

## Tags

### Networking & Communication

- [Proxy Servers](https://awesome-repositories.com/f/networking-communication/local-http-servers/proxy-servers.md) — Functions as a local HTTP proxy server that intercepts video requests to manage data retrieval and disk caching.
- [Media Proxy Caching](https://awesome-repositories.com/f/networking-communication/media-proxy-caching.md) — Provides a local proxy server that intercepts media network traffic to cache video data on disk. ([source](https://github.com/danikula/androidvideocache#readme))
- [Cache Proxies](https://awesome-repositories.com/f/networking-communication/cache-proxies.md) — Functions as a cache proxy that intercepts network requests to store video content and inject authentication headers.

### Data & Databases

- [Disk-Backed Implementations](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching/least-recently-used-caches/disk-backed-implementations.md) — Implements a disk-backed cache that stores streaming video data in chunks to enable playback without redundant network requests.
- [Video Content Caching](https://awesome-repositories.com/f/data-databases/local-first-storage/local-caching-layers/video-content-caching.md) — Stores streamed video data on the local disk to enable play-while-cache functionality and offline access. ([source](https://github.com/danikula/androidvideocache#readme))
- [Local Disk Caching](https://awesome-repositories.com/f/data-databases/object-storage/remote-object-storage-integrations/local-disk-caching.md) — Implements a disk-based cache that saves remote video streams to local files to prevent redundant network requests.
- [Cache Storage Quotas](https://awesome-repositories.com/f/data-databases/cache-storage-quotas.md) — Enforces disk storage quotas to cap the total space used for caching video content. ([source](https://github.com/danikula/androidvideocache#readme))

### Security & Cryptography

- [Authentication Header Injection](https://awesome-repositories.com/f/security-cryptography/authentication-header-injection.md) — Provides mechanisms to inject session cookies and authentication tokens into outbound HTTP requests to access secured video streams. ([source](https://github.com/danikula/androidvideocache#readme))
- [Subscription Content Authentication](https://awesome-repositories.com/f/security-cryptography/access-authentication/subscription-content-authentication.md) — Handles credential-based access to restricted media streams by injecting custom authentication headers during the caching process.

### Development Tools & Productivity

- [HTTP Stream Piping](https://awesome-repositories.com/f/development-tools-productivity/stream-piping-utilities/http-stream-piping.md) — Pipes HTTP response streams directly to the video player while simultaneously persisting the data to the local disk.

### Graphics & Multimedia

- [Streaming Optimizations](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/video-streaming/streaming-optimizations.md) — Optimizes mobile video streaming by reducing bandwidth and buffering through a local proxy cache.

### Software Engineering & Architecture

- [Disk-Backed LRU Evictions](https://awesome-repositories.com/f/software-engineering-architecture/memory-management/lru-cache-eviction/disk-backed-lru-evictions.md) — Automatically removes the least-recently-used cached video files when the defined disk storage limit is reached.
