It is now pissible to play YouTube videos on the native desktop clients. To achieve this we removed the "youtube_player_iframe" package which was used before to play YouTube video, but which only supported web, iOS and Android as target platforms.
On the web we are now using our own implementation to render an iframe with for the YouTube video.
On all other platforms we are now using the "youtube_explode_dart" package to fetch the video urls for a YouTube video and then we display them within our own video player (the "ItemVideoPlayer" widget which was added in https://github.com/feeddeck/feeddeck/pull/51). We also decided to switch the package for the iOS and Android implementation which already worked before, because we are now able to play YouTube videos in fullscreen and we only have to maintain an exception for the web implementation.
The "ItemVideoPlayer" widget now also supports multiple qualities of an video via the "qualities" paramter, which allows a user to switch between the different video qualities which are available for a YouTube video. Last but not least the widget now uses our primary color for the seek bar.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/feeddeck/feeddeck/pull/56
**Author:** [@ricoberger](https://github.com/ricoberger)
**Created:** 10/29/2023
**Status:** ✅ Merged
**Merged:** 10/29/2023
**Merged by:** [@ricoberger](https://github.com/ricoberger)
**Base:** `main` ← **Head:** `youtube-add-desktop-support`
---
### 📝 Commits (1)
- [`44547eb`](https://github.com/feeddeck/feeddeck/commit/44547ebb294c116181700871c557520b3ff7bb1e) [youtube] Add Desktop Support
### 📊 Changes
**8 files changed** (+365 additions, -85 deletions)
<details>
<summary>View changed files</summary>
📝 `app/lib/widgets/item/details/item_details_youtube.dart` (+5 -72)
📝 `app/lib/widgets/item/details/utils/item_videos.dart` (+159 -1)
➕ `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video.dart` (+27 -0)
➕ `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_native.dart` (+91 -0)
➕ `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_stub.dart` (+6 -0)
➕ `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_web.dart` (+73 -0)
📝 `app/pubspec.lock` (+3 -11)
📝 `app/pubspec.yaml` (+1 -1)
</details>
### 📄 Description
It is now pissible to play YouTube videos on the native desktop clients. To achieve this we removed the "youtube_player_iframe" package which was used before to play YouTube video, but which only supported web, iOS and Android as target platforms.
On the web we are now using our own implementation to render an iframe with for the YouTube video.
On all other platforms we are now using the "youtube_explode_dart" package to fetch the video urls for a YouTube video and then we display them within our own video player (the "ItemVideoPlayer" widget which was added in https://github.com/feeddeck/feeddeck/pull/51). We also decided to switch the package for the iOS and Android implementation which already worked before, because we are now able to play YouTube videos in fullscreen and we only have to maintain an exception for the web implementation.
The "ItemVideoPlayer" widget now also supports multiple qualities of an video via the "qualities" paramter, which allows a user to switch between the different video qualities which are available for a YouTube video. Last but not least the widget now uses our primary color for the seek bar.
<!--
Keep PR title verbose enough and add prefix telling about what source it touches e.g "[rss] Add feature xyz" or if the
the PR is not realated to a source use "[core]", e.g. "[core] Fix xyz".
If you add a breaking change within your PR you should add ":warning:" to the title,
e.g. ":warning: [core] My breaking change"
-->
<!--
Description of what have been changed. Please also reference an issue, when available.
-->
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/feeddeck/feeddeck/pull/56
Author: @ricoberger
Created: 10/29/2023
Status: ✅ Merged
Merged: 10/29/2023
Merged by: @ricoberger
Base:
main← Head:youtube-add-desktop-support📝 Commits (1)
44547eb[youtube] Add Desktop Support📊 Changes
8 files changed (+365 additions, -85 deletions)
View changed files
📝
app/lib/widgets/item/details/item_details_youtube.dart(+5 -72)📝
app/lib/widgets/item/details/utils/item_videos.dart(+159 -1)➕
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video.dart(+27 -0)➕
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_native.dart(+91 -0)➕
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_stub.dart(+6 -0)➕
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_web.dart(+73 -0)📝
app/pubspec.lock(+3 -11)📝
app/pubspec.yaml(+1 -1)📄 Description
It is now pissible to play YouTube videos on the native desktop clients. To achieve this we removed the "youtube_player_iframe" package which was used before to play YouTube video, but which only supported web, iOS and Android as target platforms.
On the web we are now using our own implementation to render an iframe with for the YouTube video.
On all other platforms we are now using the "youtube_explode_dart" package to fetch the video urls for a YouTube video and then we display them within our own video player (the "ItemVideoPlayer" widget which was added in https://github.com/feeddeck/feeddeck/pull/51). We also decided to switch the package for the iOS and Android implementation which already worked before, because we are now able to play YouTube videos in fullscreen and we only have to maintain an exception for the web implementation.
The "ItemVideoPlayer" widget now also supports multiple qualities of an video via the "qualities" paramter, which allows a user to switch between the different video qualities which are available for a YouTube video. Last but not least the widget now uses our primary color for the seek bar.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.