-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Youtube Uploading #12
Comments
Thank you for your suggestions. I think it's still much more convenient to use a separate program for uploading, but it can be implemented in ytfs, using a special directory or something similar. It can be tricky to set descriptions, titles and some other settings, though. Finding an intuitive way to do this may be somewhat hard. Anyway, in order to implement that feature (as well as some other things, e.g. managing playlists and subscriptions), authentication needs to be done. Seems like it's time to get back to work after some inactivity :) |
I don't know how you want to do it, but the way Youtube stores that data is via JSON files (at least when I download all my Youtube data from Google's Export feature. You can store all the necessary data in those JSON files for any files which you own, modifying any of those files would then cause the change to propagate to the corresponding video files. I don't know how Youtube stores playlists, since I've never created one but you can find out using the aforementioned Youtube Takeout feature. Hopes this helps! Edit: Another advantage of using the GDATA Api is that you can drop the Youtube-dl dependency, I believe. |
How data is kept on server is rather irrelevant, the problem I see is how to provide convenient and usable interface for providing video information, being limited to filesystem operations. It is pretty doable, but the effect may be hardly user-friendly. That's my biggest concern. Managing playlists is not hard, that's all you need: https://developers.google.com/youtube/v3/docs/playlists Oh, and dropping youtube-dl dependency isn't that straight-forward, API won't let you to get direct URLs to video content and it's the only thing I need youtube-dl for. |
I agree. Either have a companion file or could you possibly have a method of determining the data from the video's metadata? That might be a little too hacky, but it could work. Perhaps you could not upload the file until the XML metadata for the corresponding data has been created. Additionally, you could display a prompt to have the user enter the data. If you follow the later case, I'd recommend using PyQT4, PySide, or both as they are pretty generic UIs that work cross-platform with Python. I definitely see your issue. The metadata stuff might be the easiest way to do it from a filesystem operation point of view, even if it is a little non-intuitive. You could even do a combination of the two techniques where it prompts the user if the metadata is nonexistent. Furthermore, you could have two folders. One for 'uploaded' content and for 'uploading' content since it can be difficult to edit certain parts of the video. This is definitely an interesting, and fascinating design challenge. If you are looking for how to implement auth, I think the --auth-browser option on youtube_upload does an excellent job and it leverages the aforementioned QTframework. You can also have it drop back to the console method they use if all else fails. That is a great place to look for an example of authentication that actually works on Python 3 since Google's API examples are sometimes lacking in this regard. |
youtube-dl can store the description in a plaintext .description file. It can also give you the JSON for a video with a switch. You can simply expose those files. |
It would be excellent if this FUSE lib supported uploading videos to Youtube as well. This can be supported via various means including Torkland's youtube_upload repository. It would also allow you implement overwriting and other features.
Using Youtube's DATA API would make this system much more flexible anyhow as you can edit additional data about the video and support better integration with the technology.
I am definitely willing to help implement this if you find this change acceptable.
The text was updated successfully, but these errors were encountered: