The Nitter source now supports playing Piped Videos directly within the app. For this we are checking if the Nitter post contains a piped.video url and if this is the case we are using the newly added ItemPipedVideo widget to render the video player, to allow users to directly play the video within the app.
To support Piped videos we had to create a new ItemPipedVideo widget, which is very similar to the ItemYoutubeVideo widget. This means on the web version of FeedDeck we show the Video via an iframe and on the other platforms via our ItemVideoPlayer widget. The main difference between Piped and YouTube widget is the different client we use to fetch the video urls. Besides the Piped API returns two different stream one for the video and one for the audio, so that we had to add an additional audio paramter to the ItemVideoPlayer widget, which allows us to specify an additional audio source for a video.
NOTE: We had to add support for Piped, because Nitter automatically converts the YouTube urls to the corresponding Piped urls.
🔄 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/136
**Author:** [@ricoberger](https://github.com/ricoberger)
**Created:** 2/10/2024
**Status:** ✅ Merged
**Merged:** 2/11/2024
**Merged by:** [@ricoberger](https://github.com/ricoberger)
**Base:** `main` ← **Head:** `nitter-add-support-for-piped-videos`
---
### 📝 Commits (1)
- [`a4a240e`](https://github.com/feeddeck/feeddeck/commit/a4a240e7e24db784494451c8e4bd1eb6f6a0414f) [nitter] Add Support for Piped Videos
### 📊 Changes
**9 files changed** (+355 additions, -35 deletions)
<details>
<summary>View changed files</summary>
📝 `app/lib/widgets/item/details/item_details_nitter.dart` (+63 -20)
➕ `app/lib/widgets/item/details/utils/item_piped/item_piped_video.dart` (+20 -0)
➕ `app/lib/widgets/item/details/utils/item_piped/item_piped_video_native.dart` (+125 -0)
➕ `app/lib/widgets/item/details/utils/item_piped/item_piped_video_stub.dart` (+6 -0)
➕ `app/lib/widgets/item/details/utils/item_piped/item_piped_video_web.dart` (+90 -0)
📝 `app/lib/widgets/item/details/utils/item_videos.dart` (+32 -14)
📝 `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_native.dart` (+2 -1)
📝 `app/pubspec.lock` (+16 -0)
📝 `app/pubspec.yaml` (+1 -0)
</details>
### 📄 Description
The Nitter source now supports playing Piped Videos directly within the app. For this we are checking if the Nitter post contains a piped.video url and if this is the case we are using the newly added `ItemPipedVideo` widget to render the video player, to allow users to directly play the video within the app.
To support Piped videos we had to create a new `ItemPipedVideo` widget, which is very similar to the `ItemYoutubeVideo` widget. This means on the web version of FeedDeck we show the Video via an iframe and on the other platforms via our `ItemVideoPlayer` widget. The main difference between Piped and YouTube widget is the different client we use to fetch the video urls. Besides the Piped API returns two different stream one for the video and one for the audio, so that we had to add an additional `audio` paramter to the `ItemVideoPlayer` widget, which allows us to specify an additional audio source for a video.
NOTE: We had to add support for Piped, because Nitter automatically converts the YouTube urls to the corresponding Piped urls.
<!--
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/136
Author: @ricoberger
Created: 2/10/2024
Status: ✅ Merged
Merged: 2/11/2024
Merged by: @ricoberger
Base:
main← Head:nitter-add-support-for-piped-videos📝 Commits (1)
a4a240e[nitter] Add Support for Piped Videos📊 Changes
9 files changed (+355 additions, -35 deletions)
View changed files
📝
app/lib/widgets/item/details/item_details_nitter.dart(+63 -20)➕
app/lib/widgets/item/details/utils/item_piped/item_piped_video.dart(+20 -0)➕
app/lib/widgets/item/details/utils/item_piped/item_piped_video_native.dart(+125 -0)➕
app/lib/widgets/item/details/utils/item_piped/item_piped_video_stub.dart(+6 -0)➕
app/lib/widgets/item/details/utils/item_piped/item_piped_video_web.dart(+90 -0)📝
app/lib/widgets/item/details/utils/item_videos.dart(+32 -14)📝
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_native.dart(+2 -1)📝
app/pubspec.lock(+16 -0)📝
app/pubspec.yaml(+1 -0)📄 Description
The Nitter source now supports playing Piped Videos directly within the app. For this we are checking if the Nitter post contains a piped.video url and if this is the case we are using the newly added
ItemPipedVideowidget to render the video player, to allow users to directly play the video within the app.To support Piped videos we had to create a new
ItemPipedVideowidget, which is very similar to theItemYoutubeVideowidget. This means on the web version of FeedDeck we show the Video via an iframe and on the other platforms via ourItemVideoPlayerwidget. The main difference between Piped and YouTube widget is the different client we use to fetch the video urls. Besides the Piped API returns two different stream one for the video and one for the audio, so that we had to add an additionalaudioparamter to theItemVideoPlayerwidget, which allows us to specify an additional audio source for a video.NOTE: We had to add support for Piped, because Nitter automatically converts the YouTube urls to the corresponding Piped urls.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.