Skip to content

Conversation

@TobiGr
Copy link
Contributor

@TobiGr TobiGr commented Jan 9, 2026

What is it?

  • Feature (user facing) ⚠️ Your PR must target the refactor branch

Description of the changes in your PR

This PR adds support for thumbnails / cover arts for downloaded mp4 and opus/ogg files.
Metadata support (artist, name, date) for mp4 files is also added. Side note: mp4/MPEG-4 sucks implementation wise because there are a lot of magic bytes.

To do

⚠️ This PR is in an early stage as is supposed to be used for testing only atm.

  • Changes need to be tested with different players and devices
  • mp4 changes are not trivial and need to be tested in detail
  • fetch cover art properly and use reliable async implementation.
  • documentation
  • decide whether the user should be able to turn off metadata completely.

Before/After Screenshots/Screen Record

File format Preview (before) Preview (after) Metadata (before) Metadata (after)
opus
mp4

Fixes the following issue(s)

This partly addresses #4341

APK testing

The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration on this wiki page.

Due diligence

@TobiGr TobiGr added feature request Issue is related to a feature in the app downloader Issue is related to the downloader labels Jan 9, 2026
@github-actions github-actions bot added the size/large PRs with less than 750 changed lines label Jan 9, 2026
@TobiGr TobiGr changed the title Add support for more cover arts / thumbnails and other metadata for mp4 and opus/ogg downloads Add support for cover art and other metadata for mp4 and ogg downloads Jan 9, 2026
@TobiGr TobiGr force-pushed the downloader-meta branch 5 times, most recently from dbdd1dc to 3ebf7c7 Compare January 9, 2026 05:25
@TobiGr TobiGr changed the title Add support for cover art and other metadata for mp4 and ogg downloads Add support for cover art and other metadata for mp4 and opus downloads Jan 10, 2026
@TobiGr TobiGr changed the title Add support for cover art and other metadata for mp4 and opus downloads Support cover art and other metadata in mp4 and opus downloads Jan 10, 2026
@cynthia2006

This comment was marked as off-topic.

@cynthia2006
Copy link

Using the debug build of NewPipe with this commit resulted in the following exception, perhaps due to thumbnail size overflowing the limits of an OGG page.

Exception

  • User Action: download post-processing
  • Request: https://www.youtube.com/watch?v=gY1WyUIabCc [ {type=audio format=WebM Opus bitrate=160} ]
  • Content Country: IN
  • Content Language: en-IN
  • App Language: en_IN
  • Service: YouTube
  • Timestamp: 2026-01-15T18:10:37.835+05:30
  • Package: org.schabi.newpipe.debug.downloadermeta
  • Service: YouTube
  • Version: 0.28.0
  • OS: Linux samsung/m35xins/m35x:16/BP2A.250605.031.A3/M356BXXU5CYI8:user/release-keys 16 - 36
Crash log

java.lang.UnsupportedOperationException: page size is 73906 but cannot be larger than 65025
	at org.schabi.newpipe.streams.OggFromWebMWriter.addPacketSegment(OggFromWebMWriter.java:519)
	at org.schabi.newpipe.streams.OggFromWebMWriter.build(OggFromWebMWriter.java:214)
	at us.shandian.giga.postprocessing.OggFromWebmDemuxer.process(OggFromWebmDemuxer.java:41)
	at us.shandian.giga.postprocessing.Postprocessing.run(Postprocessing.java:195)
	at us.shandian.giga.get.DownloadMission.doPostprocessing(DownloadMission.java:718)
	at us.shandian.giga.get.DownloadMission.$r8$lambda$IA0_L2vJSLZLqg0BQARF8wvRshk(Unknown Source:0)
	at us.shandian.giga.get.DownloadMission$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at java.lang.Thread.run(Thread.java:1119)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

downloader Issue is related to the downloader feature request Issue is related to a feature in the app size/large PRs with less than 750 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants