Compare commits
8 Commits
8736644435
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| b34439cc9a | |||
| f851cdbc30 | |||
| 6d4c5f92dc | |||
| 09d9204ea5 | |||
| 3a7cb6c6a3 | |||
| c4424b806f | |||
| 90155796c6 | |||
| 66f06461a1 |
@@ -1,9 +1,9 @@
|
||||
[package]
|
||||
name = "youtube-dl-gtk"
|
||||
description = "a simple frontend for youtube-dl"
|
||||
version = "0.1.2"
|
||||
name = "media-downloader-gtk"
|
||||
description = "a simple frontend for youtube-dlc"
|
||||
version = "0.1.5"
|
||||
authors = ["Max Bradbury <max@tinybird.info>"]
|
||||
repository = "https://tinybird.dev/max/youtube-dl-gtk"
|
||||
repository = "https://tinybird.dev/max/media-downloader"
|
||||
license = "MIT"
|
||||
edition = "2018"
|
||||
|
||||
|
||||
29
README.md
Normal file
29
README.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# media-downloader
|
||||
|
||||
a simple graphical frontend for the `youtube-dl` media downloader.
|
||||
`youtube-dl` must be installed and in your PATH.
|
||||
|
||||
really just an experiment in creating my first desktop program, so don't expect too much.
|
||||
|
||||
uses `gtk-rs`. released under the MIT license.
|
||||
|
||||
## features
|
||||
|
||||
download from any media source that `youtube-dl` supports (e.g. soundcloud, mixcloud, etc.)
|
||||
|
||||
extract audio and convert to mp3
|
||||
|
||||
## known problems
|
||||
|
||||
no validation for URL bar
|
||||
|
||||
no user feedback
|
||||
|
||||
will hang after clicking "go!" due to `youtube-dl` being executed in the same thread.
|
||||
there is no user feedback so this basically looks like the program crashing.
|
||||
|
||||
TODO: investigate using https://crates.io/crates/gtk-future-executor
|
||||
|
||||
would it be possible to add progress bars for in-progress downloads somehow?
|
||||
|
||||
notifications for when downloads finish?
|
||||
@@ -1,6 +1,8 @@
|
||||
#![windows_subsystem = "windows"]
|
||||
|
||||
use gio::prelude::*;
|
||||
use gtk::prelude::*;
|
||||
use gtk::Orientation;
|
||||
use gtk::{Orientation, InputPurpose};
|
||||
use std::env::args;
|
||||
use std::process::Command;
|
||||
|
||||
@@ -9,7 +11,7 @@ const SPACING: i32 = 16;
|
||||
fn build_ui(application: >k::Application) {
|
||||
let window = gtk::ApplicationWindow::new(application);
|
||||
|
||||
window.set_title("youtube-dl");
|
||||
window.set_title("media downloader");
|
||||
window.set_border_width(SPACING as u32);
|
||||
window.set_position(gtk::WindowPosition::Center);
|
||||
window.set_default_size(400, 100);
|
||||
@@ -21,6 +23,7 @@ fn build_ui(application: >k::Application) {
|
||||
let button = gtk::Button::with_label("Go!");
|
||||
|
||||
input_url.set_placeholder_text(Some("Enter URL here"));
|
||||
input_url.set_input_purpose(InputPurpose::Url);
|
||||
|
||||
horizontal.set_homogeneous(true);
|
||||
|
||||
@@ -57,7 +60,7 @@ fn build_ui(application: >k::Application) {
|
||||
|
||||
fn main() {
|
||||
let application = gtk::Application::new(
|
||||
Some("dev.tinybird.max.youtube-dl-gtk"),
|
||||
Some("dev.tinybird.max.media-downloader"),
|
||||
Default::default()
|
||||
).expect("Initialization failed...");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user