Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Youtube videos in flutter project embed

I have a Flutter app using youtube_player_iframe: ^5.2.1. On my iPhone 16 Pro Max, videos play fine, but on some devices like Android tablets or smaller screens than iPhone 16 Pro max every video fails inside the in-app player with “This video is unavailable (Error 15)”.

here is my code below

// lib/pages/player_page.dart
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:youtube_player_iframe/youtube_player_iframe.dart';

class PlayerPage extends StatefulWidget {
  final String videoId;
  final String title;
  const PlayerPage({super.key, required this.videoId, required this.title});

  @override
  State<PlayerPage> createState() => _PlayerPageState();
}

class _PlayerPageState extends State<PlayerPage> {
  late final YoutubePlayerController _yt;

  @override
  void initState() {
    super.initState();
    _yt = YoutubePlayerController.fromVideoId(
      videoId: widget.videoId,
      autoPlay: true,
      params: const YoutubePlayerParams(
        showControls: true,
        showFullscreenButton: true,
        strictRelatedVideos: true,
        enableCaption: false,
        playsInline: true,
        enableJavaScript: true,
      ),
    );
  }

  @override
  void dispose() {
    _yt.close();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title:
            Text(widget.title, style: GoogleFonts.baloo2(fontWeight: FontWeight.w700)),
      ),
      body: Center(
        child: AspectRatio(
          aspectRatio: 16 / 9,
          child: YoutubePlayer(controller: _yt),
        ),
      ),
    );
  }
}
like image 377
user2989513 Avatar asked Dec 21 '25 13:12

user2989513


1 Answers

Specify the origin to "https://www.youtube-nocookie.com". The default is "https://www.youtube.com".

Update your code to:

    _yt = YoutubePlayerController.fromVideoId(
      videoId: widget.videoId,
      autoPlay: true,
      params: const YoutubePlayerParams(
        showControls: true,
        showFullscreenButton: true,
        strictRelatedVideos: true,
        enableCaption: false,
        playsInline: true,
        enableJavaScript: true,
        origin: 'https://www.youtube-nocookie.com' // <========== UPDATE HERE
      ),
    );

Source: A comment from a youtube_player_iframe issue about this error.

like image 77
Victor Eronmosele Avatar answered Dec 24 '25 04:12

Victor Eronmosele



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!