Releases: 4evy/dis
Release list
v11.3.1
Rolling Release
rolling fix: pin yt-dlp to resolved ffmpeg
v11.3.0
Changelog
- 732fe17 feat(tui): auto-detect terminal base16 theme for palette colors
- 3b09af5 feat(tui): move help bar outside border, use pill-style keys and normal borders
- 54f4968 feat(tui): remove transcript mode auto-select, add explicit
akeybind - 6370750 fix(package.nix): add gifski
- 07530dc fix(procgroup): add Windows stub so goreleaser windows build succeeds
- 9973704 fix: kill
ffmpegandyt-dlpprocess groups on exit - c8247c4 fix(tui): remove unused helpKeyStyle variable
- c370b28 fix(tui): replace
⇧unicode shift symbol with plain text in help bar - f022497 fix(convert): reword skip-conversion prompt to be less confusing
- eb6312a refactor: address review feedback on previous cleanup
- 1699bcf refactor(slider): extract keys/style/textbuf subpackages, rename underscore files
- 906f4b0 refactor(slider): group Model state into sub-structs
- d4dd5e3 refactor(tui): move progress styles next to their consumer
- 3471979 refactor(convert): split params.go by concern
- dd06df9 refactor(validate): split validators by concern
- 44d0a56 refactor(slider): split handlers.go by mode
- 9865565 refactor(slider): split text buffer helpers out of overlays.go
- 81a417f refactor(cmd): extract downloadEach helper
- 67f7831 refactor(convert): assemble filter_complex from a slice
- 0e957d8 refactor(subtitle): unify VTT/SRT cue state machine
- c78f7c9 refactor(convert): consolidate duration computation
- dcb0c7e refactor(convert): consolidate speed filter construction
- c15cb14 refactor(cmd): signal "go back" from GIF speed prompt with an error
- 51ad953 refactor(convert): extract append{Video,Audio}EncoderArgs
- 9be5097 refactor(slider): split model.go into model/init/update
- 502c8d9 refactor(subtitle): move VTT word-timing extraction to vtt_words.go
- 18aa5c8 refactor(slider): split transcript_panel.go into transcript and word-select
- 805905b refactor(storyboard): split render.go into protocol/kitty/sixel/halfblock/cell
- d6e2e1e refactor(cmd): split trim.go into trim/trim_parse/trim_data
- 1c96edc refactor(cmd): split root.go into root/flags/run
- 7dc7700 refactor(palette): share configPaths for XDG/macOS config discovery
- a47f662 refactor(slider): extract waitForChan to collapse the three async loaders
- b61f778 refactor(convert): extract targetBitrateArgs to share target-size logic
- 1e10daf refactor(convert): extract reportResults to share size-table + clipboard
- 360f8fc refactor(util): extract splitHMS to share H/M/S/ms decomposition
- 3130485 refactor(cache): store CreatedAt as time.Time and use time.Since
- da2c527 refactor(sponsorblock): use util.HTTPGet and typed HTTPError for 404 check
- 1f45f08 refactor(procgroup): extract Run to collapse the Setup/Start/Track/Wait boilerplate
- 5c4130f refactor(util): add HTTPGet helper for simple request+read
- 6a4919c refactor(util): add FirstExistingFile for XDG-style path searches
- 2face9b refactor(convert): extract MakeProgressCallback for ffmpeg stderr parsing
- dbd6c64 refactor(subtitle): share HMS-to-seconds helper
- 8de5c59 refactor(download): use os.MkdirTemp for download temp dirs
- 330a46e refactor(util): consolidate duration formatters
- 87bd14d refactor: deduplicate
- 9ec1798 refactor(cache): replace GORM+SQLite with bbolt
- 13556a4 refactor(cache): introduce generic FetchCached helper, eliminating duplicated read-through cache boilerplate
v11.2.1
Changelog
- 07c9040 feat(tui): enhance slider with handle labels, gradient edges, and playhead markers
- 06aef38 feat: remove audio silence detection
- 8d0a0d7 feat(tui): add ms timestamps, fade-out transcript, help bar inside box
- 010cbf2 fix(tui): remove unused
renderLeftPaneandrenderRightPanewrappers - 7b77031 fix(tui): align help bar separator columns vertically
- e6294b3 fix(tui): omit
.000ms suffix when milliseconds are zero - 55fd07d refactor(download): replace raw
yt-dlpexec with go-ytdlpStderrFuncfor trimmed downloads
v11.2.0
Changelog
- c53a912 feat: remove waveform visualization from trim slider
- ab2aa25 fix(tui): reset handles after split, cap splits panel at 5 visible rows
- c379357 refactor(tui): use
ansi.Truncatefor chapter labels,bubbles/textinputfor time input - 46831cd refactor(tui): replace custom utilities with charm library equivalents
v11.1.0
Changelog
- 6e5206d feat(cache): SQLite cache for metadata, transcript, waveform, silence, and SponsorBlock
- faf10ee feat: add
.golangci.toml - 37eeb7a feat(slider): async data loading with spinner, two-row waveform display
- addb6bc feat(video): add speed control for MP4 output
- c451b95 feat(gif): add speed, lossy/motion quality controls and speed prompt for long GIFs
- 8674d23 feat(storyboard): add storyboard thumbnail preview in trim slider
- f74d6ca feat(tui): redesign trim slider as two-pane split layout
- 09c23a9 feat(tui): add audio waveform visualization on trim slider
- 32d0eaf feat: add GIF export via
gifski - dea178a feat: add
--copyflag to copy output path to clipboard - 6015b44 feat(cmd): add shell completion subcommands for bash, zsh, fish, and nushell
- 80c742b feat: add TOML config file, platform presets, and target file size mode
- 804c267 feat(tui): add animated spinner for metadata fetching
- 8571ebf fix(tui): launch trim slider immediately, make transcript and SponsorBlock async
- b81b4de fix(cache): run AutoMigrate and DeleteExpired only once per process
- b2f4753 fix(tui): spinner while loading details and remove waveform-only right pane
- 01127c3 refactor(util): move ffmpeg parsing into
convert/, inline clipboard wrapper - fbfe941 refactor: clean up dead code, use
go-humanize& useerrgroup - 58de752 refactor(tui): unify download and conversion progress to same view
- 64cd1ed refactor: extract shared utilities and reduce duplication
- 1013b8f refactor: break up god files into focused single files
- 56ffb8e refactor: handle errors, remove unused functions, clean up go.mod
- 75d46ef refactor: use generics, maps/slices/cmp packages
- fdc0378 refactor: apply Go modernize fixes
- 319c093 refactor: split files into single-responsibility ones
v11.0.0
refactor: migrate to go
Go is a really nice language, and I’ve been enjoying it a lot recently.
Although I still like C#, I’ve found myself growing more distant from
it. For this specific project, C# doesn't feel like a great fit and
often feels like it's just making things harder
From my experience, C# excels at enterprise-level backend development,
but when you want to build something command-line focused or
"community-oriented," Go is the better choice
From a personal standpoint, Go is much nicer to work with on this
project - especially with the Charm (Charmbracelet) ecosystem. It’s
amazing, and the Go code is overall much more readable than the C# code
we had here before
Release 9.2.1
Almost all changes in these release are internal only.
The only breaking change is the removal of the --keep flag.
The rationale behind its removal is that TikTok is a moving target, and I do not wish to constantly update the custom logic for TikTok.
You can now pass inf as a second parameter to -t or --trim, allowing you to download until the end of the video without manually specifying the end. For example, if a video is 800 seconds long and you want to cut from 600 to 800 seconds, you can simply use 600-inf. The inf part will automatically select the end of the video.
SHA256 SUMS
Windows x64: 82f667aa9eeb1d3565d5f31f2cca3683fc898a89861f25c3fbc7cf0a2717b00c
Linux x64: e4e1a8d679253146bcb63de02270fcea1afd25f1bdaf2901dcc9497b7b97a4fe
macOS Arm64: fdfdb3c37811b410ecf21a4282a2eff5f4490d8a5c8d3ebddfd9414a21b21c09
Linux Arm64: 4f87a5aa5c0080b6d58028b5bdcb28b024ee3db0d15f9b68bdffec36bc6f29f1
Release 9.1.0
Major Changes
- Switch to Spectre.Console (#6)
- System.CommandLine has unofficially been abandoned, or at the very least, it's not going to receive updates for a while. It has a bad developer experience overall compared to Spectre.Console
Adaptive Retry Mechanism
Introduced in #7 this new mechanism massively improves the experience. Sometimes, due to H.264 and AAC the videos that are compress from other video codecs like VP9 or AV1 will become actually bigger than smaller. This is mainly due to the limitations of H.264 (A codec literally made 2003). To address this issue, the adaptive retry mechanism will provide an option to select a lower resolution and enter a higher CRF value. It will also delete the old converted video and convert it again with the new settings.
Small Changes
- Now, there is a new progress bar for downloading and converting videos, as well as a status indicator for fetching videos.
Renamed options
- Removed short option names (Because the library only allows one char short option names)
- Changed multi-thread to be boolean instead of passing manually how many threads to use
- Renamed long option names
--keep-watermark→--keep--random-file-name→--random--sponsor-block→--sponsor
SHA512 Sums
Windows x64: c1499013ec23e7e13c6dcd29aa66cd380ded42df6cc18030d8fc712612c2509b1252044cb4946a1210c759d060342c7b76f3b1e1ffc79fdeb896b5a69920d76a
Windows Arm64: df80a7c92497342a9bca43931969b67a22b691120772e998088e0522187e7b3e9d7d8bac4135f82268835057084bb85210549165225a36020244d2629522de76
Linux x64: c105dbf1b23c01bc777e551f2f0c6d0e7d2c54b9ec790e770420e7a407023adec9b6ed681f23809326e0d783f26eb1cab8517abcb52505a75df9f64179090799
Linux Arm64: 3d6e770025e92be4d83e082079d6b184eacdb2ba50aba751c81f742f2b9d698746472ebd55ffea00827411335ce70bcc464662f85a92ab2591e59a22bfc7c62a
macOS x64: a7257c7ccc772f994e263c5c9107bcdec7c9e792b85ba62fa98efb99776db2be3960dd7173947a07393090faf28147bc60d061d30f31b959ce68b04ae258d661
macOS Arm64: 9c2aaefdfc327a956b379157e7d5b45bd92027d02183b5c6af317cea0b469499fa73b89aa3b3721b1c42c301578274c343bd72ae2aaa26dab068d4bf159cda6a
Release 8.1.6
This release introduces several bug fixes, performance improvements, and new features.
Major Updates
- Updated project to .NET 8.0 framework and C# 12.0
- Introduced a new dependency:
Microsoft.Extensions.Hosting 8.0.0&Serilog.AspNetCore 8.0.0 - Introduced new feature: Trim the video using
ss.ms-ss.msformat - Introduced support for Nix
Now we have flake.nix. This allows Nix users to seamlessly install dis with the Nix package manager. If you're using Nix, all you need to do to install dis is to type nix profile install github:DontEatOreo/dis in your terminal.
Minor Updates & Fixes
- Various code optimization changes such as switching from
Any()toCountfor checking if collections are empty. - Updated the type for audio bitrate from
inttolong. - Included additional logs for debugging.
- Improved error handling in VideoDownloaderBase.
- Several changes to make the application self-contained.
SHA512 Sums:
Windows 10/11 x64: 8d44e5dbdc65b1c995faca06932d16d99e2f8a6e27bcfde3f8529e5de768076b
Windows 10/11 Arm: 03b439282e97e220ef17df19f9d94feafa9e4931a3d45429b11cea70c619932a
Linux x64: c2b628503ce66ba59ab664215b3dd75a89f993e8965b7308e373f02ef5f9a76b
Linux Arm: f78c13c21a43fe7a6d35cd71cfe767781f67b45d385e3dd6747442e6c0bd4ec8
macOS Arm: f72a9b4b21e38b07d234d20dddf04d0b14d793831dcc118626ea00a327a65df1
macOS x64: 0ac970f283c38d287b322ef441e498cbcd61d9dae4cd337e9b586504c25d7c34