FlyFile.app — Video Hosting & Streaming | PPV+PPD $40/10k Tier1 | Daily Crypto | HLS | API | Adult OK

FlyFile

Member
20
2026
17
160
flyfile-1.png


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Hello WJunction! 👋

We are FlyFile — a modern video hosting and streaming platform built for webmasters who take quality seriously. Fast
HLS playback, clean embeds, full API access, and daily crypto payouts.

No middlemen. No weekly waits. Just upload, share, and earn.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 AFFILIATE PROGRAM — PPV / PPD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Earn per view and per download. Same rate table for both.

Tier 1 — $40.00 / 10k
🇺🇸 United States 🇬🇧 United Kingdom 🇩🇪 Germany 🇦🇺 Australia

Tier 2 — $25.00 / 10k
🇨🇦 Canada 🇫🇷 France 🇫🇮 Finland 🇳🇴 Norway 🇦🇹 Austria

Tier 3 — $20.00 / 10k
🇳🇱 Netherlands 🇸🇪 Sweden 🇪🇸 Spain 🇮🇹 Italy 🇵🇱 Poland
🇧🇪 Belgium 🇮🇪 Ireland 🇳🇿 New Zealand 🇭🇷 Croatia 🇨🇭 Switzerland

Tier 4 — $9.00 / 10k
🇧🇷 Brazil 🇯🇵 Japan 🇲🇽 Mexico 🇦🇪 UAE 🇭🇰 Hong Kong 🇷🇴 Romania
🇦🇷 Argentina 🇨🇱 Chile 🇨🇴 Colombia 🇬🇷 Greece 🇭🇺 Hungary
🇮🇩 Indonesia 🇲🇾 Malaysia 🇵🇪 Peru 🇻🇳 Vietnam + more

Default — $5.00 / 10k
🌍 All other countries

Rules:
✔ Video must be longer than 1 minute to be eligible
✔ At least 1 minute or 5% of the video must be watched (whichever is greater)
✔ Max 3 paid events per IP per 24h (views + downloads combined)
✔ AdBlock traffic paid at 30% of country rate
✔ Files under 100MB not eligible for payment
✔ Downloads count when at least 90MB and 10% of the file is transferred
✔ VPN / bot traffic filtered automatically


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💸 PAYOUTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💎 Methods: LTC · USDT · BTC
📅 Frequency: Daily
💵 Minimum: $15


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎬 PLATFORM FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Streaming & Playback
✔ HLS multi-quality encoding (1080p, 720p, 480p...)
✔ Multi-audio track support
✔ Subtitle support
✔ Custom thumbnails
✔ Embed code — fullscreen ready
✔ Playlist system
✔ Skip intro support

Uploads
✔ Direct upload (up to 20 GB on premium plans)
✔ Remote URL upload (batch supported)
✔ rclone integration — sync from S3, Google Drive, local disk, etc.
✔ Full REST API (v1) — manage files, folders, playlists, uploads programmatically

Organization
✔ Folder system with public sharing links
✔ Bulk move / bulk delete
✔ File search

Security & Monetization
✔ Server-side bot detection — hard + soft tier
✔ VPN / proxy filtering
✔ AdBlock detection with reduced-rate fallback (not zero)
✔ Geo-based payout tiers applied automatically
✔ Adult content supported

Analytics
✔ Per-file view & download stats
✔ Real-time dashboard


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 LINKS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🌐 Website: https://flyfile.app
📖 API Docs: https://flyfile.app/api-docs
💬 Telegram: @FlyFileSupport
🟢 Live Chat: Available on the website

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 
47 comments
unlimited storage? no inactive remove policy right?
Yes, unlimited storage. No inactive file removal policy
Post automatically merged:

just tested a video in my phone and it say Adblock detected even tho im not using any VPN or adblockers
We've made some improvements to the detection system recently, it should be more accurate now. If you still see it, let us know which browser you're using and we'll look into it.
Post automatically merged:

Could you please provide a remote upload torrent magnet link?
Torrent/magnet link support is on our roadmap. Stay tuned!
Post automatically merged:

The site looks great, but it would be fantastic not having to wait for conversion before the video works, for example Streamtape, Voe, Mixdrop do this; right after uploading you can share the video.
Good news, we've implemented this! Videos are now available immediately after upload while encoding runs in the background.
 
Last edited:
1. GET /api/v1/files/{id}/share returns an embedCode pointing to https://flyfile.app/e/{fileId} — but /e/ no longer renders the player, current React route is /embed/:id. Old URLs in the response are dead.

2. Files uploaded via API key (x-api-key) are private by default. Visiting https://flyfile.app/embed/{fileId} or /v/{fileId} returns "ASSET UNAVAILABLE" (because /api/public/file/{id} rejects: "Invalid or expired link").

3. The only working public URL format is https://flyfile.app/v/{shareCode} (15-char code like e4V02aj4rLG6WoY) which the web UI generates when you click Share. But there's no public API endpoint to generate that shareCode. The web UI hits POST /api/files/{id}/token (no /v1) which needs a JWT session — x-api-key gets Unauthorized.

For folders we have POST /api/v1/folders/{id}/share that works with x-api-key and returns shareToken + shareUrl. Please add the same for individual files (e.g. POST /api/v1/files/{id}/share).

Also shortLink in the share response (https://flyfile.app/v/{fileId}) doesn't work publicly — should return /v/{shareCode}.
 
I have a question: does this apply to videos and their download, or only when the user downloads the video?
If I upload a video that's 90MB or 80MB, does that mean it won't count for monetization?
The 100MB minimum applies to downloads only, not views. An 80MB video will still earn from views normally.
Post automatically merged:

1. GET /api/v1/files/{id}/share returns an embedCode pointing to https://flyfile.app/e/{fileId} — but /e/ no longer renders the player, current React route is /embed/:id. Old URLs in the response are dead.

2. Files uploaded via API key (x-api-key) are private by default. Visiting https://flyfile.app/embed/{fileId} or /v/{fileId} returns "ASSET UNAVAILABLE" (because /api/public/file/{id} rejects: "Invalid or expired link").

3. The only working public URL format is https://flyfile.app/v/{shareCode} (15-char code like e4V02aj4rLG6WoY) which the web UI generates when you click Share. But there's no public API endpoint to generate that shareCode. The web UI hits POST /api/files/{id}/token (no /v1) which needs a JWT session — x-api-key gets Unauthorized.

For folders we have POST /api/v1/folders/{id}/share that works with x-api-key and returns shareToken + shareUrl. Please add the same for individual files (e.g. POST /api/v1/files/{id}/share).

Also shortLink in the share response (https://flyfile.app/v/{fileId}) doesn't work publicly — should return /v/{shareCode}.
Fixed. Use POST /api/v1/files/{id}/share with your API key, returns shareToken, shareUrl (/v/{token}), embedUrl (/embed/{token}), and embedCode. The old GET endpoint was returning dead URLs built from the numeric file ID instead of the actual share token. GET now also returns correct URLs if a token already exists.
 
Last edited:
embed video is not playing straight away. Gotta wait for conversion!!
If the original video has codecs compatible with the browser, it should be able to play before the encoding finishes.
Remote url not working after Downloading 99% it shows failed
I try Google Drive,
I applied a patch, it should work.
Post automatically merged:

✔ Files under 100MB not eligible for payment
✔ Downloads count when at least 90MB and 10% of the file is transferred
Update: Minimum file size for download monetization lowered from 100MB to 50MB. More content now qualifies for earnings.


✔ Files under 50MB not eligible for payment
✔ Downloads count when at least 45MB and 10% of the file is transferred
 
Last edited:
I have problem can you make default thumbnail in video player . And set big play button in center . Like other video hosting and no black screen like this

https://flyfile.app/embed/798Vek8dhjCC904

And can you disable API CORS So I don't need any backend costs for that.
Post automatically merged:

Add response in you API file list "status_video:"ready

So that I know which videos are ready to be watched and which are still in progress so that my viewers are not disappointed.Because I immediately fetch all the videos using api
 
Last edited:
I have problem can you make default thumbnail in video player . And set big play button in center . Like other video hosting and no black screen like this

https://flyfile.app/embed/798Vek8dhjCC904

And can you disable API CORS So I don't need any backend costs for that.
Post automatically merged:

Add response in you API file list "status_video:"ready

So that I know which videos are ready to be watched and which are still in progress so that my viewers are not disappointed.Because I immediately fetch all the videos using api
1. Thumbnail + center play button:
That video was still processing when you checked, it's done now, poster shows. Independent of that, I shipped a fix: big centered play button overlay on first load, and clicks only register on the button itself.

2. CORS:
There's no CORS restriction on the API. Backend runs with Access-Control-Allow-Origin reflecting the request Origin (effectively wildcard) + credentials enabled. If you're hitting an error, share the exact
browser console message + your fetch/axios call. Common gotchas:
- credentials: 'include' while sending no cookies → use 'omit'.
- 401/403 looks like CORS in DevTools but is auth.
- Missing x-api-key header.

3. status_video field:
Added. GET /api/v1/files, /files/search, /files/:id now return:
{ "id": "...", "status": "PROCESSING", "status_video": "processing", ... }
Values: ready | processing | pending | uploading | error. Filter status_video === "ready" to skip in-progress videos.
 
I uploaded some videos but thumbnails don't show up on player, and in exportable links thumbnail links show up as "placeholder for thumbnail jpg" so something must be wrong with thumbnail generation
 
I uploaded some videos but thumbnails don't show up on player, and in exportable links thumbnail links show up as "placeholder for thumbnail jpg" so something must be wrong with thumbnail generation
Thumbnails are generated by the encoder during stage 1 (right after the upload is downloaded, before transcoding). Until your video reaches the encoder queue and stage 1 completes, there's no thumbnail yet, that's why you saw the placeholder. Should take a few minutes per video once it picks up.

The placeholder URL issue is fixed now: export links use a stable thumbnail URL per file id. While the video is still processing, that URL returns a generic FlyFile placeholder. Once the encoder writes the real thumbnail, the same URL automatically serves the real image, no need to regenerate the export link. Cached for 5 min so forums refresh quickly after encoding finishes.

Could you share the file ID or the share token of one of the affected videos? That way I can check if it's stuck in queue, the encoder failed silently, or something else.
 
Back
Top