Giter Site home page Giter Site logo

youtube-subscriptions's Introduction

Hi there ๐Ÿ‘‹

youtube-subscriptions's People

Contributors

asimpson avatar github-olivier-abdesselam avatar yazgoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

meain asimpson

youtube-subscriptions's Issues

eTag support

when server sends eTag, we should use it to make sure we don't spam it.

Failed to parse XML

โฏ youtube-subscriptions 
thread '<unnamed>' panicked at 'failed to parse XML: Error { location: 0, errors: {Expected("<?xml"), ExpectedComment, ExpectedElement, ExpectedProcessingInstruction, ExpectedWhitespace} }', src/libcore/result.rs:999:5 
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 
stack backtrace: 
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace 
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39 
   1: std::sys_common::backtrace::_print 
             at src/libstd/sys_common/backtrace.rs:71 
   2: std::panicking::default_hook::{{closure}} 
             at src/libstd/sys_common/backtrace.rs:59 
             at src/libstd/panicking.rs:197 
   3: std::panicking::default_hook 
             at src/libstd/panicking.rs:211 
   4: std::panicking::rust_panic_with_hook 
             at src/libstd/panicking.rs:474 
   5: std::panicking::continue_panic_fmt 
             at src/libstd/panicking.rs:381 
   6: rust_begin_unwind 
             at src/libstd/panicking.rs:308 
   7: core::panicking::panic_fmt 
             at src/libcore/panicking.rs:85 
   8: core::result::unwrap_failed 
   9: youtube_subscriptions::get_channel_videos 
  10: <futures::future::lazy::Lazy<F,R> as futures::future::Future>::poll 
  11: std::panicking::try::do_call 
  12: __rust_maybe_catch_panic 
             at src/libpanic_unwind/lib.rs:85 
  13: <futures::future::catch_unwind::CatchUnwind<F> as futures::future::Future>::poll 
  14: <futures_cpupool::MySender<F,core::result::Result<<F as futures::future::Future>::Item,<F as futures::future::Future>::Error>> as futures::future::Future>::poll 
  15: futures::task_impl::std::set 
  16: futures::task_impl::std::Run::run 
  17: futures_cpupool::Inner::work 

You should probably make the XML parser more permissive or prepend <?xml version="1.0?>.

Example config points to non-existent directory.

"__HOME/.cache/yts/videos", is not created by the program, so if you use that in your config file, it will not load youtube-subscriptions, and will instead give a vague error about a missing directory.

First run issues

  • When it closes, the app tries to write to .cache/yts/yts.json, which is a directory that doesn't exist/isn't created.
  • On bootup, it complains about the config file not being available

I can create a PR for these issues but I just wanted to have them logged here.

tag videos as played?

Definitely a wishlist thing, but it would be nice to know what videos have been played, or manually marked for ones I want to skip.

Add subcommand to help automate the new setup process

Instead of the jq one-liner on the subscriptions HTML file could we offer something like youtube-subscriptions import <PATH-TO-HTML-FILE> or make the command a hotkey in the main app that prompts for a path? It would write the file to ~/.config/youtube-subscriptions/subscription_manager wrapped appropriately in ompl tags.

LBRY support

should support urls like library://@channel urls

Error logging for youtube-dl?

Some formats do not work with youtube-dl*, but I only get a flash of red text and then back to the youtube-subscriptions menu. To be fair, the youtube-dl error message is not very helpful (see below), but without digging into the problem, it first appears to be a youtube-subscriptions problem. Maybe you could add some way to display to the user the final output of youtube-dl if the video download fails?

Nothing happens when running app

With a clean install (just downloaded the release, made it executable, and ran it), I get a blank screen with a cursor. I can press 'h' for the help screen, and I can press 'q' to quit. I can also press 'c' to download my subscriptions OPML... but otherwise, blank screen with a cursor at the left side that I can use 'j' and 'k' to scroll with, but nothing else happens. How does the app retrieve subs?

I tried adding a config.json with the contents from the readme to see if there was an initialization error that wasn't being caught. Is there debugging output I can enable to see what's wrong?

logging suport

could be enabled by conf.
would help for "debugging" purpose.

Youtube setup procedure may not get all subscriptions

I don't use this program, but I came across it as I was looking for an alternative to the OPML for collecting channelids for a personal project. I just wanted to warn you that the approach you are taking will only get the first ~100 subscriptions. Subscriptions after this are loaded on that page through AJAX requests when scrolling and are not present in the source of the page.

I haven't found any simple solution to this. It looks like it would be quite a bit of trouble to fake the ajax requests because of the multiple tokens it needs to be passed. My current semi-automated approach is to:

  1. Load the subscription page in a browser and scroll down all the way to make sure all channels are loaded
  2. Get the user/channel/custom urls with this javascript code: Array.from(document.getElementsByClassName("channel-link"), x => x.href)
  3. Remove the duplicate links (alternatively you could also probably find a better css selector for step 2)
  4. Scrape each url and get the channelid from the rssUrl in the response. There are channelIds for other channels on some pages so be careful where you get it from, rssUrl seems to work well.

Videos not opening in mpv

When I hit p/enter I get a message at the bottom of the screen and a tick next to the videos but no instance of mpv. I don't have a config file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.