Skip to content

About

🎬 SkyluxMovies: Stream and download free HD movies β€” no account, no watermark, no hassle. All movies 🍿 available including latest release.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

164 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SkyluxMovies v4.2.0

🎬 SkyluxMovies

Stream and download free HD movies β€” no account, no watermark, no hassle.

Node.js Express YTS License: MIT PRs Welcome


Search a movie. Pick your quality. Download in seconds. No sign-up, ever.


SkyluxMovies Demo


✨ Features

  • 🎬 720p Β· 1080p Β· 4K β€” quality picker on every movie, sourced from YTS
  • πŸ”₯ Rich catalogue homepage β€” Trending, Most Watched, New Releases, Box Office, Top Rated, Most Downloaded, Most Anticipated + 9 genre rows
  • πŸ—‚οΈ 14 genre tabs β€” tap any genre for a full-screen filtered view
  • πŸ–ΌοΈ Category visual cards β€” genre thumbnails built from real movie posters
  • πŸ” Live search β€” instant results dropdown as you type
  • ▢️ In-browser streaming β€” "Watch Now" plays the movie directly in the page via WebTorrent, no external app required
  • 🎞️ Movie detail page β€” backdrop blur, cast circles, IMDb rating ring, trailer link, quality picker, similar movies grid
  • ⚑ Smart rate limiting β€” 3-tier system: image proxy unrestricted, search 30/min, API 600/15min
  • πŸ“± Full PWA β€” installable, Background Sync, Periodic Sync, Push Notifications handler, auto-updates on deploy
  • πŸ“² TWA / APK β€” native Android app via Digital Asset Links verification (no URL bar)
  • πŸ“₯ In-browser install banner β€” shows only in browser, hidden automatically in PWA/TWA
  • πŸ—ΊοΈ Production SEO β€” JSON-LD knowledge graph, FAQPage schema, dynamic Open Graph, robots.txt with AI crawler allowlist, XML sitemap
  • πŸ“ SEO Blog β€” 8 articles targeting high-traffic movie download keywords
  • πŸ’° Ad-monetized β€” Adsterra banners (320Γ—50 between rows, 300Γ—250 footer) + popunder on movie page
  • πŸš€ Deploy anywhere β€” Render, Railway, Fly.io, any Node.js host

πŸ—‚οΈ Project Structure

SkyluxMovies/
β”œβ”€β”€ server.js                  # Express backend β€” YTS proxy, cache, sitemap, asset links
β”œβ”€β”€ package.json
β”œβ”€β”€ .env.example               # Environment variable reference
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── public/
    β”œβ”€β”€ index.html             # Homepage β€” hero, category tabs, genre rows, live search
    β”œβ”€β”€ results.html           # Search & browse results page
    β”œβ”€β”€ movie.html             # Movie detail β€” backdrop, cast, quality picker, trailer
    β”œβ”€β”€ style.css              # Global styles
    β”œβ”€β”€ pwa.js                 # SW registration + Background Sync + Periodic Sync
    β”œβ”€β”€ sw.js                  # Service worker β€” network-first HTML, SWR assets, push handler
    β”œβ”€β”€ manifest.json          # PWA manifest β€” full icon set, screenshots, shortcuts, share target
    β”œβ”€β”€ robots.txt             # Crawl rules β€” allows all crawlers + AI bots
    β”œβ”€β”€ og-image.png           # Open Graph preview image (1200Γ—630)
    β”œβ”€β”€ SkyluxMovies β€” Free HD Movies Download.apk  # TWA Android app
    β”œβ”€β”€ blog/
    β”‚   β”œβ”€β”€ index.html                                    # Blog listing page
    β”‚   β”œβ”€β”€ free-hd-movie-download-no-account.html
    β”‚   β”œβ”€β”€ watch-movies-online-free-no-signup.html
    β”‚   β”œβ”€β”€ how-to-download-movies-to-phone.html
    β”‚   β”œβ”€β”€ download-4k-movies-free.html
    β”‚   β”œβ”€β”€ download-action-movies-free.html
    β”‚   β”œβ”€β”€ how-to-stream-movies-free-splayer.html
    β”‚   β”œβ”€β”€ best-free-movie-download-site-2025.html
    β”‚   └── movie-download-not-working-fix.html
    β”œβ”€β”€ icons/
    β”‚   β”œβ”€β”€ icon-72.png  Β· icon-96.png  Β· icon-128.png  Β· icon-144.png
    β”‚   β”œβ”€β”€ icon-152.png Β· icon-192.png Β· icon-384.png  Β· icon-512.png
    β”‚   β”œβ”€β”€ icon-maskable-192.png
    β”‚   └── icon-maskable-512.png
    └── screenshots/
        β”œβ”€β”€ desktop.png        # 1280Γ—800  β€” PWA install banner (wide)
        └── mobile.png         # 390Γ—844   β€” PWA install banner (narrow)

πŸš€ Quick Start

1. Clone the repo

git clone https://github.com/Advay254/AdvayFlick.git
cd AdvayFlick

2. Install dependencies

npm install

3. Set up environment variables

cp .env.example .env

Edit .env:

SITE_URL=http://localhost:3000
PORT=3000

4. Run the server

npm start
# or for development with auto-reload:
npm run dev

Visit http://localhost:3000 β€” you're live. πŸŽ‰


πŸ”‘ Environment Variables

Variable Required Description
SITE_URL βœ… Yes Full production domain β€” used for sitemap and canonical URLs. Example: https://skyluxmovies.onrender.com
PORT Auto Set automatically by Render β€” do not set manually
API_KEY Optional If set, external API requests must include this key via ?key= or x-api-key header. Browser requests from your own domain bypass this automatically.

⚠️ SITE_URL is the most critical variable. If missing, the sitemap and Digital Asset Links will reference the wrong domain.


🌐 Deploying to Production

Render (recommended β€” current host)

  1. Push your code to GitHub
  2. Connect the repo on render.com
  3. Set Build Command: npm install
  4. Set Start Command: npm start
  5. Add SITE_URL under Environment Variables
  6. Deploy

Render free tier sleeps after 15 minutes of inactivity. Use cron-job.org to ping /api/health every 10 minutes to keep it awake.

Railway

npm install -g @railway/cli
railway login && railway init && railway up

Add SITE_URL in the Railway dashboard β†’ Variables.

Any VPS (Ubuntu/Debian)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
git clone https://github.com/Advay254/AdvayFlick.git
cd AdvayFlick && npm install
npm install -g pm2
pm2 start server.js --name skyluxmovies
pm2 save && pm2 startup

πŸ› οΈ How It Works

User opens SkyluxMovies
        ↓
Homepage loads parallel fetches (trending, most watched, new, box office)
Genre rows stream in with 350ms stagger (prevents YTS rate limiting)
        ↓
User searches or taps a movie card
        ↓
GET /api/movie/:id
  β†’ Server checks in-memory cache (6hr TTL)
  β†’ Cache miss: fetches YTS movie_details with cast + images
  β†’ Rewrites all YTS image URLs to /api/img?u= proxy
  β†’ Returns proxied JSON to client
        ↓
Movie detail page renders
  β†’ Backdrop blur, poster, cast circles, IMDb ring, genres, synopsis
  β†’ Quality picker shows available torrents (720p / 1080p / 4K)
  β†’ Tapping a quality triggers SPlayer magnet link intent
  β†’ Trailer button opens YouTube directly (avoids embed Error 153)
  β†’ Similar movies in 3-column grid (18 titles)
        ↓
Watch Now  β†’ in-browser WebTorrent player (streams in the page, no app)
Download   β†’ magnet link handed to whatever torrent app is on the device

Why image proxy? YTS CDN applies hotlink protection. The /api/img?u= proxy strips the Referer header server-side, bypassing the block reliably. The proxy accepts yts.bz, yts.mx, and img.yts.mx mirror domains.


⚑ Cache TTL Reference

Endpoint TTL Reason
/api/search 10 min Search results change often
/api/trending, /api/watched, /api/new, /api/boxoffice, /api/anticipated 2 hr Updated daily by YTS
/api/toprated, /api/popular 2 hr Stable high-traffic lists
/api/movie/:id 6 hr Movie metadata rarely changes
/api/suggestions/:id 4 hr Suggestion list changes slowly
/api/img 24 hr Image bytes never change

πŸ”’ Security & Rate Limiting

Three-tier rate limiting β€” tuned so normal browsing never hits a limit:

Tier Endpoints Limit
Unrestricted /api/img (image proxy) No limit β€” 24hr cached, one real fetch per image
Search /api/search 30 req / min β€” scrape protection
API All other /api/ routes 600 req / 15 min per IP

Additional protections:

  • Server-side image proxy β€” real YTS CDN URLs never exposed to the browser
  • Optional API key β€” protect endpoints from external scrapers
  • Hardened HTTP headers β€” via helmet (XSS, clickjacking, MIME sniffing protection)
  • Digital Asset Links β€” TWA verified via /.well-known/assetlinks.json so the Android app runs without a URL bar

πŸ“² Android App (TWA)

The included APK is a Trusted Web Activity wrapping the SkyluxMovies PWA. Key details:

  • Package name: com.onrender.skyluxmovies.twa
  • Asset links: served at /.well-known/assetlinks.json β€” required for URL bar removal
  • Signing key: kept separately in signing.keystore (not committed to repo)
  • In-browser install banner: shown automatically to browser users, hidden in PWA/TWA mode via matchMedia('(display-mode: standalone)')

πŸ—ΊοΈ SEO

SkyluxMovies ships with production-grade SEO:

  • JSON-LD knowledge graph β€” Organization, WebSite, WebPage, and Movie entities
  • FAQPage schema β€” eligibility for Google AI Overviews and rich results
  • Movie schema β€” title, year, genre, rating, runtime, language per movie page
  • Dynamic Open Graph β€” title, description, and poster update after each movie loads
  • robots.txt β€” explicit Allow for GPTBot, ClaudeBot, and PerplexityBot (GEO)
  • XML sitemap at /sitemap.xml β€” includes all pages + all 8 blog articles
  • Canonical URLs on every page
  • SEO Blog β€” 8 long-form articles targeting high-volume keywords

Submit sitemap to Google Search Console:

https://skyluxmovies.onrender.com/sitemap.xml

Target keywords: free movie download no account Β· download HD movies free Β· watch movies online free no sign up Β· free 4K movie download Β· download action movies free Β· stream movies free SPlayer


πŸ“œ Changelog

v4.2.0 β€” Player polish: quality switching + progress detail (Chunk 2 of the Smart TV upgrade)

  • Added a quality selector inside the player overlay itself. You can now switch between 720p/1080p/4K mid-stream without closing the player β€” it tears down the current torrent and starts the new one in place.
  • Switching quality also keeps the page's own quality picker (the one below the poster) in sync, so if you close the player afterward, it reflects whatever quality you ended up watching.
  • Picking a quality with 0 seeds in the in-player selector is now rejected with a toast instead of silently starting a dead stream, and the selector reverts to the quality that's actually playing.
  • Progress readout now also shows downloaded size vs. total size (e.g. "340 MB of 2.1 GB"), not just percentage/speed/peers.
  • Added a stall hint: if 15+ seconds pass with 0 peers and under 2% progress, a message appears suggesting a different quality. It clears automatically once peers show up.
  • _fmtBytes now handles gigabyte-scale numbers properly (previously topped out at MB formatting).
  • Internal: the progress ticker now checks it's still ticking for the current torrent before updating the UI, so a rapid quality switch can't have an old timer overwrite the new stream's numbers.
  • Flagged, not changed: same version-lineage note as v4.1.0 β€” carried forward.
  • Not tested: same real-network caveat as v4.1.0 β€” real peer-to-peer playback and real quality-switch-under-load weren't tested (no tracker/peer access in this sandbox). What was tested for real: the full quality-switch state machine (open with N qualities β†’ switch β†’ old client destroyed β†’ new stream starts with correct hash β†’ page picker synced; 0-seed quality rejected and selection reverts) against the exact shipped code via jsdom, plus a full re-run of all Chunk 1 tests against this version to confirm no regressions. Server boot + HTTP checks also re-run clean.

v4.1.0 β€” In-browser streaming (Chunk 1 of the Smart TV upgrade)

  • Added a WebTorrent-based player directly in movie.html. The Watch Now button (previously "Stream") now opens a full-screen overlay and plays the movie in the browser β€” no SPlayer or other external app needed.
  • Download is unchanged: it still hands the magnet link to whichever torrent app is on the device.
  • Back button / back gesture closes the player (wired through history.pushState + popstate) instead of leaving the app.
  • If the device's browser doesn't support MediaSource Extensions, the player falls back to a blob-URL download-then-play approach automatically.
  • WebTorrent's library is lazy-loaded from a CDN only when Watch Now is tapped, so page weight is unaffected for people who only download.
  • SPlayer guide and copy updated to describe it as the download path only, not the only way to watch.
  • Flagged, not changed: README.md's version badge said v4.0.0 while package.json said 3.0.0. Per your rule, the higher number (4.0.0) was treated as current and this release bumped to 4.1.0 β€” confirm that's the version lineage you want.
  • Flagged, not changed: your delivery instructions say to root the zip under a folder named SkyluxMoxies/, but the actual repo/package is named AdvayFlick / skyluxmovies. This delivery uses SkyluxMoxies/ as instructed β€” tell me if you'd rather it match the real repo name going forward.
  • Known gap (v4.1.0): GET /api/suggestions/:id returns a 500 for an invalid id instead of a handled 4xx (pre-existing, not introduced by this change β€” found during error-path testing).
  • Known gap (v4.1.0): unmatched static routes (e.g. a typo'd .html path) return 200 instead of a 404 (pre-existing Express static behavior, not introduced by this change).
  • Not tested: real peer-to-peer playback on an actual phone/TV browser and actual magnet hashes with live seeders β€” my sandbox has no outbound network access to trackers/peers. What was tested for real: the server boots, every route returns the right status code under real HTTP requests (including the error paths above), and the full player state machine (open β†’ buffering β†’ playing β†’ progress updates β†’ close, plus the back-button and MSE-unsupported fallback paths) against the exact code shipped, using jsdom with WebTorrent's network layer mocked out.

🀝 Contributing

  1. Fork the repo
  2. Create your branch: git checkout -b feature/your-feature
  3. Commit: git commit -m 'Add your feature'
  4. Push: git push origin feature/your-feature
  5. Open a Pull Request

⚠️ Disclaimer

SkyluxMovies is an independent open-source project and is not affiliated with, endorsed by, or connected to YTS, YIFY, or any movie studio in any way.

This tool indexes publicly available torrent metadata. Users are responsible for complying with copyright laws in their country. Always respect the work of filmmakers and content creators.


πŸ“„ License

MIT Β© 2026 Advay β€” free to use, modify, and distribute.


If SkyluxMovies saved you time, drop a ⭐ β€” it helps others find the project.

About

🎬 SkyluxMovies: Stream and download free HD movies β€” no account, no watermark, no hassle. All movies 🍿 available including latest release.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages