[Support] AMJidovu - GoAutoYT


Recommended Posts

GoAutoYT makes it easy for you to automatically download videos from as many YouTube channels as you'd like.

 

demo.png

 

Features:

  • Clean, very simple design - The dashboard only contains an input form where you can add a channel and configure checking intervals and what to download, and a little list of all your channels where you can delete them or tell the server to check for new uploads immediately.
  • Everything is on a single page - You can view and control everything from just one page.
  • Makes downloading videos/audio automatically very easy - Just paste a link of a channel you want to download, set a checking interval and that's it, the server will keep checking for new uploads and download if necessary.

 

The container runs with PID/GID of 1000 and UMASK of 022 by default. This can be changed by passing environment variables to the container like so:

environment:

- PUID=1000
- PGID=1000
- UMASK_SET=0044

 

Mounted folder with the downloaded files is located in

/mnt/user/appdata/go-auto-yt/downloads

Mounted folder with the configuration files is located in :

/mnt/user/appdata/go-auto-yt/config

 

Edited by Jidovu Marius Adrian
  • Thanks 1
Link to comment

I've been looking for something like this for along time, thank you!

 

I'm wondering if you will be adding features? It would be great to have an "advanced" tab,

where we can add things like thumbnails, metadata, captions.

 

If this is continued to be updated, I have no problem donating to this project.

 

Keep up the great work!

Link to comment

Very happy to see this. I'd been looking for something like this too. I started to write a script (frontend for youtube_dl) to do something like this but never had the time to finish it.

 

I'd like to suggest some features. The ability to customize the downloaded file names. I put youtube videos on my Plex server and manually assign a season and episode number to each filename, ex.

 

The Tim Traveller [UC2LVhJH_9cT2XKp0VAfsKOQ]/s2018e01 Peak Quest - Climbing The Highest Point In All 48 Counties of England [rNkbRjb7YDY]

 

I wanted to do something like...

 

{Channel Name} [{youtube channel ID}]/sYYYYe## {Video Title} [{youtube video ID}].{ext}

 

The trick would how to resolve the episode number for each download. I was going to keep a text file with the next episode number for each monitored channel.

 

Also option to download entire channel newest to oldest or oldest to newest. Oldest to newest would be to default option if there was automated season/episode numbering.

 

I needed the option to add the channel ID and video ID as part of the file name. I Need this to scrape the metadata, see below.

 

I then use this Plex Library Agent to scrape all the metadata for each video, https://github.com/ZeroQI/YouTube-Agent.bundle

This is really nice. It grabs the titles, dates, descriptions, thumbnails, etc. For this Agent to work correctly, the files must be named as shown above.

 

 

EDIT: Messed around with the JSON file and was able to include the video id as follows;

 

%(title)s_[%(id)s].%(ext)s

 

Tried to use the GUI, but it resulted in a messed up filename, I think it was something like this;

 

%(title)s_[%(id)s].%(ext)s.%(title)s.%(ext)s

 

Still working on adding the seq # i.e. sYYYYe##

Edited by subagon
Link to comment

Hey so added this docker to my unraid, i have just come across an issue though.

When i try and update the playlist refresh time to 6 hours (well hours in general) i am getting the following error:

 

 

There was an error parsing json: json: cannot unmarshal number into Go struct field CheckingIntervalPayload.CheckingInterval of type string

 

Entering time in minutes seems fine though.

Link to comment

Putting this here for anyone interested. This is my channels.json file. I'm editing it by hand instead of using the GUI for now. You can use any of the youtube-dl tags defined here; https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template

 

So far I've added the Youtube video ID to each filename. Still working on a way to add a seq #; e.g. s2019e05, s03e10, etc.

 

[
 {
  "URL": "https://www.youtube.com/channel/UC2LVhJH_9cT2XKp0VAfsKOQ",
  "LatestDownloaded": "y8iCbjNGKlE",
  "DownloadMode": "Video And Audio",
  "Name": "Uploads from The Tim Traveller",
  "PreferredExtensionForAudio": "",
  "PreferredExtensionForVideo": "any",
  "DownloadHistory": [
   "y8iCbjNGKlE"
  ],
  "LastChecked": "12-08-2019 16:17:51",
  "CheckingInterval": "15",
  "Type": "Channel",
  "DownloadPath": "/%(uploader)s_[UC2LVhJH_9cT2XKp0VAfsKOQ]/%(title)s_[%(id)s].%(ext)s"
 },
 {
  "URL": "https://www.youtube.com/channel/UCuxpxCCevIlF-k-K5YU8XPA",
  "LatestDownloaded": "IzLQlkmk5ps",
  "DownloadMode": "Video And Audio",
  "Name": "Uploads from Scotty Kilmer",
  "PreferredExtensionForAudio": "",
  "PreferredExtensionForVideo": "any",
  "DownloadHistory": [
   "IzLQlkmk5ps"
  ],
  "LastChecked": "12-08-2019 16:17:57",
  "CheckingInterval": "15",
  "Type": "Channel",
  "DownloadPath": "/%(uploader)s_[UCuxpxCCevIlF-k-K5YU8XPA]/%(title)s_[%(id)s].%(ext)s"
 }
]

 

Edited by subagon
Link to comment
6 hours ago, Natcoso9955 said:

Hey so added this docker to my unraid, i have just come across an issue though.

When i try and update the playlist refresh time to 6 hours (well hours in general) i am getting the following error:

 

 

There was an error parsing json: json: cannot unmarshal number into Go struct field CheckingIntervalPayload.CheckingInterval of type string

 

Entering time in minutes seems fine though.

The issue has been added to the bug/issues report.

Keep in mind the app is currently in Beta.

Link to comment
56 minutes ago, subagon said:

Putting this here for anyone interested. This is my channels.json file. I'm editing it by hand instead of using the GUI for now. You can use any of the youtube-dl tags defined here; https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template

 

So far I've added the Youtube video ID to each filename. Still working on a way to add a seq #; e.g. s2019e05, s03e10, etc.

 


[
 {
  "URL": "https://www.youtube.com/channel/UC2LVhJH_9cT2XKp0VAfsKOQ",
  "LatestDownloaded": "y8iCbjNGKlE",
  "DownloadMode": "Video And Audio",
  "Name": "Uploads from The Tim Traveller",
  "PreferredExtensionForAudio": "",
  "PreferredExtensionForVideo": "any",
  "DownloadHistory": [
   "y8iCbjNGKlE"
  ],
  "LastChecked": "12-08-2019 16:17:51",
  "CheckingInterval": "15",
  "Type": "Channel",
  "DownloadPath": "/%(uploader)s_[UC2LVhJH_9cT2XKp0VAfsKOQ]/%(title)s_[%(id)s].%(ext)s"
 },
 {
  "URL": "https://www.youtube.com/channel/UCuxpxCCevIlF-k-K5YU8XPA",
  "LatestDownloaded": "IzLQlkmk5ps",
  "DownloadMode": "Video And Audio",
  "Name": "Uploads from Scotty Kilmer",
  "PreferredExtensionForAudio": "",
  "PreferredExtensionForVideo": "any",
  "DownloadHistory": [
   "IzLQlkmk5ps"
  ],
  "LastChecked": "12-08-2019 16:17:57",
  "CheckingInterval": "15",
  "Type": "Channel",
  "DownloadPath": "/%(uploader)s_[UCuxpxCCevIlF-k-K5YU8XPA]/%(title)s_[%(id)s].%(ext)s"
 }
]

 

The app does make use of youtube-dl.

Link to comment

Bug report...

 

If I enter the following string in "Enter custom youtube-dl output" and click "Add channel and download" I get an error after a few seconds.

 

/Kurzgesagt [UCsXVk37bltHxD1rDPwtNM8Q]/%(release_date)s %(title)s [%(id)s].%(ext)s

 

If I replace the spaces with underscores, it works.

 

Edited by subagon
Link to comment
1 hour ago, subagon said:

Bug report...

 

If I enter the following string in "Enter custom youtube-dl output" and click "Add channel and download" I get an error after a few seconds.

 

/Kurzgesagt [UCsXVk37bltHxD1rDPwtNM8Q]/%(release_date)s %(title)s [%(id)s].%(ext)s

 

If I replace the spaces with underscores, it works.

 

That is to be expected to not allow spaces. As you can see in the following command:

executing youtube-dl command: /usr/local/bin/youtube-dl -f bestaudio[ext=m4a] -o downloads/videos/%(uploader)s/audio/%(title)s.%(ext)s youtube-video-link

Reason is it will get added to the download command and it should not have spaces.

Although you can use another docker to manage the names/ tags etc, something like Beets for example.

Edited by Jidovu Marius Adrian
Link to comment
10 hours ago, Natcoso9955 said:

Hey so added this docker to my unraid, i have just come across an issue though.

When i try and update the playlist refresh time to 6 hours (well hours in general) i am getting the following error:

 

 

There was an error parsing json: json: cannot unmarshal number into Go struct field CheckingIntervalPayload.CheckingInterval of type string

 

Entering time in minutes seems fine though.

The bug has been fixed now and new version pushed.

Remove the docker and the image, then download the app again to take effect.

Edited by Jidovu Marius Adrian
Link to comment
3 hours ago, Jidovu Marius Adrian said:

That is to be expected to not allow spaces. As you can see in the following command:


executing youtube-dl command: /usr/local/bin/youtube-dl -f bestaudio[ext=m4a] -o downloads/videos/%(uploader)s/audio/%(title)s.%(ext)s youtube-video-link

Reason is it will get added to the download command and it should not have spaces.

Although you can use another docker to manage the names/ tags etc, something like Beets for example.

I'm afraid I don't understand your reply.

 

If I run the youtube-dl command directly;

 

youtube-dl -f best -ciw -o "%(upload_date)s %(title)s [%(id)s].%(ext)s" -v youtube-URL <-- note the spaces in the filename

 

It works fine. In your example above I notice you didn't quote the filename string. Could that be the difference?

 

The only reason I care about the spaces is the Plex Library Agent I'm using to scrape the metadata is very strict in how the file is named, underscores break it. If necessary I can use a second process, likely filebot, to change the names.

Edited by subagon
Link to comment
1 minute ago, Jidovu Marius Adrian said:

You are passing that command directly in the terminal while using goautoyt it will not be the same thing.

Okay, I understand. But if go-auto-yt is using youtube-dl to download the files and youtube-dl can deal with spaces, then isn't it a matter of how the filename string is passed from go-auto-yt to youtube-dl? Please understand that I have no idea of what your code looks like and I'm just guessing.

Link to comment

  I will add a request for this to get a fix.

 

57 minutes ago, subagon said:

It works fine. In your example above I notice you didn't quote the filename string. Could that be the difference?

 

The only reason I care about the spaces is the Plex Library Agent I'm using to scrape the metadata is very strict in how the file is named, underscores break it. If necessary I can use a second process, likely filebot, to change the names.

 

Without the quotes the command will not work.

Most of the times I still end up using filebot to manage the library names anyway :)

Edited by Jidovu Marius Adrian
Link to comment

was hopeful to have this running today but it doesn't seem as straightforward as i thought. here's what i've done:

 

downloaded an entire youtube channel already, plus half another. hate5six and daitanfilms, using Jdownloader.

using GoAutoYT i wanted it to automatically download new uploads from those channels, which are updated daily.

channels currently archived in /mnt/user/media/youtube/hate5six and ~/daitanfilms

added each as a channel on GoAutoYT, video and audio, mp4, but when i put in their download directory, it appends /channel_name's/%video title.%video format or something

therefore if running, re-downloading the entire channel again. when i click Check, it says it's downloaded the latest video, but upon checking, it hasn't done anything anyway. 

 

can i change the download directory manually so they all go in the correct folder? 

am i best off just sticking with Jdownloader? does it have an automatic check for new uploads ability?

 

thanks.

 

Link to comment
3 hours ago, gellux said:

was hopeful to have this running today but it doesn't seem as straightforward as i thought. here's what i've done:

 

downloaded an entire youtube channel already, plus half another. hate5six and daitanfilms, using Jdownloader.

using GoAutoYT i wanted it to automatically download new uploads from those channels, which are updated daily.

channels currently archived in /mnt/user/media/youtube/hate5six and ~/daitanfilms

added each as a channel on GoAutoYT, video and audio, mp4, but when i put in their download directory, it appends /channel_name's/%video title.%video format or something

therefore if running, re-downloading the entire channel again. when i click Check, it says it's downloaded the latest video, but upon checking, it hasn't done anything anyway. 

 

can i change the download directory manually so they all go in the correct folder? 

am i best off just sticking with Jdownloader? does it have an automatic check for new uploads ability?

 

thanks.

 

The app is still in beta and being developed... 

You can change the folders by using "Enter custom download path" and specify the folder you wish, you can also change the mounted folder as well by editing the container template.

I will forward this issue to the bugs reports as well.

Edited by Jidovu Marius Adrian
Link to comment
Just now, Jidovu Marius Adrian said:

The app is still in beta and being developed... 

You can change the folders by using "Enter custom download path" and specify the folder you wish, you can also change the mounted folder as well by editing the container template.

thanks. yes i did those steps already. when i entered custom download path as "/mnt/user/media/youtube/", underneath it then says "

Output path:

/mnt/user/media/youtube/%(uploader)s/video/%(title)s.%(ext)s" which is more folders. so i'm not 100% sure what's going on with it. the ~/youtube folder IS my mounted folder that i edited in the container template.

 

either way, when i click Check, nothing happens.

Link to comment
14 minutes ago, gellux said:

thanks. yes i did those steps already. when i entered custom download path as "/mnt/user/media/youtube/", underneath it then says "

Output path:

/mnt/user/media/youtube/%(uploader)s/video/%(title)s.%(ext)s" which is more folders. so i'm not 100% sure what's going on with it. the ~/youtube folder IS my mounted folder that i edited in the container template.

 

either way, when i click Check, nothing happens.

As you can see when you specify where to download for example it has a default template like so:

/channels/%(uploader)s/audio/%(title)s.%(ext)s

If you want to not have all those folders and just have the name included in the file instead of folders for example you do this:

/channels/%(uploader)s-audio-%(title)s.%(ext)s

As you can see you can remove the / so it will no longer create that many folders.

/mnt/user/media/youtube/ 

In your case is already the starting folder so you do not need to add it again ( is the root folder), so anything that you download will get downloaded there

Edited by Jidovu Marius Adrian
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.