Video/Audio Downloader for Android, written with Jetpack Compose.

Overview

Seal

Video/Audio Downloader for Android, written with Jetpack Compose.

简体中文

Screenshots

Features

  • Download videos and audio files from video platforms supported by yt-dlp.

  • Embed metadata and video thumbnail into extracted audio files supported by mutagen.

  • Execute custom yt-dlp command with template.

  • Manage in-app downloads.

  • Easy to use and user-friendly.

  • Material Design 3 style UI, with dynamic color theme (for Android 12+)

  • MAD: UI and Logic with pure Kotlin. Single activity, no fragments but composable destinations.

Credits

Seal is just a simple GUI of youtubedl-android and yt-dlp

UI design and codes are heavily based on Read You and Music You

dvd

Comments
  • [Bug Report] Command works fine when kept inside a config, but gives error when used as a template

    [Bug Report] Command works fine when kept inside a config, but gives error when used as a template

    Describe the bug

    This is a command that crops thumbnails to square and embeds them to the audio file. I tried escaping quotes, apostrophes etc. with backslash but no luck.

    Here is the command: --embed-thumbnail

    --ppa "ffmpeg: -c:v mjpeg -vf crop="'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'""

    --convert-thumbnails png

    --add-metadata

    -f bestaudio

    --extract-audio

    -o "%(artist)s - %(title)s.%(ext)s"

    --no-mtime

    To Reproduce

    No response

    Error reports & Screenshots

    Screenshot: Screenshot_2022-09-03-13-15-58-16_2b0c70832456616f1f794bb05bb8d2fa

    Error Log: ERROR: [generic] '\'if(gt(ih,iw),iw,ih)\':\'if(gt(iw,ih),ih,iw)\'""' is not a valid URL. Set --default-search "ytsearch" (or run yt-dlp "ytsearch:'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'""" ) to search YouTube WARNING: Unable to download video thumbnail 41: HTTP Error 404: Not Found WARNING: Unable to download video thumbnail 40: HTTP Error 404: Not Found WARNING: Unable to download video thumbnail 39: HTTP Error 404: Not Found WARNING: Unable to download video thumbnail 38: HTTP Error 404: Not Found WARNING: Unable to download video thumbnail 37: HTTP Error 404: Not Found WARNING: Unable to download video thumbnail 36: HTTP Error 404: Not Found

    Device info

    1.1.0 (API 30) [arm64-v8a, armeabi-v7a, armeabi]

    Additional context

    No response

    bug 
    opened by impulsar 20
  • Download a certain part of the video

    Download a certain part of the video

    Checklist

    • [ ] This feature I'm requesting is already implemented in yt-dlp.
    • [ ] This feature is merely a UI/UX update.
    • [ ] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [X] This feature is available for most websites, not only the video platform I use.
    • [X] This feature is suitable for a large variety of videos.
    • [X] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    Cut the desired part of the video and download it.

    Describe the solution you'd like

    Cut the desired part of the video and download it.

    Video link

    https://www.youtube.com/watch?v=OfkmRrec_SA&t=0

    Additional context

    Screenshot_20221209-023046_Editor Lite

    Similar to this, cut and download

    enhancement 
    opened by ghost 17
  • [Feature Request]

    [Feature Request]

    Is it possible to add the following;

    1. Mkv format
    2. Save and embed subtitles to the video.

    I know that it's possible with a custom command but it would be great if these futures appear at the (configure before downloading) menu

    opened by Marco-9456 16
  • .mkv instead of .mp4

    .mkv instead of .mp4

    Describe the bug

    I set it to mp4 by default, but it saves in mkv

    This always happens. Even if I press manually

    To Reproduce

    Download the video and check

    Error reports & Screenshots

    No response

    Device info

    App version: 1.3.1 (10310) Device information: Android 12 (API 31) [arm64-v8a, armeabi-v7a, armeabi] Screen resolution: 2263 x 1078

    Additional context

    No response

    bug 
    opened by Wjxfi 15
  • Gray screen

    Gray screen

    Describe the bug

    When I rotate the screen 2 times, I get a gray screen. It can be fixed by pressing "back" 2 times and exiting the app. After restarting the app, everything works

    In the menu where you enter the link this is fixed, but it also shows up for a second. Elsewhere it is not fixed

    To Reproduce

    Rotate the screen twice in "settings"

    Error reports & Screenshots

    No response

    Device info

    App version: 1.3.1 (10310) Device information: Android 12 (API 31) [arm64-v8a, armeabi-v7a, armeabi] Screen resolution: 2263 x 1078 MIUI 13.0.5

    Additional context

    No response

    bug 
    opened by Wjxfi 15
  • Sponsorblock [Feature Request]

    Sponsorblock [Feature Request]

    Checklist

    • [X] This feature I'm requesting is already implemented in yt-dlp.
    • [X] This feature is merely a UI/UX update.
    • [X] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [ ] This feature is available for most websites, not only the video platform I use.
    • [X] This feature is suitable for a large variety of videos.
    • [X] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    No response

    Describe the solution you'd like

    I want a GUI for removing parts of videos with SponsorBlock. I already do that with cuustom commands, but GUI would be very much appreciated.

    Video link

    No response

    Additional context

    No response

    enhancement 
    opened by mativiters 15
  • Permission denied error when accessing termux directory

    Permission denied error when accessing termux directory

    Describe the bug

    I can't download any . Bro WTH 🙃🙃🙃🙃neither can i download anything from YouTube , Twitter , pinterest , etc... It doesn't even download just audio.... I keep the settings as default.. but still nothing.... WTH bro... Ijust updated it to 1.7.0 hope this time it works... Can u help me with the issue

    To Reproduce

    No response

    Error reports & Screenshots

    No response

    Device info

    SEAL 🦭 V 1.7.0 [F-DROID]

    Additional context

    No response

    bug help wanted 
    opened by SWAYOM 14
  • Implementation of thumbnail previsualization on pre-download popup

    Implementation of thumbnail previsualization on pre-download popup

    This is a video of how it works. By the moment is kinda slow because i just called the function before the one to open the settings popup. Just need to change one line to fix this, but changing that means that when opened the popup, the image will not be instatly loaded. A possible fix is just getting the video information once time, not one time to get the thumbnail for the settings popup and other one to the downloading stage (after pressing donwload in the popup)

    Here is the demo

    https://user-images.githubusercontent.com/60316747/182722526-499fde79-e2e9-47de-afb1-9765b4b61183.mp4

    :

    opened by BobbyESP 14
  • Custom output

    Custom output

    I used to configure dvd to seperate downloads to their own playlist name when downloading songs using -o %(playlist_title). It would be great if that or maybe the feature to add custom output when #34 is done to get custom directories without the default video/audio option greyed out. Thanks for the great app 👍

    enhancement 
    opened by yant0 14
  • Override fields

    Override fields

    I used seal to download album/playlist from soundcloud it seperates each tracks to their own albums. I would like that fixed or maybe add the option to override fields. I used --parse-metadata in dvd before, but its for giving tracks their own track number (seal doesnt number the tracks with the native downloader). I think that command can be used in this case too. Either way this is a great feature to have.

    enhancement 
    opened by yant0 13
  • Fix for stop service button in notification

    Fix for stop service button in notification

    Now stop service button should only show when needed (during download task and when the app is unbound to the service). Using the button will cause the app to exit too. I had to move service management under MainActivity class to make this work reliably (detect app stop and show service close button)

    opened by p3g4asus 11
  • ability to download videos to SD memory card by support SD card directories

    ability to download videos to SD memory card by support SD card directories

    Checklist

    • [ ] This feature I'm requesting is already implemented in yt-dlp.
    • [ ] This feature is merely a UI/UX update.
    • [X] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [X] This feature is available for most websites, not only the video platform I use.
    • [ ] This feature is suitable for a large variety of videos.
    • [X] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    android phone has limited storage space whilst a 1TB memory card can be put in and store ample amount of videos

    Describe the solution you'd like

    support SD card directory

    Video link

    No response

    Additional context

    No response

    enhancement 
    opened by ediotism 1
  • Lower SDK/API to at least Lollipop 5.1

    Lower SDK/API to at least Lollipop 5.1

    Checklist

    • [ ] This feature I'm requesting is already implemented in yt-dlp.
    • [ ] This feature is merely a UI/UX update.
    • [ ] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [ ] This feature is available for most websites, not only the video platform I use.
    • [ ] This feature is suitable for a large variety of videos.
    • [ ] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    For my parents old device

    Describe the solution you'd like

    I see that LibreTube has Lollipop support, is possibile to implement also with Seal? It has similar Material You libraries, or they aren't exactly the same?

    Video link

    No response

    Additional context

    No response

    enhancement 
    opened by Gittore54 1
  • [Feature Request] Detailed output inside Seal

    [Feature Request] Detailed output inside Seal

    Checklist

    • [ ] This feature I'm requesting is already implemented in yt-dlp.
    • [X] This feature is merely a UI/UX update.
    • [x] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [x] This feature is available for most websites, not only the video platform I use.
    • [x] This feature is suitable for a large variety of videos.
    • [ ] This feature is not going to conflict with many of the existing options.

    Describe the solution you'd like

    Why detailed output is now in notifications exclusively? Watching progress became much less convenient, than it was in versions prior to 1.7.0, because now the user has to manage notifications. Please bring detailed output back into Seal and let the user decide, where he'd like to have it (notifications or Seal).

    enhancement 
    opened by Botan626 0
  • [Feature Request]

    [Feature Request]

    Checklist

    • [X] This feature I'm requesting is already implemented in yt-dlp.
    • [ ] This feature is merely a UI/UX update.
    • [ ] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [ ] This feature is available for most websites, not only the video platform I use.
    • [X] This feature is suitable for a large variety of videos.
    • [X] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    Its a simple implemented in other yt-dlp forks. Allowing to use SD Card. "Seal" only allows us to download in Internal Storage but it would be great to use SD Card to save those media. I am using arm64_v8a.apk

    Screenshot_20230104_155750_Seal

    Describe the solution you'd like

    No response

    Video link

    No response

    Additional context

    So I have search many forks of youtube-dl and yt-dlp. Everyone lacks some important feature and some just stopped managing the git. For example, your yt-dlp GUI "Seal" is the only (yes from many i have tried) Android fork that extracts subtitle file with video file. Many thanks for that one. We users need one app that does all. Thats it. Thank you and wish you good luck

    enhancement 
    opened by Mizan9696 0
  • Video quality on the preview image

    Video quality on the preview image

    Checklist

    • [X] This feature I'm requesting is already implemented in yt-dlp.
    • [X] This feature is merely a UI/UX update.
    • [X] This feature is suitable for primary users with little knowledge about yt-dlp.
    • [X] This feature is available for most websites, not only the video platform I use.
    • [X] This feature is suitable for a large variety of videos.
    • [X] This feature is not going to conflict with many of the existing options.

    Is your feature request related to a problem? Please describe.

    No response

    Describe the solution you'd like

    It would be great to show Video quality on the preview image. It's just a kind of a reminder of which quality we are downloading. It's not necessary but good to have it

    Video link

    No response

    Additional context

    No response

    enhancement 
    opened by venkat2305 0
  • [Bug Report] buggy custom commands

    [Bug Report] buggy custom commands

    Describe the bug

    After updating to 1.7.0. The custom commands became very buggy and few other issues i faced ever since updating.

    • the download notification for custom commands are just a looping bar. It used to work in previous versions.
    • the download notification does not end after downloading
    • ytdlp ignoring commands(??)
    • there are temp files.
    • maybe others i havent noticed

    To Reproduce

    Tried with this soundcloud. Still have some issues even with the default custom command built in from the app.

    Error reports & Screenshots

    embed-thumbnail is ignored Screenshot_20230101-212702339

    template -o "Audio/Commands/%(uploader)s/%(playlist_title|YT-DLP)s/%(playlist_autonumber)02d %(title)s.%(ext)s" -f "ba[ext=opus]/ba" --embed-thumbnail --parse-metadata "playlist_index:%(track_number)s" --parse-metadata "description:(?s)(?P.+)" --embed-metadata
    ![Screenshot_20230101-212718_Bromite](https://user-images.githubusercontent.com/80298071/210174734-5572c6e0-321d-473b-b047-84df9d1dcc94.png)

    Device info

    Android 11 Custom rom. Seal 1.7.0 (F-droid) arm64-v8a

    Additional context

    The version of yt-dlp used is the same one that i used on the last update. 2022.11.11

    bug pending 
    opened by yant0 8
Releases(v1.8.0-beta.1)
Owner
junkfood
The solution to world hunger is eating
junkfood
Library for Instagram Image/Video Downloader for Android

Insta Downloader Simple Instagram Image Video Downloader Library for Android Implementation Step 1. Add the JitPack repository to your build file Add

kannikesh Prabhu 2 Mar 12, 2022
Compose-video-player - Video player for Android Compose powered by ExoPlayer

Compose Video Player Video player for Android Compose powered by ExoPlayer. Addi

Juan Pablo Herrera 22 Dec 13, 2022
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀

Android p2p cdn sdk to distribute load and reduce costs(https://peervadoo.com) Vadootv is a p2p sdk integration to reduce your video streaming costs b

Vadootv 40 Oct 5, 2022
Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer.

Yet Another Video Player Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer. Who Is YAVP For? First o

null 62 Dec 29, 2022
Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another.

Video Transcoder Do you want to encode videos on your phone into different formats, trim videos, or extract audio? Are you looking for a free solution

Branden Archer 358 Dec 30, 2022
The Madman library (Media Ads Manager) enables you to advertise video contents with video ads.

Madman (Media ads manager) is a high performance alternative to Google's standard IMA android SDK. If you have your own VAST server and want to render video ads and have full control over the UI, then this library is for you.

Flipkart Incubator 65 Nov 10, 2022
Music Player application with you tube downloader

MusicHub Music Player application with you tube downloader Playing around with Kotlin compose the new UI framework Libraries & technologies used MVVM

Mohamed Almahdy 2 Mar 17, 2022
SpotiFlyer - Kotlin Multiplatform Music Downloader ,supports Spotify, Youtube, Gaana, Jio-Saavn and SoundCloud

SpotiFlyer Kotlin Multiplatform Music Downloader ,supports Spotify, Youtube, Gaa

Gas Com IT 1 Feb 8, 2022
:sound: [Android Library] Easily generate pure audio tone of any frequency in android

Android library to easily generate audio tone in android. Generating pure tone of an specific frequency was never that easy. ZenTone does all the heav

Nishant Srivastava 102 Dec 19, 2022
Exo Player Video with jetPack Compose

Exo Player Video with jetPack Compose

mohamed tamer 2 Feb 26, 2022
Audio Tagger library for Flutter (Android only)

audio_tagger A Flutter (Android only) plugin for editing and extracting information from your music, at the moment it only works on AAC and OGG (last

SongTube 3 Apr 15, 2022
Silky - Android application to convert videos from applications such as YouTube, Facebook, Twitter into audio (.mp3)

Silky Español (actualmente la app se encuentra en desarrollo ) Descripcion Aplic

null 2 Aug 24, 2022
A fork of audio-analyzer-for-android in Google code, with a lot of enhancement.

Audio Spectrum Analyzer for Android A fork of Audio spectrum Analyzer for Android (See README.old for its original readme) This software shows the fre

null 74 Jan 1, 2023
A radio player mobile application which streams audio from Radio Sai Global Harmony.

A radio player mobile application which streams audio from Radio Sai Global Harmony.

Sai Rajendra Immadi 11 Nov 26, 2022
Radio Player - A Flutter plugin to play streaming audio content with background support and lock screen controls.

A Flutter plugin to play streaming audio content with background support and lock screen controls. Installation To use this package, add

Ayotunde abdulsalam 1 Mar 14, 2022
mpv-android is a video player for Android based on libmpv.

mpv-android is a video player for Android based on libmpv.

null 1.1k Jan 6, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022