├── .eslintrc.json
├── public
├── banner.png
├── item_1.png
├── item_2.png
├── item_3.png
├── item_4.png
├── item_5.png
├── profile.png
├── background.jpg
├── vercel.svg
├── logo.svg
└── next.svg
├── src
└── app
│ ├── favicon.ico
│ ├── auth
│ ├── register
│ │ └── page.tsx
│ ├── login
│ │ ├── page.tsx
│ │ └── Login.tsx
│ ├── forgot-password
│ │ └── page.tsx
│ ├── layout.tsx
│ └── InputField.tsx
│ ├── api
│ └── hello
│ │ └── route.ts
│ ├── components
│ ├── Logo.tsx
│ ├── UserProfile.tsx
│ ├── NavLinks.tsx
│ ├── MovieRating.tsx
│ ├── MovieRow.tsx
│ ├── SearchForm.tsx
│ ├── MovieCard.tsx
│ ├── Header.tsx
│ ├── Player.tsx
│ ├── Banner.tsx
│ └── MovieInfo.tsx
│ ├── types
│ └── movie.ts
│ ├── layout.tsx
│ ├── globals.css
│ ├── hooks
│ └── useScroll.tsx
│ ├── watch
│ └── [id]
│ │ └── page.tsx
│ ├── service
│ ├── MovieService.ts
│ └── ApiRequest.ts
│ ├── page.tsx
│ └── search
│ └── page.tsx
├── postcss.config.js
├── .prettierrc.json
├── next.config.js
├── tailwind.config.js
├── jest.config.mjs
├── .gitignore
├── __tests__
├── hooks
│ └── useScroll.test.tsx
└── components
│ └── MovieRating.test.tsx
├── tsconfig.json
├── package.json
├── README.md
├── docs
└── rotas.md
└── db.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["next/core-web-vitals", "prettier"]
3 | }
4 |
--------------------------------------------------------------------------------
/public/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/banner.png
--------------------------------------------------------------------------------
/public/item_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/item_1.png
--------------------------------------------------------------------------------
/public/item_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/item_2.png
--------------------------------------------------------------------------------
/public/item_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/item_3.png
--------------------------------------------------------------------------------
/public/item_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/item_4.png
--------------------------------------------------------------------------------
/public/item_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/item_5.png
--------------------------------------------------------------------------------
/public/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/profile.png
--------------------------------------------------------------------------------
/src/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/src/app/favicon.ico
--------------------------------------------------------------------------------
/public/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devfullcycle/FC3-codeflix-frontend/HEAD/public/background.jpg
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/src/app/auth/register/page.tsx:
--------------------------------------------------------------------------------
1 |
2 | export default function Register() {
3 | return
Register Page
;
4 | }
5 |
--------------------------------------------------------------------------------
/src/app/api/hello/route.ts:
--------------------------------------------------------------------------------
1 | export async function GET(request: Request) {
2 | return new Response('Hello, Next.js!')
3 | }
4 |
--------------------------------------------------------------------------------
/src/app/auth/login/page.tsx:
--------------------------------------------------------------------------------
1 | import LoginForm from './Login';
2 |
3 | export default function LoginPage() {
4 | return ;
5 | }
6 |
--------------------------------------------------------------------------------
/src/app/auth/forgot-password/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function ForgotPassword() {
4 | return Forgot password
;
5 | }
6 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "semi": true,
4 | "tabWidth": 2,
5 | "singleQuote": true,
6 | "jsxSingleQuote": true,
7 | "plugins": ["prettier-plugin-tailwindcss"]
8 | }
9 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | experimental: {
4 | appDir: true,
5 | },
6 | images: {
7 | domains: ['m.media-amazon.com'],
8 | },
9 | }
10 |
11 | module.exports = nextConfig
12 |
--------------------------------------------------------------------------------
/src/app/components/Logo.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 |
4 | export const Logo = () => (
5 |
11 | );
12 |
--------------------------------------------------------------------------------
/src/app/types/movie.ts:
--------------------------------------------------------------------------------
1 | export type Movie = {
2 | id: number;
3 | title: string;
4 | description: string;
5 | yearLaunched: string;
6 | link: string;
7 | castMembers: string[];
8 | genres: string[];
9 | thumbFileURL: string;
10 | bannerFileURL: string;
11 | videoFileURL: string;
12 | rating: string;
13 | };
14 |
15 | export type Movies = Movie[];
16 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | './src/pages/**/*.{js,ts,jsx,tsx}',
5 | './src/components/**/*.{js,ts,jsx,tsx}',
6 | './src/app/**/*.{js,ts,jsx,tsx}',
7 | ],
8 | theme: {},
9 | plugins: [
10 | require('tailwind-scrollbar-hide'),
11 | require('@vidstack/react/tailwind.cjs'),
12 | ],
13 | };
14 |
--------------------------------------------------------------------------------
/jest.config.mjs:
--------------------------------------------------------------------------------
1 | import nextJest from 'next/jest.js';
2 |
3 | const createJestConfig = nextJest({
4 | // Provide the path to your Next.js app to load next.config.js and .env files in your test environment
5 | dir: './',
6 | });
7 |
8 | /** @type {import('jest').Config} */
9 | const config = {
10 | testEnvironment: 'jest-environment-jsdom',
11 | };
12 |
13 | export default createJestConfig(config);
14 |
--------------------------------------------------------------------------------
/src/app/auth/layout.tsx:
--------------------------------------------------------------------------------
1 | export default function Layout({ children }: { children: React.ReactNode }) {
2 | return (
3 |
7 |
8 | {children}
9 |
10 |
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/components/UserProfile.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 |
4 | export const UserProfile = () => (
5 |
14 | );
15 |
--------------------------------------------------------------------------------
/src/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import './globals.css';
2 |
3 | export const metadata = {
4 | title: 'Create Next App',
5 | description: 'Generated by create next app',
6 | };
7 |
8 | export default function RootLayout({
9 | children,
10 | }: {
11 | children: React.ReactNode;
12 | }) {
13 | return (
14 |
15 | {children}
16 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/src/app/components/NavLinks.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 | import Link from 'next/link';
3 | export const NavLinks = () => (
4 |
12 | );
13 |
--------------------------------------------------------------------------------
/src/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | .bg-gradient-to-b {
6 | background-image: linear-gradient(
7 | to bottom,
8 | rgba(20, 20, 20, 0) 0,
9 | rgba(20, 20, 20, 0.15) 15%,
10 | rgba(20, 20, 20, 0.35) 29%,
11 | rgba(20, 20, 20, 0.58) 44%,
12 | #141414 68%,
13 | #141414 100%
14 | );
15 | }
16 |
17 | @layer base {
18 | body {
19 | @apply bg-[#383838] text-white;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/app/hooks/useScroll.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from 'react';
2 |
3 | export const useScroll = () => {
4 | const [isScrolled, setIsScrolled] = useState(false);
5 |
6 | useEffect(() => {
7 | const handleScroll = () => {
8 | setIsScrolled(window.scrollY > 0);
9 | };
10 |
11 | window.addEventListener('scroll', handleScroll);
12 |
13 | return () => {
14 | window.removeEventListener('scroll', handleScroll);
15 | };
16 | }, []);
17 |
18 | return isScrolled;
19 | };
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env*.local
29 |
30 | # vercel
31 | .vercel
32 |
33 | # typescript
34 | *.tsbuildinfo
35 | next-env.d.ts
36 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/app/components/MovieRating.tsx:
--------------------------------------------------------------------------------
1 | export const textColor = (rating: string) => {
2 | switch (rating) {
3 | case 'pg':
4 | return 'text-green-500';
5 | case 'pg-13':
6 | return 'text-yellow-500';
7 | case 'r':
8 | return 'text-red-500';
9 | case 'nc-17':
10 | return 'text-red-700';
11 | default:
12 | return 'text-white';
13 | }
14 | };
15 |
16 | export const MovieRating = ({ rating }: { rating: string }) => {
17 | return (
18 |
23 | {rating}
24 |
25 | );
26 | };
27 |
--------------------------------------------------------------------------------
/__tests__/hooks/useScroll.test.tsx:
--------------------------------------------------------------------------------
1 | import { useScroll } from '@/app/hooks/useScroll';
2 | import { renderHook, act } from '@testing-library/react';
3 |
4 | describe('useScroll', () => {
5 | it('should respond to scroll events', () => {
6 | const { result } = renderHook(() => useScroll());
7 |
8 | act(() => {
9 | global.window.scrollY = 100;
10 | global.window.dispatchEvent(new Event('scroll'));
11 | });
12 |
13 | expect(result.current).toBe(true);
14 |
15 | act(() => {
16 | global.window.scrollY = 0;
17 | global.window.dispatchEvent(new Event('scroll'));
18 | });
19 |
20 | expect(result.current).toBe(false);
21 |
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "incremental": true,
17 | "plugins": [
18 | {
19 | "name": "next"
20 | }
21 | ],
22 | "paths": {
23 | "@/*": ["./src/*"]
24 | }
25 | },
26 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
27 | "exclude": ["node_modules"]
28 | }
29 |
--------------------------------------------------------------------------------
/src/app/auth/InputField.tsx:
--------------------------------------------------------------------------------
1 | export type InputFieldProps = {
2 | id: string;
3 | type: string;
4 | label: string;
5 | placeholder: string;
6 | };
7 |
8 | export const InputField: React.FC = ({
9 | id,
10 | type,
11 | label,
12 | placeholder,
13 | }) => {
14 | return (
15 |
16 |
19 |
26 |
27 | );
28 | };
29 |
--------------------------------------------------------------------------------
/src/app/components/MovieRow.tsx:
--------------------------------------------------------------------------------
1 | import { Movies } from '../types/movie';
2 | import { MovieCard } from './MovieCard';
3 |
4 | type MovieRowProps = {
5 | sectionTitle: string;
6 | movies: Movies;
7 | };
8 |
9 | export function MovieRow({ sectionTitle, movies }: MovieRowProps) {
10 | return (
11 |
12 |
13 |
14 | {sectionTitle}
15 |
16 |
17 |
18 |
19 | {movies.map((movie) => (
20 |
21 | ))}
22 |
23 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/src/app/watch/[id]/page.tsx:
--------------------------------------------------------------------------------
1 | import Header from '@/app/components/Header';
2 | import Player from '@/app/components/Player';
3 | import { getMovieById } from '@/app/service/MovieService';
4 | import React from 'react';
5 |
6 | interface IWatchProps {
7 | params: {
8 | id: string;
9 | };
10 | }
11 |
12 | export default async function Watch({ params }: IWatchProps) {
13 | const movie = await getMovieById(params.id);
14 |
15 | if (!movie) {
16 | return (
17 |
18 |
19 |
20 |
21 | Sorry, this movie is not available.
22 |
23 |
24 |
25 | );
26 | }
27 |
28 | return ;
29 | }
30 |
--------------------------------------------------------------------------------
/src/app/service/MovieService.ts:
--------------------------------------------------------------------------------
1 | import { Movie, Movies } from '../types/movie';
2 | import { RequestOptions, apiRequest } from './ApiRequest';
3 |
4 | export const getMovieById = async (id: string): Promise => {
5 | return apiRequest(`movies/${encodeURIComponent(id)}`);
6 | };
7 |
8 | export const getFeaturedMovie = async (id: string): Promise => {
9 | return apiRequest(`featured/${id}`);
10 | };
11 |
12 | export const getMoviesByGenre = async (
13 | genre: string,
14 | options?: RequestOptions
15 | ): Promise => {
16 | return apiRequest(`movies`, { genres_like: genre }, options);
17 | };
18 |
19 | export const searchMovies = async (
20 | title: string = '',
21 | genre: string = '',
22 | options: RequestOptions = {
23 | _limit: 100,
24 | }
25 | ): Promise => {
26 | return apiRequest(
27 | `movies`,
28 | {
29 | title_like: title,
30 | genres_like: genre,
31 | },
32 | options
33 | );
34 | };
35 |
--------------------------------------------------------------------------------
/src/app/components/SearchForm.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 | import React, { FormEvent, ChangeEvent } from 'react';
3 | import { MagnifyingGlassIcon } from '@heroicons/react/24/outline';
4 |
5 | interface ISearchFormProps {
6 | searchTerm: string;
7 | onSearch: (event: FormEvent) => void;
8 | onSearchTermChange: (event: ChangeEvent) => void;
9 | }
10 | export function SearchForm({
11 | searchTerm,
12 | onSearch,
13 | onSearchTermChange,
14 | }: ISearchFormProps): JSX.Element {
15 | return (
16 |
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/src/app/components/MovieCard.tsx:
--------------------------------------------------------------------------------
1 | import Image from 'next/image';
2 | import { Movie } from '../types/movie';
3 | import { MovieInfo } from './MovieInfo';
4 |
5 | export const MovieCard = ({ movie }: { movie: Movie }) => (
6 |
7 |
14 |
15 |
16 |
23 |
24 |
25 |
26 |
27 | );
28 |
--------------------------------------------------------------------------------
/public/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "codeflix-client",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint",
10 | "test": "jest --watch"
11 | },
12 | "dependencies": {
13 | "@heroicons/react": "^2.0.18",
14 | "@types/node": "20.3.1",
15 | "@types/react": "18.2.13",
16 | "@types/react-dom": "18.2.6",
17 | "@vidstack/react": "^1.5.1",
18 | "autoprefixer": "10.4.14",
19 | "eslint": "8.43.0",
20 | "eslint-config-next": "13.4.7",
21 | "next": "13.4.7",
22 | "postcss": "8.4.24",
23 | "react": "18.2.0",
24 | "react-dom": "18.2.0",
25 | "tailwind-scrollbar-hide": "^1.1.7",
26 | "tailwindcss": "3.3.2",
27 | "typescript": "5.1.3"
28 | },
29 | "devDependencies": {
30 | "@testing-library/jest-dom": "^5.17.0",
31 | "@testing-library/react": "^14.0.0",
32 | "eslint-config-prettier": "^8.8.0",
33 | "jest": "^29.6.1",
34 | "jest-environment-jsdom": "^29.6.1",
35 | "prettier": "^2.8.8",
36 | "prettier-plugin-tailwindcss": "^0.3.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/app/page.tsx:
--------------------------------------------------------------------------------
1 | import { Banner } from './components/Banner';
2 | import Header from './components/Header';
3 | import { MovieRow } from './components/MovieRow';
4 | import { getFeaturedMovie, getMoviesByGenre } from './service/MovieService';
5 |
6 | export default async function Home() {
7 | const featuredMovie = await getFeaturedMovie('106');
8 | const genres = ['Drama', 'Action', 'Comedy', 'Animation'];
9 |
10 | const movies = await Promise.all(
11 | genres.map(async (genre) => {
12 | const movies = await getMoviesByGenre(genre, { _limit: 8 });
13 | return { sectionTitle: genre, movies };
14 | })
15 | );
16 |
17 | return (
18 |
19 |
20 |
21 |
22 | {movies.map((movie) => (
23 |
28 | ))}
29 |
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/src/app/service/ApiRequest.ts:
--------------------------------------------------------------------------------
1 | const API_URL = process.env.API_URL || 'http://localhost:3333';
2 |
3 | export interface ApiQueryParams {
4 | [key: string]: string | number | boolean;
5 | }
6 |
7 | export interface RequestOptions {
8 | page?: number;
9 | _limit?: number;
10 | rating_like?: string;
11 | }
12 |
13 | export const defaultOptions: RequestOptions = {
14 | page: 1,
15 | _limit: 10,
16 | };
17 |
18 | export function buildQueryString(params: ApiQueryParams) {
19 | const query = Object.entries(params)
20 | .filter(([, value]) => value !== undefined)
21 | .map(([key, value]) => [key, String(value)]);
22 |
23 | return `?${new URLSearchParams(Object.fromEntries(query)).toString()}`;
24 | }
25 |
26 | export async function apiRequest(
27 | endpoint: string,
28 | query: ApiQueryParams = {},
29 | options: RequestOptions = {}
30 | ): Promise {
31 | const mergedOptions: RequestOptions = { ...defaultOptions, ...options };
32 | const queryString: string = buildQueryString({ ...query, ...mergedOptions });
33 | try {
34 | const response = await fetch(`${API_URL}/${endpoint}${queryString}`);
35 | if (!response.ok) {
36 | throw new Error(`API request failed: ${response.statusText}`);
37 | }
38 | return response.json();
39 | } catch (error) {
40 | throw error;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/__tests__/components/MovieRating.test.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render, screen } from '@testing-library/react';
3 | import '@testing-library/jest-dom/extend-expect';
4 | import { MovieRating } from '@/app/components/MovieRating';
5 |
6 | describe('', () => {
7 | it('renders without crashing', () => {
8 | render();
9 | expect(screen.getByText('pg')).toBeInTheDocument();
10 | });
11 |
12 | it('displays the correct rating', () => {
13 | render();
14 | expect(screen.getByText('pg-13')).toBeInTheDocument();
15 | });
16 |
17 | it('applies the correct text color for rating "pg"', () => {
18 | render();
19 | expect(screen.getByText('pg')).toHaveClass('text-green-500');
20 | });
21 |
22 | it('applies the correct text color for rating "pg-13"', () => {
23 | render();
24 | expect(screen.getByText('pg-13')).toHaveClass('text-yellow-500');
25 | });
26 |
27 | it('applies the correct text color for rating "r"', () => {
28 | render();
29 | expect(screen.getByText('r')).toHaveClass('text-red-500');
30 | });
31 |
32 | it('applies the correct text color for rating "nc-17"', () => {
33 | render();
34 | expect(screen.getByText('nc-17')).toHaveClass('text-red-700');
35 | });
36 |
37 | it('applies the default text color for unknown ratings', () => {
38 | render();
39 | expect(screen.getByText('unknown')).toHaveClass('text-white');
40 | });
41 | });
42 |
--------------------------------------------------------------------------------
/src/app/auth/login/Login.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { InputField } from '../InputField';
5 |
6 | export default function LoginForm() {
7 | const handleSubmit = (e: React.FormEvent) => {
8 | console.log('submit');
9 | e.preventDefault();
10 | };
11 | return (
12 |
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | # or
12 | pnpm dev
13 | ```
14 |
15 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
16 |
17 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
18 |
19 | [http://localhost:3000/api/hello](http://localhost:3000/api/hello) is an endpoint that uses [Route Handlers](https://beta.nextjs.org/docs/routing/route-handlers). This endpoint can be edited in `app/api/hello/route.ts`.
20 |
21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22 |
23 | ## Learn More
24 |
25 | To learn more about Next.js, take a look at the following resources:
26 |
27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29 |
30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31 |
32 | ## Deploy on Vercel
33 |
34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35 |
36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
37 |
--------------------------------------------------------------------------------
/src/app/search/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { searchMovies } from '../service/MovieService';
3 | import Header from '../components/Header';
4 | import { MovieCard } from '../components/MovieCard';
5 |
6 | interface ISearchParams {
7 | title?: string;
8 | genre?: string;
9 | }
10 |
11 | interface ISearchProps {
12 | searchParams: ISearchParams;
13 | }
14 |
15 | export default async function SearchResults({ searchParams }: ISearchProps) {
16 | const { title, genre } = searchParams;
17 |
18 | const movies = await searchMovies(title, genre);
19 |
20 | if (movies.length === 0) {
21 | return (
22 |
23 |
24 |
25 |
26 |
27 | Search results for: {title}
28 |
29 | No movies found
30 |
31 |
32 |
33 | );
34 | }
35 |
36 | return (
37 |
38 |
39 |
40 |
41 |
42 | Search results for: {title}
43 |
44 |
45 | {movies.map((movie, index) => (
46 |
47 | ))}
48 |
49 |
50 |
51 |
52 | );
53 | }
54 |
--------------------------------------------------------------------------------
/src/app/components/Header.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 | import React, { useState } from 'react';
3 | import { useScroll } from '../hooks/useScroll';
4 | import { Logo } from './Logo';
5 | import { NavLinks } from './NavLinks';
6 | import { UserProfile } from './UserProfile';
7 | import { SearchForm } from './SearchForm';
8 | import { useRouter, useSearchParams } from 'next/navigation';
9 | import Link from 'next/link';
10 |
11 | export default function Header() {
12 | const isScrolled = useScroll();
13 | const router = useRouter();
14 | const params = useSearchParams();
15 | const initialSearchTerm = params.get('title') || '';
16 | const [searchTerm, setSearchTerm] = useState(initialSearchTerm);
17 |
18 | const onSearchTermChange = (event: React.ChangeEvent) => {
19 | setSearchTerm(event.target.value);
20 | };
21 |
22 | const onSearch = (event: React.FormEvent) => {
23 | event.preventDefault();
24 | const newParams = new URLSearchParams(params.toString());
25 | newParams.set('title', searchTerm);
26 | router.push(`/search?${newParams.toString()}`);
27 | };
28 |
29 | return (
30 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
47 |
48 |
49 |
50 | );
51 | }
52 |
--------------------------------------------------------------------------------
/src/app/components/Player.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link';
2 | import { Movie } from '@/app/types/movie';
3 | import { ArrowLeftIcon } from '@heroicons/react/24/outline';
4 | import { MediaPlayer, MediaProvider } from '@vidstack/react';
5 | import '@vidstack/react/player/styles/base.css';
6 |
7 | type Props = {
8 | movie: Movie;
9 | };
10 |
11 | export default async function Player({ movie }: Props) {
12 | return (
13 |
14 |
20 |
21 |
22 |
23 |
24 | {/* mobile title */}
25 |
26 |
27 |
28 |
29 |
30 |
31 | {movie.title}
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | {movie.title}
40 |
41 |
42 | {movie.description}
43 |
44 |
45 |
46 |
47 |
48 | );
49 | }
50 |
--------------------------------------------------------------------------------
/src/app/components/Banner.tsx:
--------------------------------------------------------------------------------
1 | import { InformationCircleIcon, PlayIcon } from '@heroicons/react/24/outline';
2 | import Image from 'next/image';
3 | import React from 'react';
4 | import { Movie } from '../types/movie';
5 | import Link from 'next/link';
6 |
7 | export function Banner({ movie }: { movie: Movie }) {
8 | return (
9 |
10 |
11 |
12 |
20 |
26 |
27 |
{movie.title}
28 |
29 | {movie.description}
30 |
31 |
32 |
33 |
37 |
38 | Watch Now
39 |
40 |
44 |
45 |
46 | );
47 | }
48 |
--------------------------------------------------------------------------------
/src/app/components/MovieInfo.tsx:
--------------------------------------------------------------------------------
1 | import { Movie } from '../types/movie';
2 | import Link from 'next/link';
3 | import {
4 | ChevronDownIcon,
5 | PlayIcon,
6 | PlusIcon,
7 | SpeakerWaveIcon,
8 | UserGroupIcon,
9 | } from '@heroicons/react/24/outline';
10 | import { MovieRating } from './MovieRating';
11 |
12 | export const MovieInfo = ({ movie }: { movie: Movie }) => (
13 |
14 |
29 |
30 |
31 | {movie.title}
32 |
33 |
34 |
35 |
36 | Double Atmos 5.1 4K
37 |
38 |
39 |
40 |
41 |
42 |
43 |
{movie.genres.join(' · ')}
44 |
45 |
46 | );
47 |
--------------------------------------------------------------------------------
/docs/rotas.md:
--------------------------------------------------------------------------------
1 | # Fundamentos de Roteamento
2 |
3 | ## Terminologia
4 |
5 | - Árvore: Uma convenção para visualizar uma estrutura hierárquica. Por exemplo, uma árvore de componentes com componentes pais e filhos, uma estrutura de pastas, etc.
6 | - Subárvore: Parte de uma árvore, começando em uma nova raiz (primeira) e terminando nas folhas (últimas).
7 | - Raiz: O primeiro nó em uma árvore ou subárvore, como um layout raiz.
8 | - Folha: Nós em uma subárvore que não têm filhos, como o último segmento em um caminho de URL.
9 | - Segmento de URL: Parte do caminho da URL delimitada por barras.
10 | - Caminho de URL: Parte da URL que vem após o domínio (composta por segmentos).
11 |
12 | ## O Roteador do App
13 |
14 | Na versão 13, o Next.js introduziu um novo Roteador de App baseado em Componentes de Servidor React, que suporta layouts compartilhados, roteamento aninhado, estados de carregamento, tratamento de erros e mais.
15 |
16 | O Roteador do App funciona em um novo diretório chamado "app". O diretório "app" funciona em paralelo com o diretório "pages" para permitir a adoção incremental. Isso permite que você escolha algumas rotas de sua aplicação para o novo comportamento enquanto mantém outras rotas no diretório "pages" com o comportamento anterior. Se a sua aplicação usa o diretório "pages", veja também a documentação do Roteador de Páginas.
17 |
18 | Por padrão, os componentes dentro de "app" são Componentes de Servidor React. Isso é uma otimização de desempenho e permite que você os adote facilmente, e você também pode usar Componentes Cliente.
19 |
20 | ## Papéis de Pastas e Arquivos
21 |
22 | O Next.js usa um roteador baseado no sistema de arquivos onde:
23 |
24 | Pastas são usadas para definir rotas. Uma rota é um único caminho de pastas aninhadas, seguindo a hierarquia do sistema de arquivos desde a pasta raiz até uma pasta folha final que inclui um arquivo "page.js". Veja Definindo Rotas.
25 | Arquivos são usados para criar UI que é mostrada para um segmento de rota. Veja arquivos especiais.
26 |
27 | ## Segmentos de Rota
28 |
29 | Cada pasta em uma rota representa um segmento de rota. Cada segmento de rota é mapeado para um segmento correspondente em um caminho de URL.
30 |
31 | ## Rotas Aninhadas
32 |
33 | Para criar uma rota aninhada, você pode aninhar pastas dentro de outras. Por exemplo, você pode adicionar uma nova rota /dashboard/configurações aninhando duas novas pastas no diretório "app".
34 |
35 | A rota /dashboard/configurações é composta por três segmentos:
36 |
37 | / (Segmento Raiz)
38 | dashboard (Segmento)
39 | configurações (Segmento Folha)
40 |
41 | ## Convenções de Arquivos
42 |
43 | O Next.js fornece um conjunto de arquivos especiais para criar a UI com comportamento específico em rotas aninhadas:
44 |
45 | - layout: UI compartilhada para um segmento e seus filhos.
46 | - page: UI única de uma rota e torna as rotas publicamente acessíveis.
47 | - loading: UI de carregamento para um segmento e seus filhos.
48 | - not-found: UI de "não encontrado" para um segmento e seus filhos.
49 | - error: UI de erro para um segmento e seus filhos.
50 | - global-error: UI de erro global.
51 | - route: Endpoint da API do lado do servidor.
52 | - template: UI de Layout re-renderizado especializado.
53 | - default: UI de fallback para Rotas Paralelas.
54 |
55 | ## Hierarquia de Componentes
56 |
57 | Os componentes React definidos em arquivos especiais de um segmento de rota são renderizados em uma hierarquia específica:
58 |
59 | - layout.js
60 | - template.js
61 | - error.js (React error boundary)
62 | - loading.js (React suspense boundary)
63 | - not-found.js (React error boundary)
64 | - page.js ou layout.js aninhado
65 |
66 | ## Colocação
67 |
68 | Além dos arquivos especiais, você tem a opção de colocar seus próprios arquivos (por exemplo, componentes, estilos, testes, etc.) dentro de pastas no diretório "app".
69 |
70 | Isso ocorre porque, enquanto as pastas definem rotas, apenas os conteúdos retornados por "page.js" ou "route.js" são publicamente endereçáveis.
71 |
--------------------------------------------------------------------------------
/db.json:
--------------------------------------------------------------------------------
1 | {
2 | "featured": [
3 | {
4 | "id": 101,
5 | "title": "Squid Game",
6 | "description": "Hundreds of cash-strapped players accept a strange invitation to compete in children's games. Inside, a tempting prize awaits — with deadly high stakes.",
7 | "yearLaunched": "2021",
8 | "link": "/watch/101",
9 | "castMembers": ["Lee Jung-jae", "Park Hae-soo", "Wi Ha-jun"],
10 | "genres": ["Action", "Drama", "Mystery"],
11 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYWE3MDVkN2EtNjQ5MS00ZDQ4LTliNzYtMjc2YWMzMDEwMTA3XkEyXkFqcGdeQXVyMTEzMTI1Mjk3._V1_.jpg",
12 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYWE3MDVkN2EtNjQ5MS00ZDQ4LTliNzYtMjc2YWMzMDEwMTA3XkEyXkFqcGdeQXVyMTEzMTI1Mjk3._V1_.jpg",
13 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/21/09/02/09/19560314_hd_013.mp4",
14 | "rating": "r"
15 | },
16 | {
17 | "id": 102,
18 | "title": "Space Force",
19 | "description": "A four-star general begrudgingly teams up with an eccentric scientist to get the U.S. military's newest agency — Space Force — ready for lift-off.",
20 | "yearLaunched": "2020",
21 | "link": "/watch/102",
22 | "castMembers": ["Steve Carell", "John Malkovich", "Ben Schwartz"],
23 | "genres": ["Comedy"],
24 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZTFiNjdjZTEtZWMwNy00NGQ5LWE4ZWQtZjI2YTI3MzMwMGIyXkEyXkFqcGdeQXVyNTA3MTU2MjE@._V1_.jpg",
25 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZTFiNjdjZTEtZWMwNy00NGQ5LWE4ZWQtZjI2YTI3MzMwMGIyXkEyXkFqcGdeQXVyNTA3MTU2MjE@._V1_.jpg",
26 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/20/05/05/15//19555893_hd_013.mp4",
27 | "rating": "pg-13"
28 | },
29 | {
30 | "id": 103,
31 | "title": "Stranger Things",
32 | "description": "A group of young friends must confront terrifying forces in order to get him back.",
33 | "yearLaunched": "2016",
34 | "link": "/watch/103",
35 | "castMembers": ["Millie Bobby Brown", "Finn Wolfhard", "Winona Ryder"],
36 | "genres": ["Drama", "Fantasy", "Horror"],
37 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMDZkYmVhNjMtNWU4MC00MDQxLWE3MjYtZGMzZWI1ZjhlOWJmXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_.jpg",
38 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMDZkYmVhNjMtNWU4MC00MDQxLWE3MjYtZGMzZWI1ZjhlOWJmXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_.jpg",
39 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/16/06/10/15/19541945_hd_013.mp4",
40 | "rating": "pg-13"
41 | },
42 | {
43 | "id": 104,
44 | "title": "Rick and Morty",
45 | "description": "Brilliant but boozy scientist Rick hijacks his fretful teenage grandson, Morty, for wild escapades in other worlds and alternate dimensions.",
46 | "yearLaunched": "2013",
47 | "link": "/watch/104",
48 | "castMembers": ["Justin Roiland", "Chris Parnell", "Spencer Grammer"],
49 | "genres": ["Animation", "Adventure", "Comedy"],
50 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjRjOTFkOTktZWUzMi00YzMyLThkMmYtMjEwNmQyNzliYTNmXkEyXkFqcGdeQXVyNzQ1ODk3MTQ@._V1_.jpg",
51 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjRjOTFkOTktZWUzMi00YzMyLThkMmYtMjEwNmQyNzliYTNmXkEyXkFqcGdeQXVyNzQ1ODk3MTQ@._V1_.jpg",
52 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/20/04/02/12//19555646_hd_013.mp4",
53 | "rating": "pg-13"
54 | },
55 | {
56 | "id": 105,
57 | "title": "Dark",
58 | "description": "A missing child sets four families on a frantic hunt for answers as they unearth a mind-bending mystery that spans three generations.",
59 | "yearLaunched": "2017",
60 | "link": "/watch/105",
61 | "castMembers": ["Louis Hofmann", "Karoline Eichhorn", "Lisa Vicari"],
62 | "genres": ["Crime", "Drama", "Mystery"],
63 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTk2NzUyOTctZDdlMS00MDJlLTgzNTEtNzQzYjFhNjA0YjBjXkEyXkFqcGdeQXVyMjg1NDcxNDE@._V1_.jpg",
64 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTk2NzUyOTctZDdlMS00MDJlLTgzNTEtNzQzYjFhNjA0YjBjXkEyXkFqcGdeQXVyMjg1NDcxNDE@._V1_.jpg",
65 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/17/11/09/11/19547112_hd_013.mp4",
66 | "rating": "r"
67 | },
68 | {
69 | "id": 106,
70 | "title": "Black Mirror",
71 | "description": "This sci-fi anthology series explores a twisted, high-tech near-future where humanity's greatest innovations and darkest instincts collide.",
72 | "yearLaunched": "2011",
73 | "link": "/watch/106",
74 | "castMembers": ["Daniel Lapaine", "Hannah John-Kamen", "Michaela Coel"],
75 | "genres": ["Drama", "Sci-Fi", "Thriller"],
76 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMzhhMjE0YTUtMjBmMS00NTcxLTljN2MtMTBmM2RkOTcyMWE5XkEyXkFqcGdeQXVyNzQ5MTUxNDU@._V1_.jpg",
77 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMzhhMjE0YTUtMjBmMS00NTcxLTljN2MtMTBmM2RkOTcyMWE5XkEyXkFqcGdeQXVyNzQ5MTUxNDU@._V1_.jpg",
78 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/19/05/21/16//19552983_hd_013.mp4",
79 | "rating": "r"
80 | }
81 | ],
82 | "movies": [
83 | {
84 | "id": 1,
85 | "title": "The Shawshank Redemption",
86 | "description": "Over the course of several years, two convicts form a friendship, seeking consolation and, eventually, redemption through basic compassion.",
87 | "yearLaunched": "1994",
88 | "link": "/watch/1",
89 | "castMembers": ["Tim Robbins", "Morgan Freeman", "Bob Gunton"],
90 | "genres": ["Drama"],
91 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNDE3ODcxYzMtY2YzZC00NmNlLWJiNDMtZDViZWM2MzIxZDYwXkEyXkFqcGdeQXVyNjAwNDUxODI@._V1_QL75_UX28_CR0,2,190,281_.jpg",
92 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNDE3ODcxYzMtY2YzZC00NmNlLWJiNDMtZDViZWM2MzIxZDYwXkEyXkFqcGdeQXVyNjAwNDUxODI@._V1_QL75_UX380_CR0,4,380,562_.jpg",
93 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
94 | "rating": "r"
95 | },
96 | {
97 | "id": 2,
98 | "title": "The Godfather",
99 | "description": "Don Vito Corleone, head of a mafia family, decides to hand over his empire to his youngest son Michael. However, his decision unintentionally puts the lives of his loved ones in grave danger.",
100 | "yearLaunched": "1972",
101 | "link": "/watch/2",
102 | "castMembers": ["Marlon Brando", "Al Pacino", "James Caan"],
103 | "genres": ["Crime", "Drama"],
104 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BM2MyNjYxNmUtYTAwNi00MTYxLWJmNWYtYzZlODY3ZTk3OTFlXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY281_CR4,0,190,281_.jpg",
105 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BM2MyNjYxNmUtYTAwNi00MTYxLWJmNWYtYzZlODY3ZTk3OTFlXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY422_CR6,0,285,422_.jpg",
106 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
107 | "rating": "pg-13"
108 | },
109 | {
110 | "id": 3,
111 | "title": "The Dark Knight",
112 | "description": "When the menace known as the Joker wreaks havoc and chaos on the people of Gotham, Batman must accept one of the greatest psychological and physical tests of his ability to fight injustice.",
113 | "yearLaunched": "2008",
114 | "link": "/watch/3",
115 | "castMembers": ["Christian Bale", "Heath Ledger", "Aaron Eckhart"],
116 | "genres": ["Action", "Crime", "Drama"],
117 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTMxNTMwODM0NF5BMl5BanBnXkFtZTcwODAyMTk2Mw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
118 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTMxNTMwODM0NF5BMl5BanBnXkFtZTcwODAyMTk2Mw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
119 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
120 | "rating": "nc-17"
121 | },
122 | {
123 | "id": 4,
124 | "title": "Schindler's List",
125 | "description": "In German-occupied Poland during World War II, industrialist ",
126 | "yearLaunched": "1993",
127 | "link": "/watch/4",
128 | "castMembers": ["Liam Neeson", "Ralph Fiennes", "Ben Kingsley"],
129 | "genres": ["Biography", "Drama", "History"],
130 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNDE4OTMxMTctNmRhYy00NWE2LTg3YzItYTk3M2UwOTU5Njg4XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,2,190,281_.jpg",
131 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNDE4OTMxMTctNmRhYy00NWE2LTg3YzItYTk3M2UwOTU5Njg4XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,3,285,422_.jpg",
132 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
133 | "rating": "pg"
134 | },
135 | {
136 | "id": 5,
137 | "title": "The Godfather Part II",
138 | "description": "The early life and career of Vito Corleone in 1920s New York City is portrayed, while his son, Michael, expands and tightens his grip on the family crime syndicate.",
139 | "yearLaunched": "1974",
140 | "link": "/watch/5",
141 | "castMembers": ["Al Pacino", "Robert De Niro", "Robert Duvall"],
142 | "genres": ["Crime", "Drama"],
143 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMWMwMGQzZTItY2JlNC00OWZiLWIyMDctNDk2ZDQ2YjRjMWQ0XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY281_CR4,0,190,281_.jpg",
144 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMWMwMGQzZTItY2JlNC00OWZiLWIyMDctNDk2ZDQ2YjRjMWQ0XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY422_CR5,0,285,422_.jpg",
145 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
146 | "rating": "pg-13"
147 | },
148 | {
149 | "id": 6,
150 | "title": "The Lord of the Rings: The Return of the King",
151 | "description": "Gandalf and Aragorn lead the World of Men against Sauron's army to draw his gaze from Frodo and Sam as they approach Mount Doom with the One Ring.",
152 | "yearLaunched": "2003",
153 | "link": "/watch/6",
154 | "castMembers": ["Elijah Wood", "Viggo Mortensen", "Ian McKellen"],
155 | "genres": ["Action", "Adventure", "Drama"],
156 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNzA5ZDNlZWMtM2NhNS00NDJjLTk4NDItYTRmY2EwMWZlMTY3XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
157 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNzA5ZDNlZWMtM2NhNS00NDJjLTk4NDItYTRmY2EwMWZlMTY3XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,0,285,422_.jpg",
158 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
159 | "rating": "nc-17"
160 | },
161 | {
162 | "id": 7,
163 | "title": "12 Angry Men",
164 | "description": "The jury in a New York City murder trial is frustrated by a single member whose skeptical caution forces them to more carefully consider the evidence before jumping to a hasty verdict.",
165 | "yearLaunched": "1957",
166 | "link": "/watch/7",
167 | "castMembers": ["Henry Fonda", "Lee J. Cobb", "Martin Balsam"],
168 | "genres": ["Crime", "Drama"],
169 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMWU4N2FjNzYtNTVkNC00NzQ0LTg0MjAtYTJlMjFhNGUxZDFmXkEyXkFqcGdeQXVyNjc1NTYyMjg@._V1_QL75_UX190_CR0,6,190,281_.jpg",
170 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMWU4N2FjNzYtNTVkNC00NzQ0LTg0MjAtYTJlMjFhNGUxZDFmXkEyXkFqcGdeQXVyNjc1NTYyMjg@._V1_QL75_UX285_CR0,9,285,422_.jpg",
171 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
172 | "rating": "pg"
173 | },
174 | {
175 | "id": 8,
176 | "title": "Pulp Fiction",
177 | "description": "The lives of two mob hitmen, a boxer, a gangster and his wife, and a pair of diner bandits intertwine in four tales of violence and redemption.",
178 | "yearLaunched": "1994",
179 | "link": "/watch/8",
180 | "castMembers": ["John Travolta", "Uma Thurman", "Samuel L. Jackson"],
181 | "genres": ["Crime", "Drama"],
182 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNGNhMDIzZTUtNTBlZi00MTRlLWFjM2ItYzViMjE3YzI5MjljXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY281_CR2,0,190,281_.jpg",
183 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNGNhMDIzZTUtNTBlZi00MTRlLWFjM2ItYzViMjE3YzI5MjljXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY422_CR2,0,285,422_.jpg",
184 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
185 | "rating": "pg"
186 | },
187 | {
188 | "id": 9,
189 | "title": "Spider-Man: Across the Spider-Verse",
190 | "description": "Miles Morales catapults across the Multiverse, where he encounters a team of Spider-People charged with protecting its very existence. When the heroes clash on how to handle a new threat, Miles must redefine what it means to be a hero.",
191 | "yearLaunched": "2023",
192 | "link": "/watch/9",
193 | "castMembers": ["Shameik Moore", "Hailee Steinfeld", "Brian Tyree Henry"],
194 | "genres": ["Animation", "Action", "Adventure"],
195 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMzI0NmVkMjEtYmY4MS00ZDMxLTlkZmEtMzU4MDQxYTMzMjU2XkEyXkFqcGdeQXVyMzQ0MzA0NTM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
196 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMzI0NmVkMjEtYmY4MS00ZDMxLTlkZmEtMzU4MDQxYTMzMjU2XkEyXkFqcGdeQXVyMzQ0MzA0NTM@._V1_QL75_UX285_CR0,1,285,422_.jpg",
197 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
198 | "rating": "nc-17"
199 | },
200 | {
201 | "id": 10,
202 | "title": "Inception",
203 | "description": "A thief who steals corporate secrets through the use of dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O., but his tragic past may doom the project and his team to disaster.",
204 | "yearLaunched": "2010",
205 | "link": "/watch/10",
206 | "castMembers": [
207 | "Leonardo DiCaprio",
208 | "Joseph Gordon-Levitt",
209 | "Elliot Page"
210 | ],
211 | "genres": ["Action", "Adventure", "Sci-Fi"],
212 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjAxMzY3NjcxNF5BMl5BanBnXkFtZTcwNTI5OTM0Mw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
213 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjAxMzY3NjcxNF5BMl5BanBnXkFtZTcwNTI5OTM0Mw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
214 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
215 | "rating": "nc-17"
216 | },
217 | {
218 | "id": 11,
219 | "title": "The Lord of the Rings: The Fellowship of the Ring",
220 | "description": "A meek Hobbit from the Shire and eight companions set out on a journey to destroy the powerful One Ring and save Middle-earth from the Dark Lord Sauron.",
221 | "yearLaunched": "2001",
222 | "link": "/watch/11",
223 | "castMembers": ["Elijah Wood", "Ian McKellen", "Orlando Bloom"],
224 | "genres": ["Action", "Adventure", "Drama"],
225 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BN2EyZjM3NzUtNWUzMi00MTgxLWI0NTctMzY4M2VlOTdjZWRiXkEyXkFqcGdeQXVyNDUzOTQ5MjY@._V1_QL75_UX190_CR0,0,190,281_.jpg",
226 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BN2EyZjM3NzUtNWUzMi00MTgxLWI0NTctMzY4M2VlOTdjZWRiXkEyXkFqcGdeQXVyNDUzOTQ5MjY@._V1_QL75_UX285_CR0,1,285,422_.jpg",
227 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
228 | "rating": "r"
229 | },
230 | {
231 | "id": 12,
232 | "title": "Fight Club",
233 | "description": "An insomniac office worker and a devil-may-care soap maker form an underground fight club that evolves into much more.",
234 | "yearLaunched": "1999",
235 | "link": "/watch/12",
236 | "castMembers": ["Brad Pitt", "Edward Norton", "Meat Loaf"],
237 | "genres": ["Drama"],
238 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BODQ0OWJiMzktYjNlYi00MzcwLThlZWMtMzRkYTY4ZDgxNzgxXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,2,190,281_.jpg",
239 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BODQ0OWJiMzktYjNlYi00MzcwLThlZWMtMzRkYTY4ZDgxNzgxXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,3,285,422_.jpg",
240 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
241 | "rating": "nc-17"
242 | },
243 | {
244 | "id": 13,
245 | "title": "Forrest Gump",
246 | "description": "The history of the United States from the 1950s to the '70s unfolds from the perspective of an Alabama man with an IQ of 75, who yearns to be reunited with his childhood sweetheart.",
247 | "yearLaunched": "1994",
248 | "link": "/watch/13",
249 | "castMembers": ["Tom Hanks", "Robin Wright", "Gary Sinise"],
250 | "genres": ["Drama", "Romance"],
251 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNWIwODRlZTUtY2U3ZS00Yzg1LWJhNzYtMmZiYmEyNmU1NjMzXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UY281_CR2,0,190,281_.jpg",
252 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNWIwODRlZTUtY2U3ZS00Yzg1LWJhNzYtMmZiYmEyNmU1NjMzXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UY422_CR3,0,285,422_.jpg",
253 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
254 | "rating": "nc-17"
255 | },
256 | {
257 | "id": 14,
258 | "title": "Il buono, il brutto, il cattivo",
259 | "description": "A bounty hunting scam joins two men in an uneasy alliance against a third in a race to find a fortune in gold buried in a remote cemetery.",
260 | "yearLaunched": "1966",
261 | "link": "/watch/14",
262 | "castMembers": ["Clint Eastwood", "Eli Wallach", "Lee Van Cleef"],
263 | "genres": ["Adventure", "Western"],
264 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNjJlYmNkZGItM2NhYy00MjlmLTk5NmQtNjg1NmM2ODU4OTMwXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,2,190,281_.jpg",
265 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNjJlYmNkZGItM2NhYy00MjlmLTk5NmQtNjg1NmM2ODU4OTMwXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,3,285,422_.jpg",
266 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
267 | "rating": "nc-17"
268 | },
269 | {
270 | "id": 15,
271 | "title": "The Lord of the Rings: The Two Towers",
272 | "description": "While Frodo and Sam edge closer to Mordor with the help of the shifty Gollum, the divided fellowship makes a stand against Sauron's new ally, Saruman, and his hordes of Isengard.",
273 | "yearLaunched": "2002",
274 | "link": "/watch/15",
275 | "castMembers": ["Elijah Wood", "Ian McKellen", "Viggo Mortensen"],
276 | "genres": ["Action", "Adventure", "Drama"],
277 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZGMxZTdjZmYtMmE2Ni00ZTdkLWI5NTgtNjlmMjBiNzU2MmI5XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,7,190,281_.jpg",
278 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZGMxZTdjZmYtMmE2Ni00ZTdkLWI5NTgtNjlmMjBiNzU2MmI5XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,11,285,422_.jpg",
279 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
280 | "rating": "r"
281 | },
282 | {
283 | "id": 16,
284 | "title": "Interstellar",
285 | "description": "When Earth becomes uninhabitable in the future, a farmer and ex-NASA pilot, Joseph Cooper, is tasked to pilot a spacecraft, along with a team of researchers, to find a new planet for humans.",
286 | "yearLaunched": "2014",
287 | "link": "/watch/16",
288 | "castMembers": [
289 | "Matthew McConaughey",
290 | "Anne Hathaway",
291 | "Jessica Chastain"
292 | ],
293 | "genres": ["Adventure", "Drama", "Sci-Fi"],
294 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjdkOTU3MDktN2IxOS00OGEyLWFmMjktY2FiMmZkNWIyODZiXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX190_CR0,0,190,281_.jpg",
295 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjdkOTU3MDktN2IxOS00OGEyLWFmMjktY2FiMmZkNWIyODZiXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX285_CR0,0,285,422_.jpg",
296 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
297 | "rating": "pg"
298 | },
299 | {
300 | "id": 17,
301 | "title": "Goodfellas",
302 | "description": "The story of ",
303 | "yearLaunched": "1990",
304 | "link": "/watch/17",
305 | "castMembers": ["Robert De Niro", "Ray Liotta", "Joe Pesci"],
306 | "genres": ["Biography", "Crime", "Drama"],
307 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BY2NkZjEzMDgtN2RjYy00YzM1LWI4ZmQtMjIwYjFjNmI3ZGEwXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,2,190,281_.jpg",
308 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BY2NkZjEzMDgtN2RjYy00YzM1LWI4ZmQtMjIwYjFjNmI3ZGEwXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,3,285,422_.jpg",
309 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
310 | "rating": "nc-17"
311 | },
312 | {
313 | "id": 18,
314 | "title": "The Matrix",
315 | "description": "When a beautiful stranger leads computer hacker Neo to a forbidding underworld, he discovers the shocking truth--the life he knows is the elaborate deception of an evil cyber-intelligence.",
316 | "yearLaunched": "1999",
317 | "link": "/watch/18",
318 | "castMembers": ["Keanu Reeves", "Laurence Fishburne", "Carrie-Anne Moss"],
319 | "genres": ["Action", "Sci-Fi"],
320 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNzQzOTk3OTAtNDQ0Zi00ZTVkLWI0MTEtMDllZjNkYzNjNTc4L2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,2,190,281_.jpg",
321 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNzQzOTk3OTAtNDQ0Zi00ZTVkLWI0MTEtMDllZjNkYzNjNTc4L2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,3,285,422_.jpg",
322 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
323 | "rating": "nc-17"
324 | },
325 | {
326 | "id": 19,
327 | "title": "One Flew Over the Cuckoo's Nest",
328 | "description": "In the Fall of 1963, a Korean War veteran and criminal pleads insanity and is admitted to a mental institution, where he rallies up the scared patients against the tyrannical nurse.",
329 | "yearLaunched": "1975",
330 | "link": "/watch/19",
331 | "castMembers": ["Jack Nicholson", "Louise Fletcher", "Michael Berryman"],
332 | "genres": ["Drama"],
333 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjA0OWVhOTAtYWQxNi00YzNhLWI4ZjYtNjFjZTEyYjJlNDVlL2ltYWdlL2ltYWdlXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,0,190,281_.jpg",
334 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjA0OWVhOTAtYWQxNi00YzNhLWI4ZjYtNjFjZTEyYjJlNDVlL2ltYWdlL2ltYWdlXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,1,285,422_.jpg",
335 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
336 | "rating": "pg-13"
337 | },
338 | {
339 | "id": 20,
340 | "title": "Star Wars: Episode V - The Empire Strikes Back",
341 | "description": "After the Rebels are overpowered by the Empire, Luke Skywalker begins his Jedi training with Yoda, while his friends are pursued across the galaxy by Darth Vader and bounty hunter Boba Fett.",
342 | "yearLaunched": "1980",
343 | "link": "/watch/20",
344 | "castMembers": ["Mark Hamill", "Harrison Ford", "Carrie Fisher"],
345 | "genres": ["Action", "Adventure", "Fantasy"],
346 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYmU1NDRjNDgtMzhiMi00NjZmLTg5NGItZDNiZjU5NTU4OTE0XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,7,190,281_.jpg",
347 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYmU1NDRjNDgtMzhiMi00NjZmLTg5NGItZDNiZjU5NTU4OTE0XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,11,285,422_.jpg",
348 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
349 | "rating": "nc-17"
350 | },
351 | {
352 | "id": 21,
353 | "title": "Oppenheimer",
354 | "description": "The story of American scientist, ",
355 | "yearLaunched": "2023",
356 | "link": "/watch/21",
357 | "castMembers": ["Cillian Murphy", "Emily Blunt", "Matt Damon"],
358 | "genres": ["Biography", "Drama", "History"],
359 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMDBmYTZjNjUtN2M1MS00MTQ2LTk2ODgtNzc2M2QyZGE5NTVjXkEyXkFqcGdeQXVyNzAwMjU2MTY@._V1_QL75_UX190_CR0,0,190,281_.jpg",
360 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMDBmYTZjNjUtN2M1MS00MTQ2LTk2ODgtNzc2M2QyZGE5NTVjXkEyXkFqcGdeQXVyNzAwMjU2MTY@._V1_QL75_UX285_CR0,0,285,422_.jpg",
361 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
362 | "rating": "pg-13"
363 | },
364 | {
365 | "id": 22,
366 | "title": "Se7en",
367 | "description": "Two detectives, a rookie and a veteran, hunt a serial killer who uses the seven deadly sins as his motives.",
368 | "yearLaunched": "1995",
369 | "link": "/watch/22",
370 | "castMembers": ["Morgan Freeman", "Brad Pitt", "Kevin Spacey"],
371 | "genres": ["Crime", "Drama", "Mystery"],
372 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTUwODM5MTctZjczMi00OTk4LTg3NWUtNmVhMTAzNTNjYjcyXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,8,190,281_.jpg",
373 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTUwODM5MTctZjczMi00OTk4LTg3NWUtNmVhMTAzNTNjYjcyXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,12,285,422_.jpg",
374 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
375 | "rating": "pg-13"
376 | },
377 | {
378 | "id": 23,
379 | "title": "The Silence of the Lambs",
380 | "description": "A young F.B.I. cadet must receive the help of an incarcerated and manipulative cannibal killer to help catch another serial killer, a madman who skins his victims.",
381 | "yearLaunched": "1991",
382 | "link": "/watch/23",
383 | "castMembers": ["Jodie Foster", "Anthony Hopkins", "Lawrence A. Bonney"],
384 | "genres": ["Crime", "Drama", "Thriller"],
385 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNjNhZTk0ZmEtNjJhMi00YzFlLWE1MmEtYzM1M2ZmMGMwMTU4XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY281_CR0,0,190,281_.jpg",
386 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNjNhZTk0ZmEtNjJhMi00YzFlLWE1MmEtYzM1M2ZmMGMwMTU4XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY422_CR0,0,285,422_.jpg",
387 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
388 | "rating": "r"
389 | },
390 | {
391 | "id": 24,
392 | "title": "The Green Mile",
393 | "description": "A tale set on death row in a Southern jail, where gentle giant John possesses the mysterious power to heal people's ailments. When the lead guard, Paul, recognizes John's gift, he tries to help stave off the condemned man's execution.",
394 | "yearLaunched": "1999",
395 | "link": "/watch/24",
396 | "castMembers": ["Tom Hanks", "Michael Clarke Duncan", "David Morse"],
397 | "genres": ["Crime", "Drama", "Fantasy"],
398 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1_QL75_UX190_CR0,0,190,281_.jpg",
399 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1_QL75_UX285_CR0,0,285,422_.jpg",
400 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
401 | "rating": "nc-17"
402 | },
403 | {
404 | "id": 25,
405 | "title": "Saving Private Ryan",
406 | "description": "Following the Normandy Landings, a group of U.S. soldiers go behind enemy lines to retrieve a paratrooper whose brothers have been killed in action.",
407 | "yearLaunched": "1998",
408 | "link": "/watch/25",
409 | "castMembers": ["Tom Hanks", "Matt Damon", "Tom Sizemore"],
410 | "genres": ["Drama", "War"],
411 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjhkMDM4MWItZTVjOC00ZDRhLThmYTAtM2I5NzBmNmNlMzI1XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UY281_CR1,0,190,281_.jpg",
412 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjhkMDM4MWItZTVjOC00ZDRhLThmYTAtM2I5NzBmNmNlMzI1XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UY422_CR1,0,285,422_.jpg",
413 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
414 | "rating": "nc-17"
415 | },
416 | {
417 | "id": 26,
418 | "title": "Terminator 2: Judgment Day",
419 | "description": "A cyborg, identical to the one who failed to kill Sarah Connor, must now protect her ten year old son John from an even more advanced and powerful cyborg.",
420 | "yearLaunched": "1991",
421 | "link": "/watch/26",
422 | "castMembers": [
423 | "Arnold Schwarzenegger",
424 | "Linda Hamilton",
425 | "Edward Furlong"
426 | ],
427 | "genres": ["Action", "Sci-Fi"],
428 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMGU2NzRmZjUtOGUxYS00ZjdjLWEwZWItY2NlM2JhNjkxNTFmXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,0,190,281_.jpg",
429 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMGU2NzRmZjUtOGUxYS00ZjdjLWEwZWItY2NlM2JhNjkxNTFmXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,1,285,422_.jpg",
430 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
431 | "rating": "r"
432 | },
433 | {
434 | "id": 27,
435 | "title": "Star Wars",
436 | "description": "Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a Wookiee and two droids to save the galaxy from the Empire's world-destroying battle station, while also attempting to rescue Princess Leia from the mysterious Darth Vader.",
437 | "yearLaunched": "1977",
438 | "link": "/watch/27",
439 | "castMembers": ["Mark Hamill", "Harrison Ford", "Carrie Fisher"],
440 | "genres": ["Action", "Adventure", "Fantasy"],
441 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTA5NjhiOTAtZWM0ZC00MWNhLThiMzEtZDFkOTk2OTU1ZDJkXkEyXkFqcGdeQXVyMTA4NDI1NTQx._V1_QL75_UX190_CR0,5,190,281_.jpg",
442 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTA5NjhiOTAtZWM0ZC00MWNhLThiMzEtZDFkOTk2OTU1ZDJkXkEyXkFqcGdeQXVyMTA4NDI1NTQx._V1_QL75_UX285_CR0,7,285,422_.jpg",
443 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
444 | "rating": "nc-17"
445 | },
446 | {
447 | "id": 28,
448 | "title": "Sen to Chihiro no kamikakushi",
449 | "description": "During her family's move to the suburbs, a sullen 10-year-old girl wanders into a world ruled by gods, witches and spirits, a world where humans are changed into beasts.",
450 | "yearLaunched": "2001",
451 | "link": "/watch/28",
452 | "castMembers": ["Daveigh Chase", "Suzanne Pleshette", "Miyu Irino"],
453 | "genres": ["Animation", "Adventure", "Family"],
454 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjlmZmI5MDctNDE2YS00YWE0LWE5ZWItZDBhYWQ0NTcxNWRhXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX190_CR0,0,190,281_.jpg",
455 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjlmZmI5MDctNDE2YS00YWE0LWE5ZWItZDBhYWQ0NTcxNWRhXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX285_CR0,1,285,422_.jpg",
456 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
457 | "rating": "r"
458 | },
459 | {
460 | "id": 29,
461 | "title": "Cidade de Deus",
462 | "description": "In the slums of Rio, two kids' paths diverge as one struggles to become a photographer and the other a kingpin.",
463 | "yearLaunched": "2002",
464 | "link": "/watch/29",
465 | "castMembers": [
466 | "Alexandre Rodrigues",
467 | "Leandro Firmino",
468 | "Matheus Nachtergaele"
469 | ],
470 | "genres": ["Crime", "Drama"],
471 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTMwYjc5ZmItYTFjZC00ZGQ3LTlkNTMtMjZiNTZlMWQzNzI5XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,1,190,281_.jpg",
472 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTMwYjc5ZmItYTFjZC00ZGQ3LTlkNTMtMjZiNTZlMWQzNzI5XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,2,285,422_.jpg",
473 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
474 | "rating": "pg"
475 | },
476 | {
477 | "id": 30,
478 | "title": "La vita è bella",
479 | "description": "When an open-minded Jewish waiter and his son become victims of the Holocaust, he uses a perfect mixture of will, humor and imagination to protect his son from the dangers around their camp.",
480 | "yearLaunched": "1997",
481 | "link": "/watch/30",
482 | "castMembers": [
483 | "Roberto Benigni",
484 | "Nicoletta Braschi",
485 | "Giorgio Cantarini"
486 | ],
487 | "genres": ["Comedy", "Drama", "Romance"],
488 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYmJmM2Q4NmMtYThmNC00ZjRlLWEyZmItZTIwOTBlZDQ3NTQ1XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,1,190,281_.jpg",
489 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYmJmM2Q4NmMtYThmNC00ZjRlLWEyZmItZTIwOTBlZDQ3NTQ1XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,2,285,422_.jpg",
490 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
491 | "rating": "pg-13"
492 | },
493 | {
494 | "id": 31,
495 | "title": "It's a Wonderful Life",
496 | "description": "An angel is sent from Heaven to help a desperately frustrated businessman by showing him what life would have been like if he had never existed.",
497 | "yearLaunched": "1946",
498 | "link": "/watch/31",
499 | "castMembers": ["James Stewart", "Donna Reed", "Lionel Barrymore"],
500 | "genres": ["Drama", "Family", "Fantasy"],
501 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjc4NDZhZWMtNGEzYS00ZWU2LThlM2ItNTA0YzQ0OTExMTE2XkEyXkFqcGdeQXVyNjUwMzI2NzU@._V1_QL75_UY281_CR2,0,190,281_.jpg",
502 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjc4NDZhZWMtNGEzYS00ZWU2LThlM2ItNTA0YzQ0OTExMTE2XkEyXkFqcGdeQXVyNjUwMzI2NzU@._V1_QL75_UY422_CR2,0,285,422_.jpg",
503 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
504 | "rating": "r"
505 | },
506 | {
507 | "id": 32,
508 | "title": "Shichinin no samurai",
509 | "description": "Farmers from a village exploited by bandits hire a veteran samurai for protection, who gathers six other samurai to join him.",
510 | "yearLaunched": "1954",
511 | "link": "/watch/32",
512 | "castMembers": ["Toshirô Mifune", "Takashi Shimura", "Keiko Tsushima"],
513 | "genres": ["Action", "Drama"],
514 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNWQ3OTM4ZGItMWEwZi00MjI5LWI3YzgtNTYwNWRkNmIzMGI5XkEyXkFqcGdeQXVyNDY2MTk1ODk@._V1_QL75_UY281_CR5,0,190,281_.jpg",
515 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNWQ3OTM4ZGItMWEwZi00MjI5LWI3YzgtNTYwNWRkNmIzMGI5XkEyXkFqcGdeQXVyNDY2MTk1ODk@._V1_QL75_UY422_CR8,0,285,422_.jpg",
516 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
517 | "rating": "nc-17"
518 | },
519 | {
520 | "id": 33,
521 | "title": "Seppuku",
522 | "description": "When a ronin requesting seppuku at a feudal lord's palace is told of the brutal suicide of another ronin who previously visited, he reveals how their pasts are intertwined - and in doing so challenges the clan's integrity.",
523 | "yearLaunched": "1962",
524 | "link": "/watch/33",
525 | "castMembers": ["Tatsuya Nakadai", "Akira Ishihama", "Shima Iwashita"],
526 | "genres": ["Action", "Drama", "Mystery"],
527 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYjBmYTQ1NjItZWU5MS00YjI0LTg2OTYtYmFkN2JkMmNiNWVkXkEyXkFqcGdeQXVyMTMxMTY0OTQ@._V1_QL75_UY281_CR9,0,190,281_.jpg",
528 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYjBmYTQ1NjItZWU5MS00YjI0LTg2OTYtYmFkN2JkMmNiNWVkXkEyXkFqcGdeQXVyMTMxMTY0OTQ@._V1_QL75_UY422_CR12,0,285,422_.jpg",
529 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
530 | "rating": "pg"
531 | },
532 | {
533 | "id": 34,
534 | "title": "Gladiator",
535 | "description": "A former Roman General sets out to exact vengeance against the corrupt emperor who murdered his family and sent him into slavery.",
536 | "yearLaunched": "2000",
537 | "link": "/watch/34",
538 | "castMembers": ["Russell Crowe", "Joaquin Phoenix", "Connie Nielsen"],
539 | "genres": ["Action", "Adventure", "Drama"],
540 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMDliMmNhNDEtODUyOS00MjNlLTgxODEtN2U3NzIxMGVkZTA1L2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,0,190,281_.jpg",
541 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMDliMmNhNDEtODUyOS00MjNlLTgxODEtN2U3NzIxMGVkZTA1L2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,0,285,422_.jpg",
542 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
543 | "rating": "pg"
544 | },
545 | {
546 | "id": 35,
547 | "title": "The Prestige",
548 | "description": "After a tragic accident, two stage magicians in 1890s London engage in a battle to create the ultimate illusion while sacrificing everything they have to outwit each other.",
549 | "yearLaunched": "2006",
550 | "link": "/watch/35",
551 | "castMembers": ["Christian Bale", "Hugh Jackman", "Scarlett Johansson"],
552 | "genres": ["Drama", "Mystery", "Sci-Fi"],
553 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjA4NDI0MTIxNF5BMl5BanBnXkFtZTYwNTM0MzY2._V1_QL75_UX190_CR0,0,190,281_.jpg",
554 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjA4NDI0MTIxNF5BMl5BanBnXkFtZTYwNTM0MzY2._V1_QL75_UX285_CR0,0,285,422_.jpg",
555 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
556 | "rating": "r"
557 | },
558 | {
559 | "id": 36,
560 | "title": "The Departed",
561 | "description": "An undercover cop and a mole in the police attempt to identify each other while infiltrating an Irish gang in South Boston.",
562 | "yearLaunched": "2006",
563 | "link": "/watch/36",
564 | "castMembers": ["Leonardo DiCaprio", "Matt Damon", "Jack Nicholson"],
565 | "genres": ["Crime", "Drama", "Thriller"],
566 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTI1MTY2OTIxNV5BMl5BanBnXkFtZTYwNjQ4NjY3._V1_QL75_UY281_CR0,0,190,281_.jpg",
567 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTI1MTY2OTIxNV5BMl5BanBnXkFtZTYwNjQ4NjY3._V1_QL75_UY422_CR0,0,285,422_.jpg",
568 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
569 | "rating": "nc-17"
570 | },
571 | {
572 | "id": 37,
573 | "title": "Back to the Future",
574 | "description": "Marty McFly, a 17-year-old high school student, is accidentally sent 30 years into the past in a time-traveling DeLorean invented by his close friend, the maverick scientist Doc Brown.",
575 | "yearLaunched": "1985",
576 | "link": "/watch/37",
577 | "castMembers": ["Michael J. Fox", "Christopher Lloyd", "Lea Thompson"],
578 | "genres": ["Adventure", "Comedy", "Sci-Fi"],
579 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZmU0M2Y1OGUtZjIxNi00ZjBkLTg1MjgtOWIyNThiZWIwYjRiXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,7,190,281_.jpg",
580 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZmU0M2Y1OGUtZjIxNi00ZjBkLTg1MjgtOWIyNThiZWIwYjRiXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,11,285,422_.jpg",
581 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
582 | "rating": "nc-17"
583 | },
584 | {
585 | "id": 38,
586 | "title": "Django Unchained",
587 | "description": "With the help of a German bounty-hunter, a freed slave sets out to rescue his wife from a brutal plantation owner in Mississippi.",
588 | "yearLaunched": "2012",
589 | "link": "/watch/38",
590 | "castMembers": ["Jamie Foxx", "Christoph Waltz", "Leonardo DiCaprio"],
591 | "genres": ["Drama", "Western"],
592 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjIyNTQ5NjQ1OV5BMl5BanBnXkFtZTcwODg1MDU4OA@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
593 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjIyNTQ5NjQ1OV5BMl5BanBnXkFtZTcwODg1MDU4OA@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
594 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
595 | "rating": "pg-13"
596 | },
597 | {
598 | "id": 39,
599 | "title": "Gisaengchung",
600 | "description": "Greed and class discrimination threaten the newly formed symbiotic relationship between the wealthy Park family and the destitute Kim clan.",
601 | "yearLaunched": "2019",
602 | "link": "/watch/39",
603 | "castMembers": ["Song Kang-ho", "Lee Sun-kyun", "Cho Yeo-jeong"],
604 | "genres": ["Drama", "Thriller"],
605 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYWZjMjk3ZTItODQ2ZC00NTY5LWE0ZDYtZTI3MjcwN2Q5NTVkXkEyXkFqcGdeQXVyODk4OTc3MTY@._V1_QL75_UX190_CR0,0,190,281_.jpg",
606 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYWZjMjk3ZTItODQ2ZC00NTY5LWE0ZDYtZTI3MjcwN2Q5NTVkXkEyXkFqcGdeQXVyODk4OTc3MTY@._V1_QL75_UX285_CR0,0,285,422_.jpg",
607 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
608 | "rating": "pg"
609 | },
610 | {
611 | "id": 40,
612 | "title": "Alien",
613 | "description": "The crew of a commercial spacecraft encounters a deadly lifeform after investigating an unknown transmission.",
614 | "yearLaunched": "1979",
615 | "link": "/watch/40",
616 | "castMembers": ["Sigourney Weaver", "Tom Skerritt", "John Hurt"],
617 | "genres": ["Horror", "Sci-Fi"],
618 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOGQzZTBjMjQtOTVmMS00NGE5LWEyYmMtOGQ1ZGZjNmRkYjFhXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,3,190,281_.jpg",
619 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOGQzZTBjMjQtOTVmMS00NGE5LWEyYmMtOGQ1ZGZjNmRkYjFhXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,4,285,422_.jpg",
620 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
621 | "rating": "r"
622 | },
623 | {
624 | "id": 41,
625 | "title": "Whiplash",
626 | "description": "A promising young drummer enrolls at a cut-throat music conservatory where his dreams of greatness are mentored by an instructor who will stop at nothing to realize a student's potential.",
627 | "yearLaunched": "2014",
628 | "link": "/watch/41",
629 | "castMembers": ["Miles Teller", "J.K. Simmons", "Melissa Benoist"],
630 | "genres": ["Drama", "Music"],
631 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTA5NDZlZGUtMjAxOS00YTRkLTkwYmMtYWQ0NWEwZDZiNjEzXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX190_CR0,0,190,281_.jpg",
632 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTA5NDZlZGUtMjAxOS00YTRkLTkwYmMtYWQ0NWEwZDZiNjEzXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX285_CR0,0,285,422_.jpg",
633 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
634 | "rating": "r"
635 | },
636 | {
637 | "id": 42,
638 | "title": "Léon",
639 | "description": "12-year-old Mathilda is reluctantly taken in by Léon, a professional assassin, after her family is murdered. An unusual relationship forms as she becomes his protégée and learns the assassin's trade.",
640 | "yearLaunched": "1994",
641 | "link": "/watch/42",
642 | "castMembers": ["Jean Reno", "Gary Oldman", "Natalie Portman"],
643 | "genres": ["Action", "Crime", "Drama"],
644 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTgyMWQ0ZWUtN2Q2MS00NmY0LWI3OWMtNjFkMzZlNDZjNTk0XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,1,190,281_.jpg",
645 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTgyMWQ0ZWUtN2Q2MS00NmY0LWI3OWMtNjFkMzZlNDZjNTk0XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,2,285,422_.jpg",
646 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
647 | "rating": "nc-17"
648 | },
649 | {
650 | "id": 43,
651 | "title": "The Usual Suspects",
652 | "description": "The sole survivor of a pier shoot-out tells the story of how a notorious criminal influenced the events that began with five criminals meeting in a seemingly random police lineup.",
653 | "yearLaunched": "1995",
654 | "link": "/watch/43",
655 | "castMembers": ["Kevin Spacey", "Gabriel Byrne", "Chazz Palminteri"],
656 | "genres": ["Crime", "Drama", "Mystery"],
657 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYTViNjMyNmUtNDFkNC00ZDRlLThmMDUtZDU2YWE4NGI2ZjVmXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,1,190,281_.jpg",
658 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYTViNjMyNmUtNDFkNC00ZDRlLThmMDUtZDU2YWE4NGI2ZjVmXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,2,285,422_.jpg",
659 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
660 | "rating": "pg-13"
661 | },
662 | {
663 | "id": 44,
664 | "title": "The Pianist",
665 | "description": "A Polish Jewish musician struggles to survive the destruction of the Warsaw ghetto of World War II.",
666 | "yearLaunched": "2002",
667 | "link": "/watch/44",
668 | "castMembers": ["Adrien Brody", "Thomas Kretschmann", "Frank Finlay"],
669 | "genres": ["Biography", "Drama", "Music"],
670 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOWRiZDIxZjktMTA1NC00MDQ2LWEzMjUtMTliZmY3NjQ3ODJiXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY281_CR7,0,190,281_.jpg",
671 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOWRiZDIxZjktMTA1NC00MDQ2LWEzMjUtMTliZmY3NjQ3ODJiXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY422_CR10,0,285,422_.jpg",
672 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
673 | "rating": "pg-13"
674 | },
675 | {
676 | "id": 45,
677 | "title": "The Lion King",
678 | "description": "Lion prince Simba and his father are targeted by his bitter uncle, who wants to ascend the throne himself.",
679 | "yearLaunched": "1994",
680 | "link": "/watch/45",
681 | "castMembers": ["Matthew Broderick", "Jeremy Irons", "James Earl Jones"],
682 | "genres": ["Animation", "Adventure", "Drama"],
683 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYTYxNGMyZTYtMjE3MS00MzNjLWFjNmYtMDk3N2FmM2JiM2M1XkEyXkFqcGdeQXVyNjY5NDU4NzI@._V1_QL75_UX190_CR0,0,190,281_.jpg",
684 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYTYxNGMyZTYtMjE3MS00MzNjLWFjNmYtMDk3N2FmM2JiM2M1XkEyXkFqcGdeQXVyNjY5NDU4NzI@._V1_QL75_UX285_CR0,1,285,422_.jpg",
685 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
686 | "rating": "r"
687 | },
688 | {
689 | "id": 46,
690 | "title": "American History X",
691 | "description": "Living a life marked by violence, neo-Nazi Derek finally goes to prison after killing two black youths. Upon his release, Derek vows to change; he hopes to prevent his brother, Danny, who idolizes Derek, from following in his footsteps.",
692 | "yearLaunched": "1998",
693 | "link": "/watch/46",
694 | "castMembers": ["Edward Norton", "Edward Furlong", "Beverly D'Angelo"],
695 | "genres": ["Crime", "Drama"],
696 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZTJhN2FkYWEtMGI0My00YWM4LWI2MjAtM2UwNjY4MTI2ZTQyXkEyXkFqcGdeQXVyNjc3MjQzNTI@._V1_QL75_UX190_CR0,0,190,281_.jpg",
697 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZTJhN2FkYWEtMGI0My00YWM4LWI2MjAtM2UwNjY4MTI2ZTQyXkEyXkFqcGdeQXVyNjc3MjQzNTI@._V1_QL75_UX285_CR0,1,285,422_.jpg",
698 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
699 | "rating": "nc-17"
700 | },
701 | {
702 | "id": 47,
703 | "title": "Psycho",
704 | "description": "A Phoenix secretary embezzles $40,000 from her employer's client, goes on the run and checks into a remote motel run by a young man under the domination of his mother.",
705 | "yearLaunched": "1960",
706 | "link": "/watch/47",
707 | "castMembers": ["Anthony Perkins", "Janet Leigh", "Vera Miles"],
708 | "genres": ["Horror", "Mystery", "Thriller"],
709 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNTQwNDM1YzItNDAxZC00NWY2LTk0M2UtNDIwNWI5OGUyNWUxXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
710 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNTQwNDM1YzItNDAxZC00NWY2LTk0M2UtNDIwNWI5OGUyNWUxXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,1,285,422_.jpg",
711 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
712 | "rating": "r"
713 | },
714 | {
715 | "id": 48,
716 | "title": "The Intouchables",
717 | "description": "After he becomes a quadriplegic from a paragliding accident, an aristocrat hires a young man from the projects to be his caregiver.",
718 | "yearLaunched": "2011",
719 | "link": "/watch/48",
720 | "castMembers": ["François Cluzet", "Omar Sy", "Anne Le Ny"],
721 | "genres": ["Biography", "Comedy", "Drama"],
722 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTYxNDA3MDQwNl5BMl5BanBnXkFtZTcwNTU4Mzc1Nw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
723 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTYxNDA3MDQwNl5BMl5BanBnXkFtZTcwNTU4Mzc1Nw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
724 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
725 | "rating": "pg-13"
726 | },
727 | {
728 | "id": 49,
729 | "title": "Casablanca",
730 | "description": "A cynical expatriate American cafe owner struggles to decide whether or not to help his former lover and her fugitive husband escape the Nazis in French Morocco.",
731 | "yearLaunched": "1942",
732 | "link": "/watch/49",
733 | "castMembers": ["Humphrey Bogart", "Ingrid Bergman", "Paul Henreid"],
734 | "genres": ["Drama", "Romance", "War"],
735 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BY2IzZGY2YmEtYzljNS00NTM5LTgwMzUtMzM1NjQ4NGI0OTk0XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UX190_CR0,3,190,281_.jpg",
736 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BY2IzZGY2YmEtYzljNS00NTM5LTgwMzUtMzM1NjQ4NGI0OTk0XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UX285_CR0,4,285,422_.jpg",
737 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
738 | "rating": "pg-13"
739 | },
740 | {
741 | "id": 50,
742 | "title": "Hotaru no haka",
743 | "description": "A young boy and his little sister struggle to survive in Japan during World War II.",
744 | "yearLaunched": "1988",
745 | "link": "/watch/50",
746 | "castMembers": ["Tsutomu Tatsumi", "Ayano Shiraishi", "Akemi Yamaguchi"],
747 | "genres": ["Animation", "Drama", "War"],
748 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZmY2NjUzNDQtNTgxNC00M2Q4LTljOWQtMjNjNDBjNWUxNmJlXkEyXkFqcGdeQXVyNTA4NzY1MzY@._V1_QL75_UX190_CR0,2,190,281_.jpg",
749 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZmY2NjUzNDQtNTgxNC00M2Q4LTljOWQtMjNjNDBjNWUxNmJlXkEyXkFqcGdeQXVyNTA4NzY1MzY@._V1_QL75_UX285_CR0,3,285,422_.jpg",
750 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
751 | "rating": "pg"
752 | },
753 | {
754 | "id": 51,
755 | "title": "Once Upon a Time in the West",
756 | "description": "A mysterious stranger with a harmonica joins forces with a notorious desperado to protect a beautiful widow from a ruthless assassin working for the railroad.",
757 | "yearLaunched": "1968",
758 | "link": "/watch/51",
759 | "castMembers": ["Henry Fonda", "Charles Bronson", "Claudia Cardinale"],
760 | "genres": ["Western"],
761 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BODQ3NDExOGYtMzI3Mi00NWRlLTkwNjAtNjc4MDgzZGJiZTA1XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,1,190,281_.jpg",
762 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BODQ3NDExOGYtMzI3Mi00NWRlLTkwNjAtNjc4MDgzZGJiZTA1XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,2,285,422_.jpg",
763 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
764 | "rating": "r"
765 | },
766 | {
767 | "id": 52,
768 | "title": "Rear Window",
769 | "description": "A photographer in a wheelchair spies on his neighbors from his Greenwich Village courtyard apartment window, and becomes convinced one of them has committed murder, despite the skepticism of his fashion-model girlfriend.",
770 | "yearLaunched": "1954",
771 | "link": "/watch/52",
772 | "castMembers": ["James Stewart", "Grace Kelly", "Wendell Corey"],
773 | "genres": ["Mystery", "Thriller"],
774 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNGUxYWM3M2MtMGM3Mi00ZmRiLWE0NGQtZjE5ODI2OTJhNTU0XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UY281_CR1,0,190,281_.jpg",
775 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNGUxYWM3M2MtMGM3Mi00ZmRiLWE0NGQtZjE5ODI2OTJhNTU0XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UY422_CR1,0,285,422_.jpg",
776 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
777 | "rating": "pg"
778 | },
779 | {
780 | "id": 53,
781 | "title": "Nuovo Cinema Paradiso",
782 | "description": "A filmmaker recalls his childhood when falling in love with the pictures at the cinema of his home village and forms a deep friendship with the cinema's projectionist.",
783 | "yearLaunched": "1988",
784 | "link": "/watch/53",
785 | "castMembers": ["Philippe Noiret", "Enzo Cannavale", "Antonella Attili"],
786 | "genres": ["Drama", "Romance"],
787 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BM2FhYjEyYmYtMDI1Yy00YTdlLWI2NWQtYmEzNzAxOGY1NjY2XkEyXkFqcGdeQXVyNTA3NTIyNDg@._V1_QL75_UX190_CR0,0,190,281_.jpg",
788 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BM2FhYjEyYmYtMDI1Yy00YTdlLWI2NWQtYmEzNzAxOGY1NjY2XkEyXkFqcGdeQXVyNTA3NTIyNDg@._V1_QL75_UX285_CR0,0,285,422_.jpg",
789 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
790 | "rating": "pg"
791 | },
792 | {
793 | "id": 54,
794 | "title": "Modern Times",
795 | "description": "The Tramp struggles to live in modern industrial society with the help of a young homeless woman.",
796 | "yearLaunched": "1936",
797 | "link": "/watch/54",
798 | "castMembers": ["Charles Chaplin", "Paulette Goddard", "Henry Bergman"],
799 | "genres": ["Comedy", "Drama", "Romance"],
800 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYjJiZjMzYzktNjU0NS00OTkxLWEwYzItYzdhYWJjN2QzMTRlL2ltYWdlL2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,7,190,281_.jpg",
801 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYjJiZjMzYzktNjU0NS00OTkxLWEwYzItYzdhYWJjN2QzMTRlL2ltYWdlL2ltYWdlXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,11,285,422_.jpg",
802 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
803 | "rating": "r"
804 | },
805 | {
806 | "id": 55,
807 | "title": "City Lights",
808 | "description": "With the aid of a wealthy erratic tippler, a dewy-eyed tramp who has fallen in love with a sightless flower girl accumulates money to be able to help her medically.",
809 | "yearLaunched": "1931",
810 | "link": "/watch/55",
811 | "castMembers": ["Charles Chaplin", "Virginia Cherrill", "Florence Lee"],
812 | "genres": ["Comedy", "Drama", "Romance"],
813 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BY2I4MmM1N2EtM2YzOS00OWUzLTkzYzctNDc5NDg2N2IyODJmXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,2,190,281_.jpg",
814 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BY2I4MmM1N2EtM2YzOS00OWUzLTkzYzctNDc5NDg2N2IyODJmXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,3,285,422_.jpg",
815 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
816 | "rating": "pg"
817 | },
818 | {
819 | "id": 56,
820 | "title": "Oldeuboi",
821 | "description": "After being kidnapped and imprisoned for fifteen years, Oh Dae-Su is released, only to find that he must find his captor in five days.",
822 | "yearLaunched": "2003",
823 | "link": "/watch/56",
824 | "castMembers": ["Choi Min-sik", "Yoo Ji-tae", "Kang Hye-jeong"],
825 | "genres": ["Action", "Drama", "Mystery"],
826 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTI3NTQyMzU5M15BMl5BanBnXkFtZTcwMTM2MjgyMQ@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
827 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTI3NTQyMzU5M15BMl5BanBnXkFtZTcwMTM2MjgyMQ@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
828 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
829 | "rating": "pg-13"
830 | },
831 | {
832 | "id": 57,
833 | "title": "Spider-Man: Into the Spider-Verse",
834 | "description": "Teen Miles Morales becomes the Spider-Man of his universe and must join with five spider-powered individuals from other dimensions to stop a threat for all realities.",
835 | "yearLaunched": "2018",
836 | "link": "/watch/57",
837 | "castMembers": ["Shameik Moore", "Jake Johnson", "Hailee Steinfeld"],
838 | "genres": ["Animation", "Action", "Adventure"],
839 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjMwNDkxMTgzOF5BMl5BanBnXkFtZTgwNTkwNTQ3NjM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
840 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjMwNDkxMTgzOF5BMl5BanBnXkFtZTgwNTkwNTQ3NjM@._V1_QL75_UX285_CR0,1,285,422_.jpg",
841 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
842 | "rating": "nc-17"
843 | },
844 | {
845 | "id": 58,
846 | "title": "Avengers: Endgame",
847 | "description": "After the devastating events of ",
848 | "yearLaunched": "2019",
849 | "link": "/watch/58",
850 | "castMembers": ["Robert Downey Jr.", "Chris Evans", "Mark Ruffalo"],
851 | "genres": ["Action", "Adventure", "Drama"],
852 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTc5MDE2ODcwNV5BMl5BanBnXkFtZTgwMzI2NzQ2NzM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
853 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTc5MDE2ODcwNV5BMl5BanBnXkFtZTgwMzI2NzQ2NzM@._V1_QL75_UX285_CR0,0,285,422_.jpg",
854 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
855 | "rating": "nc-17"
856 | },
857 | {
858 | "id": 59,
859 | "title": "The Dark Knight Rises",
860 | "description": "Eight years after the Joker's reign of chaos, Batman is coerced out of exile with the assistance of the mysterious Selina Kyle in order to defend Gotham City from the vicious guerrilla terrorist Bane.",
861 | "yearLaunched": "2012",
862 | "link": "/watch/59",
863 | "castMembers": ["Christian Bale", "Tom Hardy", "Anne Hathaway"],
864 | "genres": ["Action", "Drama", "Thriller"],
865 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTk4ODQzNDY3Ml5BMl5BanBnXkFtZTcwODA0NTM4Nw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
866 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTk4ODQzNDY3Ml5BMl5BanBnXkFtZTcwODA0NTM4Nw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
867 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
868 | "rating": "pg"
869 | },
870 | {
871 | "id": 60,
872 | "title": "Joker",
873 | "description": "The rise of Arthur Fleck, from aspiring stand-up comedian and pariah to Gotham's clown prince and leader of the revolution.",
874 | "yearLaunched": "I (2019)",
875 | "link": "/watch/60",
876 | "castMembers": ["Joaquin Phoenix", "Robert De Niro", "Zazie Beetz"],
877 | "genres": ["Crime", "Drama", "Thriller"],
878 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNGVjNWI4ZGUtNzE0MS00YTJmLWE0ZDctN2ZiYTk2YmI3NTYyXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
879 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNGVjNWI4ZGUtNzE0MS00YTJmLWE0ZDctN2ZiYTk2YmI3NTYyXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
880 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
881 | "rating": "nc-17"
882 | },
883 | {
884 | "id": 61,
885 | "title": "Memento",
886 | "description": "A man with short-term memory loss attempts to track down his wife's murderer.",
887 | "yearLaunched": "2000",
888 | "link": "/watch/61",
889 | "castMembers": ["Guy Pearce", "Carrie-Anne Moss", "Joe Pantoliano"],
890 | "genres": ["Mystery", "Thriller"],
891 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZTcyNjk1MjgtOWI3Mi00YzQwLWI5MTktMzY4ZmI2NDAyNzYzXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY281_CR1,0,190,281_.jpg",
892 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZTcyNjk1MjgtOWI3Mi00YzQwLWI5MTktMzY4ZmI2NDAyNzYzXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY422_CR1,0,285,422_.jpg",
893 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
894 | "rating": "r"
895 | },
896 | {
897 | "id": 62,
898 | "title": "The Shining",
899 | "description": "A family heads to an isolated hotel for the winter where a sinister presence influences the father into violence, while his psychic son sees horrific forebodings from both past and future.",
900 | "yearLaunched": "1980",
901 | "link": "/watch/62",
902 | "castMembers": ["Jack Nicholson", "Shelley Duvall", "Danny Lloyd"],
903 | "genres": ["Drama", "Horror"],
904 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZWFlYmY2MGEtZjVkYS00YzU4LTg0YjQtYzY1ZGE3NTA5NGQxXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,4,190,281_.jpg",
905 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZWFlYmY2MGEtZjVkYS00YzU4LTg0YjQtYzY1ZGE3NTA5NGQxXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,6,285,422_.jpg",
906 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
907 | "rating": "r"
908 | },
909 | {
910 | "id": 63,
911 | "title": "Aliens",
912 | "description": "Decades after surviving the Nostromo incident, Ellen Ripley is sent out to re-establish contact with a terraforming colony but finds herself battling the Alien Queen and her offspring.",
913 | "yearLaunched": "1986",
914 | "link": "/watch/63",
915 | "castMembers": ["Sigourney Weaver", "Michael Biehn", "Carrie Henn"],
916 | "genres": ["Action", "Adventure", "Sci-Fi"],
917 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOGJkY2EyOWYtYWRmNy00ZTEzLTllMDAtYzYzYjA0ZjFhZWJjXkEyXkFqcGdeQXVyMTUzMDUzNTI3._V1_QL75_UX190_CR0,3,190,281_.jpg",
918 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOGJkY2EyOWYtYWRmNy00ZTEzLTllMDAtYzYzYjA0ZjFhZWJjXkEyXkFqcGdeQXVyMTUzMDUzNTI3._V1_QL75_UX285_CR0,5,285,422_.jpg",
919 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
920 | "rating": "pg-13"
921 | },
922 | {
923 | "id": 64,
924 | "title": "Raiders of the Lost Ark",
925 | "description": "In 1936, archaeologist and adventurer Indiana Jones is hired by the U.S. government to find the Ark of the Covenant before the Nazis can obtain its awesome powers.",
926 | "yearLaunched": "1981",
927 | "link": "/watch/64",
928 | "castMembers": ["Harrison Ford", "Karen Allen", "Paul Freeman"],
929 | "genres": ["Action", "Adventure"],
930 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNTU2ODkyY2MtMjU1NC00NjE1LWEzYjgtMWQ3MzRhMTE0NDc0XkEyXkFqcGdeQXVyMjM4MzQ4OTQ@._V1_QL75_UY281_CR1,0,190,281_.jpg",
931 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNTU2ODkyY2MtMjU1NC00NjE1LWEzYjgtMWQ3MzRhMTE0NDc0XkEyXkFqcGdeQXVyMjM4MzQ4OTQ@._V1_QL75_UY422_CR1,0,285,422_.jpg",
932 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
933 | "rating": "pg"
934 | },
935 | {
936 | "id": 65,
937 | "title": "Apocalypse Now",
938 | "description": "A U.S. Army officer serving in Vietnam is tasked with assassinating a renegade Special Forces Colonel who sees himself as a god.",
939 | "yearLaunched": "1979",
940 | "link": "/watch/65",
941 | "castMembers": ["Martin Sheen", "Marlon Brando", "Robert Duvall"],
942 | "genres": ["Drama", "Mystery", "War"],
943 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYmQyNTA1ZGItNjZjMi00NzFlLWEzMWEtNWMwN2Q2MjJhYzEyXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,5,190,281_.jpg",
944 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYmQyNTA1ZGItNjZjMi00NzFlLWEzMWEtNWMwN2Q2MjJhYzEyXkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,8,285,422_.jpg",
945 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
946 | "rating": "nc-17"
947 | },
948 | {
949 | "id": 66,
950 | "title": "Avengers: Infinity War",
951 | "description": "The Avengers and their allies must be willing to sacrifice all in an attempt to defeat the powerful Thanos before his blitz of devastation and ruin puts an end to the universe.",
952 | "yearLaunched": "2018",
953 | "link": "/watch/66",
954 | "castMembers": ["Robert Downey Jr.", "Chris Hemsworth", "Mark Ruffalo"],
955 | "genres": ["Action", "Adventure", "Sci-Fi"],
956 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjMxNjY2MDU1OV5BMl5BanBnXkFtZTgwNzY1MTUwNTM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
957 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjMxNjY2MDU1OV5BMl5BanBnXkFtZTgwNzY1MTUwNTM@._V1_QL75_UX285_CR0,0,285,422_.jpg",
958 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
959 | "rating": "nc-17"
960 | },
961 | {
962 | "id": 67,
963 | "title": "Idi i smotri",
964 | "description": "After finding an old rifle, a young boy joins the Soviet resistance movement against ruthless German forces and experiences the horrors of World War II.",
965 | "yearLaunched": "1985",
966 | "link": "/watch/67",
967 | "castMembers": [
968 | "Aleksey Kravchenko",
969 | "Olga Mironova",
970 | "Liubomiras Laucevicius"
971 | ],
972 | "genres": ["Drama", "Thriller", "War"],
973 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BODM4Njg0NTAtYjI5Ny00ZjAxLTkwNmItZTMxMWU5M2U3M2RjXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,5,190,281_.jpg",
974 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BODM4Njg0NTAtYjI5Ny00ZjAxLTkwNmItZTMxMWU5M2U3M2RjXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,8,285,422_.jpg",
975 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
976 | "rating": "nc-17"
977 | },
978 | {
979 | "id": 68,
980 | "title": "Amadeus",
981 | "description": "The life, success and troubles of ",
982 | "yearLaunched": "1984",
983 | "link": "/watch/68",
984 | "castMembers": ["F. Murray Abraham", "Tom Hulce", "Elizabeth Berridge"],
985 | "genres": ["Biography", "Drama", "Music"],
986 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNWJlNzUzNGMtYTAwMS00ZjI2LWFmNWQtODcxNWUxODA5YmU1XkEyXkFqcGdeQXVyNTIzOTk5ODM@._V1_QL75_UX190_CR0,7,190,281_.jpg",
987 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNWJlNzUzNGMtYTAwMS00ZjI2LWFmNWQtODcxNWUxODA5YmU1XkEyXkFqcGdeQXVyNTIzOTk5ODM@._V1_QL75_UX285_CR0,11,285,422_.jpg",
988 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
989 | "rating": "pg-13"
990 | },
991 | {
992 | "id": 69,
993 | "title": "Coco",
994 | "description": "Aspiring musician Miguel, confronted with his family's ancestral ban on music, enters the Land of the Dead to find his great-great-grandfather, a legendary singer.",
995 | "yearLaunched": "I (2017)",
996 | "link": "/watch/69",
997 | "castMembers": [
998 | "Anthony Gonzalez",
999 | "Gael García Bernal",
1000 | "Benjamin Bratt"
1001 | ],
1002 | "genres": ["Animation", "Adventure", "Drama"],
1003 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYjQ5NjM0Y2YtNjZkNC00ZDhkLWJjMWItN2QyNzFkMDE3ZjAxXkEyXkFqcGdeQXVyODIxMzk5NjA@._V1_QL75_UY281_CR4,0,190,281_.jpg",
1004 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYjQ5NjM0Y2YtNjZkNC00ZDhkLWJjMWItN2QyNzFkMDE3ZjAxXkEyXkFqcGdeQXVyODIxMzk5NjA@._V1_QL75_UY422_CR5,0,285,422_.jpg",
1005 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1006 | "rating": "pg-13"
1007 | },
1008 | {
1009 | "id": 70,
1010 | "title": "Kimi no na wa.",
1011 | "description": "Two teenagers share a profound, magical connection upon discovering they are swapping bodies. Things manage to become even more complicated when the boy and girl decide to meet in person.",
1012 | "yearLaunched": "2016",
1013 | "link": "/watch/70",
1014 | "castMembers": ["Ryunosuke Kamiki", "Mone Kamishiraishi", "Ryo Narita"],
1015 | "genres": ["Animation", "Drama", "Fantasy"],
1016 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BODRmZDVmNzUtZDA4ZC00NjhkLWI2M2UtN2M0ZDIzNDcxYThjL2ltYWdlXkEyXkFqcGdeQXVyNTk0MzMzODA@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1017 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BODRmZDVmNzUtZDA4ZC00NjhkLWI2M2UtN2M0ZDIzNDcxYThjL2ltYWdlXkEyXkFqcGdeQXVyNTk0MzMzODA@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1018 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1019 | "rating": "pg"
1020 | },
1021 | {
1022 | "id": 71,
1023 | "title": "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb",
1024 | "description": "An insane American general orders a bombing attack on the Soviet Union, triggering a path to nuclear holocaust that a war room full of politicians and generals frantically tries to stop.",
1025 | "yearLaunched": "1964",
1026 | "link": "/watch/71",
1027 | "castMembers": ["Peter Sellers", "George C. Scott", "Sterling Hayden"],
1028 | "genres": ["Comedy", "War"],
1029 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMWMxYjZkOWUtM2FjMi00MmI1LThkNzQtNTM5Y2E2ZGQ2NGFhXkEyXkFqcGdeQXVyMTA0MTM5NjI2._V1_QL75_UX190_CR0,2,190,281_.jpg",
1030 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMWMxYjZkOWUtM2FjMi00MmI1LThkNzQtNTM5Y2E2ZGQ2NGFhXkEyXkFqcGdeQXVyMTA0MTM5NjI2._V1_QL75_UX285_CR0,3,285,422_.jpg",
1031 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1032 | "rating": "nc-17"
1033 | },
1034 | {
1035 | "id": 72,
1036 | "title": "WALL·E",
1037 | "description": "In the distant future, a small waste-collecting robot inadvertently embarks on a space journey that will ultimately decide the fate of mankind.",
1038 | "yearLaunched": "2008",
1039 | "link": "/watch/72",
1040 | "castMembers": ["Ben Burtt", "Elissa Knight", "Jeff Garlin"],
1041 | "genres": ["Animation", "Adventure", "Family"],
1042 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMjExMTg5OTU0NF5BMl5BanBnXkFtZTcwMjMxMzMzMw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1043 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMjExMTg5OTU0NF5BMl5BanBnXkFtZTcwMjMxMzMzMw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1044 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1045 | "rating": "nc-17"
1046 | },
1047 | {
1048 | "id": 73,
1049 | "title": "The Lives of Others",
1050 | "description": "In 1984 East Berlin, an agent of the secret police, conducting surveillance on a writer and his lover, finds himself becoming increasingly absorbed by their lives.",
1051 | "yearLaunched": "2006",
1052 | "link": "/watch/73",
1053 | "castMembers": ["Ulrich Mühe", "Martina Gedeck", "Sebastian Koch"],
1054 | "genres": ["Drama", "Mystery", "Thriller"],
1055 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNmQyNmJjM2ItNTQzYi00ZjMxLWFjMDYtZjUyN2YwZDk5YWQ2XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX190_CR0,1,190,281_.jpg",
1056 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNmQyNmJjM2ItNTQzYi00ZjMxLWFjMDYtZjUyN2YwZDk5YWQ2XkEyXkFqcGdeQXVyMjUzOTY1NTc@._V1_QL75_UX285_CR0,2,285,422_.jpg",
1057 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1058 | "rating": "pg"
1059 | },
1060 | {
1061 | "id": 74,
1062 | "title": "3 Idiots",
1063 | "description": "Two friends are searching for their long lost companion. They revisit their college days and recall the memories of their friend who inspired them to think differently, even as the rest of the world called them \"idiots\".",
1064 | "yearLaunched": "2009",
1065 | "link": "/watch/74",
1066 | "castMembers": ["Aamir Khan", "Madhavan", "Mona Singh"],
1067 | "genres": ["Comedy", "Drama"],
1068 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNTkyOGVjMGEtNmQzZi00NzFlLTlhOWQtODYyMDc2ZGJmYzFhXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY281_CR3,0,190,281_.jpg",
1069 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNTkyOGVjMGEtNmQzZi00NzFlLTlhOWQtODYyMDc2ZGJmYzFhXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY422_CR4,0,285,422_.jpg",
1070 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1071 | "rating": "r"
1072 | },
1073 | {
1074 | "id": 75,
1075 | "title": "Capharnaüm",
1076 | "description": "While serving a five-year sentence for a violent crime, a 12-year-old boy sues his parents for neglect.",
1077 | "yearLaunched": "2018",
1078 | "link": "/watch/75",
1079 | "castMembers": [
1080 | "Zain Al Rafeea",
1081 | "Yordanos Shiferaw",
1082 | "Boluwatife Treasure Bankole"
1083 | ],
1084 | "genres": ["Drama"],
1085 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMmExNzU2ZWMtYzUwYi00YmM2LTkxZTQtNmVhNjY0NTMyMWI2XkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UY281_CR1,0,190,281_.jpg",
1086 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMmExNzU2ZWMtYzUwYi00YmM2LTkxZTQtNmVhNjY0NTMyMWI2XkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UY422_CR1,0,285,422_.jpg",
1087 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1088 | "rating": "pg-13"
1089 | },
1090 | {
1091 | "id": 76,
1092 | "title": "Das Boot",
1093 | "description": "A German U-boat stalks the frigid waters of the North Atlantic as its young crew experience the sheer terror and claustrophobic life of a submariner in World War II.",
1094 | "yearLaunched": "1981",
1095 | "link": "/watch/76",
1096 | "castMembers": [
1097 | "Jürgen Prochnow",
1098 | "Herbert Grönemeyer",
1099 | "Klaus Wennemann"
1100 | ],
1101 | "genres": ["Drama", "War"],
1102 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNDBjMWUxNTUtNjZiNi00YzJhLTgzNzUtMTRiY2FkZmMzYTNjXkEyXkFqcGdeQXVyMTUzMDUzNTI3._V1_QL75_UX190_CR0,3,190,281_.jpg",
1103 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNDBjMWUxNTUtNjZiNi00YzJhLTgzNzUtMTRiY2FkZmMzYTNjXkEyXkFqcGdeQXVyMTUzMDUzNTI3._V1_QL75_UX285_CR0,6,285,422_.jpg",
1104 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1105 | "rating": "r"
1106 | },
1107 | {
1108 | "id": 77,
1109 | "title": "Sunset Blvd.",
1110 | "description": "A screenwriter develops a dangerous relationship with a faded film star determined to make a triumphant return.",
1111 | "yearLaunched": "1950",
1112 | "link": "/watch/77",
1113 | "castMembers": ["William Holden", "Gloria Swanson", "Erich von Stroheim"],
1114 | "genres": ["Drama", "Film-Noir"],
1115 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTU0NTkyNzYwMF5BMl5BanBnXkFtZTgwMDU0NDk5MTI@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1116 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTU0NTkyNzYwMF5BMl5BanBnXkFtZTgwMDU0NDk5MTI@._V1_QL75_UX285_CR0,4,285,422_.jpg",
1117 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1118 | "rating": "nc-17"
1119 | },
1120 | {
1121 | "id": 78,
1122 | "title": "Paths of Glory",
1123 | "description": "After refusing to attack an enemy position, a general accuses the soldiers of cowardice and their commanding officer must defend them.",
1124 | "yearLaunched": "1957",
1125 | "link": "/watch/78",
1126 | "castMembers": ["Kirk Douglas", "Ralph Meeker", "Adolphe Menjou"],
1127 | "genres": ["Drama", "War"],
1128 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTI5Nzc0OTMtYzBkMS00NjkxLThmM2UtNjM2ODgxN2M5NjNkXkEyXkFqcGdeQXVyNjQ2MjQ5NzM@._V1_QL75_UX190_CR0,5,190,281_.jpg",
1129 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTI5Nzc0OTMtYzBkMS00NjkxLThmM2UtNjM2ODgxN2M5NjNkXkEyXkFqcGdeQXVyNjQ2MjQ5NzM@._V1_QL75_UX285_CR0,7,285,422_.jpg",
1130 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1131 | "rating": "r"
1132 | },
1133 | {
1134 | "id": 79,
1135 | "title": "Witness for the Prosecution",
1136 | "description": "A veteran British barrister must defend his client in a murder trial that has surprise after surprise.",
1137 | "yearLaunched": "1957",
1138 | "link": "/watch/79",
1139 | "castMembers": ["Tyrone Power", "Marlene Dietrich", "Charles Laughton"],
1140 | "genres": ["Crime", "Drama", "Mystery"],
1141 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNDQwODU5OWYtNDcyNi00MDQ1LThiOGMtZDkwNWJiM2Y3MDg0XkEyXkFqcGdeQXVyMDI2NDg0NQ@@._V1_QL75_UX190_CR0,5,190,281_.jpg",
1142 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNDQwODU5OWYtNDcyNi00MDQ1LThiOGMtZDkwNWJiM2Y3MDg0XkEyXkFqcGdeQXVyMDI2NDg0NQ@@._V1_QL75_UX285_CR0,7,285,422_.jpg",
1143 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1144 | "rating": "r"
1145 | },
1146 | {
1147 | "id": 80,
1148 | "title": "The Great Dictator",
1149 | "description": "Dictator Adenoid Hynkel tries to expand his empire while a poor Jewish barber tries to avoid persecution from Hynkel's regime.",
1150 | "yearLaunched": "1940",
1151 | "link": "/watch/80",
1152 | "castMembers": ["Charles Chaplin", "Paulette Goddard", "Jack Oakie"],
1153 | "genres": ["Comedy", "Drama", "War"],
1154 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMmExYWJjNTktNGUyZS00ODhmLTkxYzAtNWIzOGEyMGNiMmUwXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY281_CR0,0,190,281_.jpg",
1155 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMmExYWJjNTktNGUyZS00ODhmLTkxYzAtNWIzOGEyMGNiMmUwXkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UY422_CR0,0,285,422_.jpg",
1156 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1157 | "rating": "pg-13"
1158 | },
1159 | {
1160 | "id": 81,
1161 | "title": "Tengoku to jigoku",
1162 | "description": "An executive of a Yokohama shoe company becomes a victim of extortion when his chauffeur's son is kidnapped by mistake and held for ransom.",
1163 | "yearLaunched": "1963",
1164 | "link": "/watch/81",
1165 | "castMembers": ["Toshirô Mifune", "Yutaka Sada", "Tatsuya Nakadai"],
1166 | "genres": ["Crime", "Drama", "Mystery"],
1167 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTI4NTNhZDMtMWNkZi00MTRmLWJmZDQtMmJkMGVmZTEzODlhXkEyXkFqcGdeQXVyNjc1NTYyMjg@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1168 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTI4NTNhZDMtMWNkZi00MTRmLWJmZDQtMmJkMGVmZTEzODlhXkEyXkFqcGdeQXVyNjc1NTYyMjg@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1169 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1170 | "rating": "pg"
1171 | },
1172 | {
1173 | "id": 82,
1174 | "title": "Inglourious Basterds",
1175 | "description": "In Nazi-occupied France during World War II, a plan to assassinate Nazi leaders by a group of Jewish U.S. soldiers coincides with a theatre owner's vengeful plans for the same.",
1176 | "yearLaunched": "2009",
1177 | "link": "/watch/82",
1178 | "castMembers": ["Brad Pitt", "Diane Kruger", "Eli Roth"],
1179 | "genres": ["Adventure", "Drama", "War"],
1180 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTJiNDEzOWYtMTVjOC00ZjlmLWE0NGMtZmE1OWVmZDQ2OWJhXkEyXkFqcGdeQXVyNTIzOTk5ODM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1181 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTJiNDEzOWYtMTVjOC00ZjlmLWE0NGMtZmE1OWVmZDQ2OWJhXkEyXkFqcGdeQXVyNTIzOTk5ODM@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1182 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1183 | "rating": "nc-17"
1184 | },
1185 | {
1186 | "id": 83,
1187 | "title": "American Beauty",
1188 | "description": "A sexually frustrated suburban father has a mid-life crisis after becoming infatuated with his daughter's best friend.",
1189 | "yearLaunched": "1999",
1190 | "link": "/watch/83",
1191 | "castMembers": ["Kevin Spacey", "Annette Bening", "Thora Birch"],
1192 | "genres": ["Drama"],
1193 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNTBmZWJkNjctNDhiNC00MGE2LWEwOTctZTk5OGVhMWMyNmVhXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1194 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNTBmZWJkNjctNDhiNC00MGE2LWEwOTctZTk5OGVhMWMyNmVhXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1195 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1196 | "rating": "pg-13"
1197 | },
1198 | {
1199 | "id": 84,
1200 | "title": "2001: A Space Odyssey",
1201 | "description": "After uncovering a mysterious artifact buried beneath the Lunar surface, a spacecraft is sent to Jupiter to find its origins: a spacecraft manned by two men and the supercomputer HAL 9000.",
1202 | "yearLaunched": "1968",
1203 | "link": "/watch/84",
1204 | "castMembers": ["Keir Dullea", "Gary Lockwood", "William Sylvester"],
1205 | "genres": ["Adventure", "Sci-Fi"],
1206 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMmNlYzRiNDctZWNhMi00MzI4LThkZTctMTUzMmZkMmFmNThmXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1207 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMmNlYzRiNDctZWNhMi00MzI4LThkZTctMTUzMmZkMmFmNThmXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1208 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1209 | "rating": "pg"
1210 | },
1211 | {
1212 | "id": 85,
1213 | "title": "Requiem for a Dream",
1214 | "description": "The drug-induced utopias of four Coney Island people are shattered when their addictions run deep.",
1215 | "yearLaunched": "2000",
1216 | "link": "/watch/85",
1217 | "castMembers": ["Ellen Burstyn", "Jared Leto", "Jennifer Connelly"],
1218 | "genres": ["Drama"],
1219 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTdiNzJlOWUtNWMwNS00NmFlLWI0YTEtZmI3YjIzZWUyY2Y3XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1220 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTdiNzJlOWUtNWMwNS00NmFlLWI0YTEtZmI3YjIzZWUyY2Y3XkEyXkFqcGdeQXVyNjU0OTQ0OTY@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1221 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1222 | "rating": "pg"
1223 | },
1224 | {
1225 | "id": 86,
1226 | "title": "Good Will Hunting",
1227 | "description": "Will Hunting, a janitor at M.I.T., has a gift for mathematics, but needs help from a psychologist to find direction in his life.",
1228 | "yearLaunched": "1997",
1229 | "link": "/watch/86",
1230 | "castMembers": ["Robin Williams", "Matt Damon", "Ben Affleck"],
1231 | "genres": ["Drama", "Romance"],
1232 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTI0MzcxMTYtZDVkMy00NjY1LTgyMTYtZmUxN2M3NmQ2NWJhXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,4,190,281_.jpg",
1233 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTI0MzcxMTYtZDVkMy00NjY1LTgyMTYtZmUxN2M3NmQ2NWJhXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,7,285,422_.jpg",
1234 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1235 | "rating": "r"
1236 | },
1237 | {
1238 | "id": 87,
1239 | "title": "Eternal Sunshine of the Spotless Mind",
1240 | "description": "When their relationship turns sour, a couple undergoes a medical procedure to have each other erased from their memories for ever.",
1241 | "yearLaunched": "2004",
1242 | "link": "/watch/87",
1243 | "castMembers": ["Jim Carrey", "Kate Winslet", "Tom Wilkinson"],
1244 | "genres": ["Drama", "Romance", "Sci-Fi"],
1245 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTY4NzcwODg3Nl5BMl5BanBnXkFtZTcwNTEwOTMyMw@@._V1_QL75_UX190_CR0,0,190,281_.jpg",
1246 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTY4NzcwODg3Nl5BMl5BanBnXkFtZTcwNTEwOTMyMw@@._V1_QL75_UX285_CR0,0,285,422_.jpg",
1247 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1248 | "rating": "pg-13"
1249 | },
1250 | {
1251 | "id": 88,
1252 | "title": "Braveheart",
1253 | "description": "Scottish warrior William Wallace leads his countrymen in a rebellion to free his homeland from the tyranny of King Edward I of England.",
1254 | "yearLaunched": "1995",
1255 | "link": "/watch/88",
1256 | "castMembers": ["Mel Gibson", "Sophie Marceau", "Patrick McGoohan"],
1257 | "genres": ["Biography", "Drama", "History"],
1258 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMzkzMmU0YTYtOWM3My00YzBmLWI0YzctOGYyNTkwMWE5MTJkXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY281_CR0,0,190,281_.jpg",
1259 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMzkzMmU0YTYtOWM3My00YzBmLWI0YzctOGYyNTkwMWE5MTJkXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UY422_CR0,0,285,422_.jpg",
1260 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1261 | "rating": "pg"
1262 | },
1263 | {
1264 | "id": 89,
1265 | "title": "Reservoir Dogs",
1266 | "description": "When a simple jewelry heist goes horribly wrong, the surviving criminals begin to suspect that one of them is a police informant.",
1267 | "yearLaunched": "1992",
1268 | "link": "/watch/89",
1269 | "castMembers": ["Harvey Keitel", "Tim Roth", "Michael Madsen"],
1270 | "genres": ["Crime", "Thriller"],
1271 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZmExNmEwYWItYmQzOS00YjA5LTk2MjktZjEyZDE1Y2QxNjA1XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX190_CR0,1,190,281_.jpg",
1272 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZmExNmEwYWItYmQzOS00YjA5LTk2MjktZjEyZDE1Y2QxNjA1XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_QL75_UX285_CR0,2,285,422_.jpg",
1273 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1274 | "rating": "nc-17"
1275 | },
1276 | {
1277 | "id": 90,
1278 | "title": "Once Upon a Time in America",
1279 | "description": "A former Prohibition-era Jewish gangster returns to the Lower East Side of Manhattan 35 years later, where he must once again confront the ghosts and regrets of his old life.",
1280 | "yearLaunched": "1984",
1281 | "link": "/watch/90",
1282 | "castMembers": ["Robert De Niro", "James Woods", "Elizabeth McGovern"],
1283 | "genres": ["Crime", "Drama"],
1284 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMmQzZjdmZDAtOGE2Yy00MmUwLTljYzgtZTMwMjk3ZDdiOWUyXkEyXkFqcGdeQXVyNjc5NjEzNA@@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1285 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMmQzZjdmZDAtOGE2Yy00MmUwLTljYzgtZTMwMjk3ZDdiOWUyXkEyXkFqcGdeQXVyNjc5NjEzNA@@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1286 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1287 | "rating": "r"
1288 | },
1289 | {
1290 | "id": 91,
1291 | "title": "Jagten",
1292 | "description": "A teacher lives a lonely life, all the while struggling over his son's custody. His life slowly gets better as he finds love and receives good news from his son, but his new luck is about to be brutally shattered by an innocent little lie.",
1293 | "yearLaunched": "2012",
1294 | "link": "/watch/91",
1295 | "castMembers": [
1296 | "Mads Mikkelsen",
1297 | "Thomas Bo Larsen",
1298 | "Annika Wedderkopp"
1299 | ],
1300 | "genres": ["Drama"],
1301 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTg2NDg3ODg4NF5BMl5BanBnXkFtZTcwNzk3NTc3Nw@@._V1_QL75_UY281_CR4,0,190,281_.jpg",
1302 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTg2NDg3ODg4NF5BMl5BanBnXkFtZTcwNzk3NTc3Nw@@._V1_QL75_UY422_CR5,0,285,422_.jpg",
1303 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1304 | "rating": "pg-13"
1305 | },
1306 | {
1307 | "id": 92,
1308 | "title": "Toy Story",
1309 | "description": "A cowboy doll is profoundly threatened and jealous when a new spaceman action figure supplants him as top toy in a boy's bedroom.",
1310 | "yearLaunched": "1995",
1311 | "link": "/watch/92",
1312 | "castMembers": ["Tom Hanks", "Tim Allen", "Don Rickles"],
1313 | "genres": ["Animation", "Adventure", "Comedy"],
1314 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMDU2ZWJlMjktMTRhMy00ZTA5LWEzNDgtYmNmZTEwZTViZWJkXkEyXkFqcGdeQXVyNDQ2OTk4MzI@._V1_QL75_UX190_CR0,1,190,281_.jpg",
1315 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMDU2ZWJlMjktMTRhMy00ZTA5LWEzNDgtYmNmZTEwZTViZWJkXkEyXkFqcGdeQXVyNDQ2OTk4MzI@._V1_QL75_UX285_CR0,2,285,422_.jpg",
1316 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1317 | "rating": "nc-17"
1318 | },
1319 | {
1320 | "id": 93,
1321 | "title": "Star Wars: Episode VI - Return of the Jedi",
1322 | "description": "After rescuing Han Solo from Jabba the Hutt, the Rebels attempt to destroy the second Death Star, while Luke struggles to help Darth Vader back from the dark side.",
1323 | "yearLaunched": "1983",
1324 | "link": "/watch/93",
1325 | "castMembers": ["Mark Hamill", "Harrison Ford", "Carrie Fisher"],
1326 | "genres": ["Action", "Adventure", "Fantasy"],
1327 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOWZlMjFiYzgtMTUzNC00Y2IzLTk1NTMtZmNhMTczNTk0ODk1XkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_QL75_UX190_CR0,7,190,281_.jpg",
1328 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOWZlMjFiYzgtMTUzNC00Y2IzLTk1NTMtZmNhMTczNTk0ODk1XkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_QL75_UX285_CR0,10,285,422_.jpg",
1329 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1330 | "rating": "pg-13"
1331 | },
1332 | {
1333 | "id": 94,
1334 | "title": "Mononoke-hime",
1335 | "description": "On a journey to find the cure for a Tatarigami's curse, Ashitaka finds himself in the middle of a war between the forest gods and Tatara, a mining colony. In this quest he also meets San, the Mononoke Hime.",
1336 | "yearLaunched": "1997",
1337 | "link": "/watch/94",
1338 | "castMembers": ["Yôji Matsuda", "Yuriko Ishida", "Yûko Tanaka"],
1339 | "genres": ["Animation", "Action", "Adventure"],
1340 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BNTZkYmI0MmEtNGFlZC00OWZjLWFjMmItMjk1OWZkOWJiZGVjXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1341 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BNTZkYmI0MmEtNGFlZC00OWZjLWFjMmItMjk1OWZkOWJiZGVjXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1342 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1343 | "rating": "pg-13"
1344 | },
1345 | {
1346 | "id": 95,
1347 | "title": "Toy Story 3",
1348 | "description": "The toys are mistakenly delivered to a day-care center instead of the attic right before Andy leaves for college, and it's up to Woody to convince the other toys that they weren't abandoned and to return home.",
1349 | "yearLaunched": "2010",
1350 | "link": "/watch/95",
1351 | "castMembers": ["Tom Hanks", "Tim Allen", "Joan Cusack"],
1352 | "genres": ["Animation", "Adventure", "Comedy"],
1353 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMTgxOTY4Mjc0MF5BMl5BanBnXkFtZTcwNTA4MDQyMw@@._V1_QL75_UY281_CR5,0,190,281_.jpg",
1354 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMTgxOTY4Mjc0MF5BMl5BanBnXkFtZTcwNTA4MDQyMw@@._V1_QL75_UY422_CR6,0,285,422_.jpg",
1355 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1356 | "rating": "nc-17"
1357 | },
1358 | {
1359 | "id": 96,
1360 | "title": "Lawrence of Arabia",
1361 | "description": "The story of ",
1362 | "yearLaunched": "1962",
1363 | "link": "/watch/96",
1364 | "castMembers": ["Peter O'Toole", "Alec Guinness", "Anthony Quinn"],
1365 | "genres": ["Adventure", "Biography", "Drama"],
1366 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYWY5ZjhjNGYtZmI2Ny00ODM0LWFkNzgtZmI1YzA2N2MxMzA0XkEyXkFqcGdeQXVyNjUwNzk3NDc@._V1_QL75_UY281_CR3,0,190,281_.jpg",
1367 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYWY5ZjhjNGYtZmI2Ny00ODM0LWFkNzgtZmI1YzA2N2MxMzA0XkEyXkFqcGdeQXVyNjUwNzk3NDc@._V1_QL75_UY422_CR4,0,285,422_.jpg",
1368 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1369 | "rating": "r"
1370 | },
1371 | {
1372 | "id": 97,
1373 | "title": "Citizen Kane",
1374 | "description": "Following the death of publishing tycoon Charles Foster Kane, reporters scramble to uncover the meaning of his final utterance: 'Rosebud.'",
1375 | "yearLaunched": "1941",
1376 | "link": "/watch/97",
1377 | "castMembers": ["Orson Welles", "Joseph Cotten", "Dorothy Comingore"],
1378 | "genres": ["Drama", "Mystery"],
1379 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYjBiOTYxZWItMzdiZi00NjlkLWIzZTYtYmFhZjhiMTljOTdkXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1380 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYjBiOTYxZWItMzdiZi00NjlkLWIzZTYtYmFhZjhiMTljOTdkXkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1381 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1382 | "rating": "pg-13"
1383 | },
1384 | {
1385 | "id": 98,
1386 | "title": "Singin' in the Rain",
1387 | "description": "A silent film star falls for a chorus girl just as he and his delusionally jealous screen partner are trying to make the difficult transition to talking pictures in 1920s Hollywood.",
1388 | "yearLaunched": "1952",
1389 | "link": "/watch/98",
1390 | "castMembers": ["Gene Kelly", "Donald O'Connor", "Debbie Reynolds"],
1391 | "genres": ["Comedy", "Musical", "Romance"],
1392 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZDRjNGViMjQtOThlMi00MTA3LThkYzQtNzJkYjBkMGE0YzE1XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UY281_CR1,0,190,281_.jpg",
1393 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZDRjNGViMjQtOThlMi00MTA3LThkYzQtNzJkYjBkMGE0YzE1XkEyXkFqcGdeQXVyNDYyMDk5MTU@._V1_QL75_UY422_CR2,0,285,422_.jpg",
1394 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1395 | "rating": "r"
1396 | },
1397 | {
1398 | "id": 99,
1399 | "title": "M - Eine Stadt sucht einen Mörder",
1400 | "description": "When the police in a German city are unable to catch a child-murderer, other criminals join in the manhunt.",
1401 | "yearLaunched": "1931",
1402 | "link": "/watch/99",
1403 | "castMembers": ["Peter Lorre", "Ellen Widmann", "Inge Landgut"],
1404 | "genres": ["Crime", "Mystery", "Thriller"],
1405 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BODA4ODk3OTEzMF5BMl5BanBnXkFtZTgwMTQ2ODMwMzE@._V1_QL75_UX190_CR0,2,190,281_.jpg",
1406 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BODA4ODk3OTEzMF5BMl5BanBnXkFtZTgwMTQ2ODMwMzE@._V1_QL75_UX285_CR0,3,285,422_.jpg",
1407 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1408 | "rating": "r"
1409 | },
1410 | {
1411 | "id": 100,
1412 | "title": "Ikiru",
1413 | "description": "A bureaucrat tries to find meaning in his life after he discovers he has terminal cancer.",
1414 | "yearLaunched": "1952",
1415 | "link": "/watch/100",
1416 | "castMembers": ["Takashi Shimura", "Nobuo Kaneko", "Shin'ichi Himori"],
1417 | "genres": ["Drama"],
1418 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYWM1YmZkNTctZDAwNy00ZTY4LWFjMTktYzU4ZjViMmU1OTJmXkEyXkFqcGdeQXVyMTA0MTM5NjI2._V1_QL75_UX190_CR0,2,190,281_.jpg",
1419 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYWM1YmZkNTctZDAwNy00ZTY4LWFjMTktYzU4ZjViMmU1OTJmXkEyXkFqcGdeQXVyMTA0MTM5NjI2._V1_QL75_UX285_CR0,3,285,422_.jpg",
1420 | "videoFileURL": "https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4",
1421 | "rating": "r"
1422 | },
1423 | {
1424 | "id": 101,
1425 | "title": "Squid Game",
1426 | "description": "Hundreds of cash-strapped players accept a strange invitation to compete in children's games. Inside, a tempting prize awaits — with deadly high stakes.",
1427 | "yearLaunched": "2021",
1428 | "link": "/watch/101",
1429 | "castMembers": ["Lee Jung-jae", "Park Hae-soo", "Wi Ha-jun"],
1430 | "genres": ["Action", "Drama", "Mystery"],
1431 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BYWE3MDVkN2EtNjQ5MS00ZDQ4LTliNzYtMjc2YWMzMDEwMTA3XkEyXkFqcGdeQXVyMTEzMTI1Mjk3._V1_.jpg",
1432 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BYWE3MDVkN2EtNjQ5MS00ZDQ4LTliNzYtMjc2YWMzMDEwMTA3XkEyXkFqcGdeQXVyMTEzMTI1Mjk3._V1_.jpg",
1433 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/21/09/02/09/19560314_hd_013.mp4",
1434 | "rating": "r"
1435 | },
1436 | {
1437 | "id": 102,
1438 | "title": "Space Force",
1439 | "description": "A four-star general begrudgingly teams up with an eccentric scientist to get the U.S. military's newest agency — Space Force — ready for lift-off.",
1440 | "yearLaunched": "2020",
1441 | "link": "/watch/102",
1442 | "castMembers": ["Steve Carell", "John Malkovich", "Ben Schwartz"],
1443 | "genres": ["Comedy"],
1444 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZTFiNjdjZTEtZWMwNy00NGQ5LWE4ZWQtZjI2YTI3MzMwMGIyXkEyXkFqcGdeQXVyNTA3MTU2MjE@._V1_.jpg",
1445 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZTFiNjdjZTEtZWMwNy00NGQ5LWE4ZWQtZjI2YTI3MzMwMGIyXkEyXkFqcGdeQXVyNTA3MTU2MjE@._V1_.jpg",
1446 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/20/05/05/15//19555893_hd_013.mp4",
1447 | "rating": "pg-13"
1448 | },
1449 | {
1450 | "id": 103,
1451 | "title": "Stranger Things",
1452 | "description": "A group of young friends must confront terrifying forces in order to get him back.",
1453 | "yearLaunched": "2016",
1454 | "link": "/watch/103",
1455 | "castMembers": ["Millie Bobby Brown", "Finn Wolfhard", "Winona Ryder"],
1456 | "genres": ["Drama", "Fantasy", "Horror"],
1457 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMDZkYmVhNjMtNWU4MC00MDQxLWE3MjYtZGMzZWI1ZjhlOWJmXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_.jpg",
1458 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMDZkYmVhNjMtNWU4MC00MDQxLWE3MjYtZGMzZWI1ZjhlOWJmXkEyXkFqcGdeQXVyMTkxNjUyNQ@@._V1_.jpg",
1459 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/16/06/10/15/19541945_hd_013.mp4",
1460 | "rating": "pg-13"
1461 | },
1462 | {
1463 | "id": 104,
1464 | "title": "Rick and Morty",
1465 | "description": "Brilliant but boozy scientist Rick hijacks his fretful teenage grandson, Morty, for wild escapades in other worlds and alternate dimensions.",
1466 | "yearLaunched": "2013",
1467 | "link": "/watch/104",
1468 | "castMembers": ["Justin Roiland", "Chris Parnell", "Spencer Grammer"],
1469 | "genres": ["Animation", "Adventure", "Comedy"],
1470 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BZjRjOTFkOTktZWUzMi00YzMyLThkMmYtMjEwNmQyNzliYTNmXkEyXkFqcGdeQXVyNzQ1ODk3MTQ@._V1_.jpg",
1471 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BZjRjOTFkOTktZWUzMi00YzMyLThkMmYtMjEwNmQyNzliYTNmXkEyXkFqcGdeQXVyNzQ1ODk3MTQ@._V1_.jpg",
1472 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/20/04/02/12//19555646_hd_013.mp4",
1473 | "rating": "pg-13"
1474 | },
1475 | {
1476 | "id": 105,
1477 | "title": "Dark",
1478 | "description": "A missing child sets four families on a frantic hunt for answers as they unearth a mind-bending mystery that spans three generations.",
1479 | "yearLaunched": "2017",
1480 | "link": "/watch/105",
1481 | "castMembers": ["Louis Hofmann", "Karoline Eichhorn", "Lisa Vicari"],
1482 | "genres": ["Crime", "Drama", "Mystery"],
1483 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BOTk2NzUyOTctZDdlMS00MDJlLTgzNTEtNzQzYjFhNjA0YjBjXkEyXkFqcGdeQXVyMjg1NDcxNDE@._V1_.jpg",
1484 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BOTk2NzUyOTctZDdlMS00MDJlLTgzNTEtNzQzYjFhNjA0YjBjXkEyXkFqcGdeQXVyMjg1NDcxNDE@._V1_.jpg",
1485 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/17/11/09/11/19547112_hd_013.mp4",
1486 | "rating": "r"
1487 | },
1488 | {
1489 | "id": 106,
1490 | "title": "Black Mirror",
1491 | "description": "This sci-fi anthology series explores a twisted, high-tech near-future where humanity's greatest innovations and darkest instincts collide.",
1492 | "yearLaunched": "2011",
1493 | "link": "/watch/106",
1494 | "castMembers": ["Daniel Lapaine", "Hannah John-Kamen", "Michaela Coel"],
1495 | "genres": ["Drama", "Sci-Fi", "Thriller"],
1496 | "thumbFileURL": "https://m.media-amazon.com/images/M/MV5BMzhhMjE0YTUtMjBmMS00NTcxLTljN2MtMTBmM2RkOTcyMWE5XkEyXkFqcGdeQXVyNzQ5MTUxNDU@._V1_.jpg",
1497 | "bannerFileURL": "https://m.media-amazon.com/images/M/MV5BMzhhMjE0YTUtMjBmMS00NTcxLTljN2MtMTBmM2RkOTcyMWE5XkEyXkFqcGdeQXVyNzQ5MTUxNDU@._V1_.jpg",
1498 | "videoFileURL": "https://tr.vid.web.acsta.net/uk/medias/nmedia/90/19/05/21/16//19552983_hd_013.mp4",
1499 | "rating": "r"
1500 | }
1501 | ]
1502 | }
1503 |
--------------------------------------------------------------------------------