Using iced-rs library for YT monitoring app

Overview

YouTube Monitoring App (using Rust)

Workflow Status

Description

This app is built on the top of iced library. If you're curious what this is about, check out the YT monitoring App stream series on my YouTube channel.

I have written a blog: I started building an app using Rust and here is how it went… on my experience developing this app so far.

What will this app do, when ready?

  1. Allow users to choose their favorite 12 creators.
  2. Monitor the following for chosen creators:
    • Their live status.
    • Watching of the stream.
    • Live count of subscribers.
  3. The app view will be dynamic based on their live status (including appearance)

Why is this needed?

  • Not always you are notified by YouTube (on time) when a streamer goes live.
  • Developing an app with dynamic views, notifications, JSON parsing, is a good learning experience for me.
  • Iced is a rapidly growing GUI library written in Rust, and I wanted to explore it.

Instructions

Assuming you have cargo installed and rust setup, following Instructions should work:

cargo build
cargo run --release

For development, please ensure that all the tests pass when and if you create a PR using: cargo test. If you are on Linux, you might have to install some extra dependencies before doing cargo run --release:

sudo apt update
sudo apt install build-essential
sudo apt install cmake, pkg-config
sudo apt install fontconfig libfontconfig-dev

Demo

Dark Theme (Sorted by subscriber count)

image

Dark Theme (Sorted by "is_live_status")

image

Light Theme (Sorted by subscriber count)

image

Light Theme (Sorted by "is_live_status")

image

NOTE: Another version of this project is present here.

You might also like...
An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous and blocking clients respectively.

eithers_rust An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous a

(Ab)using technology for fun & profit.

(Ab)using technology for fun & profit. Code accompanying my blog

A mixer for jack-audio using rust and druid UI
A mixer for jack-audio using rust and druid UI

A simple mixer to allow me to use my midi controller (Novation LaunchControl XL) on linux and also to explore the new druid ui. Features volume faders

Serialize & deserialize device tree binary using serde

serde_device_tree Use serde framework to deserialize Device Tree Blob binary files; no_std compatible. Use this library Run example: cargo run --examp

A turing-complete programming language using only zero-width unicode characters, inspired by brainfuck and whitespace.

Zero-Width A turing-complete programming language using only zero-width unicode characters, inspired by brainfuck and whitespace. Currently a (possibl

Quantogram - Approximate Quantile calculation using Histograms
Quantogram - Approximate Quantile calculation using Histograms

Quantogram - Approximate Quantile calculation using Histograms A library for Estimating Online Quantiles of Streams Quantogram accepts a stream of flo

Parse and encoding of data using the SCTE-35 standard.

SCTE-35 lib and parser for Rust Work in progress! This library provide access to parse and encoding of data using the SCTE-35 standard. This standard

Public aircraft & flightroute api Built in Rust for Docker, using PostgreSQL & Redis

api.adsbdb.com public aircraft & flightroute api Built in Rust for Docker, using PostgreSQL & Redis See typescript branch for original typescript vers

Key-value store for embedded systems, for raw NOR flash, using an LSM-Tree.

ekv Key-value store for embedded systems, for raw NOR flash, using an LSM-Tree. Features None yet TODO Everything Minimum supported Rust version (MSRV

Comments
  • Implement `sort_by` feature for cards: Backend

    Implement `sort_by` feature for cards: Backend

    Live streamed on my YouTube channel here: https://www.youtube.com/watch?v=0x0yyOB9VFE. And I'm so happy about it 🎉

    cc: @MOHITWANKHADE for review since it was his idea 😉

    opened by krshrimali 1
  • Custom boxes + Dynamic Views + Appearance

    Custom boxes + Dynamic Views + Appearance

    After this PR, the boxes (for each card) will have backgrounds based on:

    1. Whether the creator is live or not.
    2. What's the theme? Dark/Light

    Solves #9 #2. Maybe, in the future, we'll have more ideas for appearance, but for now, this is okay.

    Dark Theme:

    image

    Light Theme:

    image

    opened by krshrimali 0
  • Preparing for circles

    Preparing for circles

    Either they should show subscriber count (relative size) or based on watching count (relative size).

    This all is dependent on the YT API integration 🤞🏻

    opened by krshrimali 0
  • Milestone v0.1 tracker

    Milestone v0.1 tracker

    Following issues need to be completed before this app's v0.1 is released. These are not arranged on the priority basis.

    • [x] #2
    • [ ] #3
    • [ ] #4
    • [ ] #5
    • [ ] #6
    • [ ] #7
    • [x] #8
    • [x] #9
    enhancement 
    opened by krshrimali 0
Owner
Kushashwa Ravi Shrimali
Full-Stack | Rust | Python | Vue.JS | C++ | Open Source
Kushashwa Ravi Shrimali
rusty-riscy is a performance testing and system resource monitoring tool written in Rust to benchmark RISC-V processors.

rusty-riscy rusty-riscy is a performance testing and system resource monitoring tool written in Rust to benchmark RISC-V processors. Objectives To cre

Suhas KV 4 May 3, 2022
Rust on ESP32 STD "Hello, World" app. A "Hello, world!" STD binary crate for the ESP32[XX] and ESP-IDF.

Rust on ESP32 STD "Hello, World" app A "Hello, world!" STD binary crate for the ESP32[XX] and ESP-IDF. This is the crate you get when running cargo ne

Ivan Markov 138 Jan 1, 2023
Rust app that creates cli quiz for you!

quizer rust app that creates cli quiz for you! Installation Download binary release or build from source using cargo Make binary executable chmod +x /

Fedya Petrakov 1 Sep 5, 2022
VoceChat is a superlight rust written social server. Easy integration to your site/app.

Re-decentralized the Internet through personal cloud computing. VoceChat is the lightest chat server prioritizes private hosting! Easy integratation t

Privoce 134 Feb 22, 2023
Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer.

Multi-platform desktop app to download and run Large Language Models(LLM) locally in your computer ?? Download | Give it a Star ⭐ | Share it on Twitte

Julio Andres 73 Jun 15, 2023
Reverse-engineered Rust client for Instagram's Threads app.

Instagram Threads API Unofficial, Reverse-Engineered Rust client for Instagram's Threads. Usage use threads_api::Threads; let client = Threads::new()

Miguel Piedrafita 66 Jul 12, 2023
Rust library for concurrent data access, using memory-mapped files, zero-copy deserialization, and wait-free synchronization.

mmap-sync mmap-sync is a Rust crate designed to manage high-performance, concurrent data access between a single writer process and multiple reader pr

Cloudflare 97 Jun 26, 2023
Rust 核心库和标准库的源码级中文翻译,可作为 IDE 工具的智能提示 (Rust core library and standard library translation. can be used as IntelliSense for IDE tools)

Rust 标准库中文版 这是翻译 Rust 库 的地方, 相关源代码来自于 https://github.com/rust-lang/rust。 如果您不会说英语,那么拥有使用中文的文档至关重要,即使您会说英语,使用母语也仍然能让您感到愉快。Rust 标准库是高质量的,不管是新手还是老手,都可以从中

wtklbm 493 Jan 4, 2023
Rust explained using easy English

Update 22 December 2020: mdBook can be found here. 28 November 2020: Now also available in simplified Chinese thanks to kumakichi! 1 February 2021: No

null 7.3k Jan 3, 2023
A fast uuid generator in Python using Rust

ruuid A fast UUID generator for Python built using Rust. Its a simple wrapper on top of Rust's UUID crate. How to use? Installation: pip3 install ruui

Rahul Nair 19 Jul 13, 2022