A platform which give you info about the newest video on a channel

Overview

youtube

BuyMeCoffee

A platform which give you info about the newest video on a channel.

This uses web scraping, a better implementation will be to use the API.

example

BREAKING CHANGE

Video views and stars are now reported. As a result any automations triggered by state will now be triggered when the number of views or stars changes. To avoid this, add the url attribute to the trigger so that the automation is only triggered when the reported url changes ie:

trigger:
  - platform: state
    entity_id: sensor.franck_nijhof
    attribute: url

Installation

To get started put all the files from/custom_components/youtube/ here: /custom_components/youtube/

Example configuration.yaml

sensor:
  platform: youtube
  channel_id: UCZ2Ku6wrhdYDHCaBzLaA3bw

Configuration variables

key type description
platform (Required) string The platform name.
channel_id (Required) string The Channel ID of the Youtube channel.

State and Attributes

State

  • The name of the most recent video

Attributes

  • url: URL of the most recent video
  • content_id: the content ID (useful for sending to certain media players)
  • published: The time and date the video was published
  • stars: The 'stars' recieved on youtube. (This is all reactions both 👍 and 👎 combined)
  • views: the number of video views
  • stream: If the video was streamed live
  • stream_start: datetime of the start of a live stream
  • live: If the video is live now
  • channel_is_live: If any video on the channel is live
  • channel_image: URL of the channel logo image

Comments
  • Can't find sensor

    Can't find sensor

    What is the sensor that this integration makes named? I tried searching for "youtube" in my entities and didn't find anything. Does this integration still work?

    Stale 
    opened by julianrinaldi 17
  • youtube redirect causes multiple attribute failures

    youtube redirect causes multiple attribute failures

    I've only recently found this component and am using 0.6.0 to feed in a few latest streams of a few favourite channels.

    However, over the last couple of days I've noticed that "channel Image" has disappeared from all my sensors.

    Anyone also having this issue?

    opened by craigmcgowan 10
  • Live attribute not working again!

    Live attribute not working again!

    Version of the custom_component

    0.3.1

    Describe the bug Live attribute is not working again (ref #8). Youtube have changed the page again, BADGE_STYLE_TYPE_LIVE_NOW (ref #9) is now also not used

    log

    None
    

    I'm looking into alternatives

    opened by pinkywafer 9
  • Make last uploaded video a clickable link

    Make last uploaded video a clickable link

    Is your feature request related to a problem? Please describe. NO

    Describe the solution you'd like I would like the last video uploaded link clickable, so when you click it in lovelace it will take you to the video

    Describe alternatives you've considered None

    Additional context I would like the link to be a highlighted and underlined link to the last available uploaded video to a channel.

    opened by allenrobberson 5
  • Does this still work?

    Does this still work?

    I installed via HACS and added everything but no entities show up. No errors in logs either, no nothing in the logs other than the "youtube which has not been tested by Home Assistant" warning at HA startup.

    I'm just wondering if Google changed something breaking this. Doesn't look like any of the files have been updated in some time.

    opened by Krojack 4
  • extensive use results in platform XY is taking over 10 seconds.

    extensive use results in platform XY is taking over 10 seconds.

    Version of the custom_component 0.1.2

    Describe the bug When more then 10 sensors are set up HA is getting hiccups while starting up.

    log

    2019-05-14 11:54:00 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for youtube which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
    
    
    2019-05-14 11:54:06 WARNING (MainThread) [homeassistant.setup] Setup of android_ip_webcam is taking over 10 seconds.
    2019-05-14 11:54:06 WARNING (MainThread) [homeassistant.setup] Setup of group is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.binary_sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.climate] Setup of platform tado is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.media_player] Setup of platform androidtv is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.calendar] Setup of platform google is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.calendar] Setup of platform google is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.calendar] Setup of platform google is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.calendar] Setup of platform google is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.calendar] Setup of platform google is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform file is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform file is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform file is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform time_date is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform yr is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform systemmonitor is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform template is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform youtube is taking over 10 seconds.
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.sensor] Setup of platform mqtt is taking over 10 seconds.
    2019-05-14 11:54:24 ERROR (MainThread) [homeassistant.components.yr.sensor] Retrying in 16 minutes: 
    2019-05-14 11:54:24 WARNING (MainThread) [homeassistant.components.media_player] Platform androidtv not ready yet. Retrying in 30 seconds.
    2019-05-14 11:54:32 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
    Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 357, in _async_add_entity
        raise HomeAssistantError(msg)
    
    
    Stale 
    opened by Underknowledge 4
  • Doesn't Seem to Work with HA 2021.7.4. Or is it my channel?

    Doesn't Seem to Work with HA 2021.7.4. Or is it my channel?

    Version of the custom_component

    Latest version

    Describe the bug I see there are previous reports of this not working without any sign in the error log. This is exactly the issue that I'm facing. It's weird, if there are errors, they aren't being logged. Any ideas?

    My config:

    • platform: youtube channel_id: UCaCE5pzy49M8nQ59plgmFOA

    log

    2021-08-05 10:19:35 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration youtube which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
    2021-08-05 10:20:05 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    
    Stale 
    opened by jtitley 3
  • Channels are not showing as live

    Channels are not showing as live

    HACS add-on is not showing the YouTube when anyone is streaming live.

    I'm on 2021.4.1

    This has not worked since march update.2021.3

    It worked great until then

    opened by nytram-md 3
  • 2 Channels ?

    2 Channels ?

    Version of the custom_component 0.8.0 - latest HA (core-2021.8.8)

    Describe the bug as soon as i add a second channel_id it can't be parsed.

      - platform: youtube
        channel_id: XXXXXXX
        channel_id: XXXXXXX
    
    opened by riotm0de 2
  • Fixes broken live attribute again

    Fixes broken live attribute again

    closes #11

    Rather than searching the channel page, this searches the latest video page for '{"key":"is_viewed_live","value":"True"}'

    opened by pinkywafer 2
  • Various warnings in 2021.12

    Various warnings in 2021.12

    Version of the custom_component

    version 0.8.0 Describe the bug Warnings about The loop keyword argument is deprecated Issue is since core-2021.12 log

     Logger: homeassistant.helpers.frame
    Source: helpers/frame.py:103
    First occurred: 05:30:20 (4 occurrences)
    Last logged: 05:30:23
    
        Detected integration that called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2. Please report issue to the custom component author for youtube using this method at custom_components/youtube/sensor.py, line 39: async with async_timeout.timeout(10, loop=hass.loop):
        Detected integration that called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2. Please report issue to the custom component author for youtube using this method at custom_components/youtube/sensor.py, line 74: async with async_timeout.timeout(10, loop=self.hass.loop):
        Detected integration that called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2. Please report issue to the custom component author for youtube using this method at custom_components/youtube/sensor.py, line 139: async with async_timeout.timeout(10, loop=hass.loop):
        Detected integration that called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2. Please report issue to the custom component author for youtube using this method at custom_components/youtube/sensor.py, line 156: async with async_timeout.timeout(10, loop=hass.loop):
    
    
    Add your logs here.
    
    opened by DavyRoswinkel 1
  • Channel has lot of database commit errors.

    Channel has lot of database commit errors.

    Version of the custom_component 0.9.1

    Describe the bug One Youtube channel (channel_id: UCFHtCB_FWXQ8GpjgfYcD8-g) has lot of database commit errors. I think that smileys that channel creator often uses in comments can be cause for that. Database software is MariaDB 2.5.1 (Home Assistant add-on).

    **log 1/2 ** `Logger: homeassistant.components.recorder.core Source: components/recorder/core.py:941 Integration: Recorder (documentation, issues) First occurred: 10:06:08 (66 occurrences) Last logged: 20:26:08

    SQLAlchemyError error processing task CommitTask(): This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 16, 54, 23, 976357, tzinfo=datetime.timezone.utc), None, 1446853, '01GF3ZG1F8H6SW8PS7JWG3BJN5', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) SQLAlchemyError error processing task CommitTask(): This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 2, 54, 180644, tzinfo=datetime.timezone.utc), None, 1446903, '01GF3ZZKQ4MN3EZWN6CGDJESKQ', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) SQLAlchemyError error processing task CommitTask(): This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 9, 24, 157669, tzinfo=datetime.timezone.utc), None, 1446959, '01GF40BGHX29CYY5CCMQJ4VH3A', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) SQLAlchemyError error processing task CommitTask(): This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 20, 54, 663805, tzinfo=datetime.timezone.utc), None, 1447030, '01GF410JW7MR4PXZVZF8X8BS8Z', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) SQLAlchemyError error processing task CommitTask(): This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 25, 54, 165620, tzinfo=datetime.timezone.utc), None, 1447056, '01GF419QBNR39RT4Z5HGMND3FW', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/recorder/core.py", line 673, in _process_one_task_or_recover self._commit_event_session_or_retry() File "/usr/src/homeassistant/homeassistant/components/recorder/core.py", line 922, in _commit_event_session_or_retry self._commit_event_session() File "/usr/src/homeassistant/homeassistant/components/recorder/core.py", line 941, in _commit_event_session self.event_session.commit() File "/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1451, in commit self._transaction.commit(_to_root=self.future) File "/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 827, in commit self._assert_active(prepared_ok=True) File "/usr/local/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 601, in _assert_active raise sa_exc.PendingRollbackError( sqlalchemy.exc.PendingRollbackError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), None, 1443375, '01GF2XTD3MJZQMFTAFSMFNZT09', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8) (Background on this error at: https://sqlalche.me/e/14/7s2a) `

    log 2/2 `Logger: homeassistant.components.recorder.core Source: components/recorder/core.py:649 Integration: Recorder (documentation, issues) First occurred: 10:06:05 (66 occurrences) Last logged: 20:26:05

    Error in database connectivity during commit: Error executing query: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 16, 54, 23, 976357, tzinfo=datetime.timezone.utc), None, 1446853, '01GF3ZG1F8H6SW8PS7JWG3BJN5', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8). (retrying in 3 seconds) Error in database connectivity during commit: Error executing query: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 2, 54, 180644, tzinfo=datetime.timezone.utc), None, 1446903, '01GF3ZZKQ4MN3EZWN6CGDJESKQ', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8). (retrying in 3 seconds) Error in database connectivity during commit: Error executing query: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 9, 24, 157669, tzinfo=datetime.timezone.utc), None, 1446959, '01GF40BGHX29CYY5CCMQJ4VH3A', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8). (retrying in 3 seconds) Error in database connectivity during commit: Error executing query: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 20, 54, 663805, tzinfo=datetime.timezone.utc), None, 1447030, '01GF410JW7MR4PXZVZF8X8BS8Z', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8). (retrying in 3 seconds) Error in database connectivity during commit: Error executing query: (MySQLdb.OperationalError) (1366, "Incorrect string value: '\xF0\x9F\x8E\xA5 @...' for column homeassistant.states.state at row 1") [SQL: INSERT INTO states (entity_id, state, attributes, event_id, last_changed, last_updated, old_state_id, attributes_id, context_id, context_user_id, context_parent_id, origin_idx) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)] [parameters: ('sensor.passenger', 'So nice to be back in Australia! Here’s a bit of @Natalie Imbruglia in Fremantle.🎥 @Jarrad Seng', None, None, datetime.datetime(2022, 10, 11, 7, 5, 51, 988247, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 11, 17, 25, 54, 165620, tzinfo=datetime.timezone.utc), None, 1447056, '01GF419QBNR39RT4Z5HGMND3FW', None, None, 0)] (Background on this error at: https://sqlalche.me/e/14/e3q8). (retrying in 3 seconds)`

    opened by miXza81 0
  • Use state of my subscription feed instead of specific channel

    Use state of my subscription feed instead of specific channel

    Is your feature request related to a problem? Please describe. I'd like all my Youtube subscription notifications to come through HA, but adding each and every subscription (and it's subsequent automation) is a lot and can be a lot to maintain.

    Describe the solution you'd like So, rather than adding each of my subscriptions as a sensor, I was wondering if this project could somehow point to my subscription feed and use that instead.

    Describe alternatives you've considered Alternatives... I guess would be adding each channel I sub to as a sensor and create automation for it.

    Feature Request Enhancement Undecided 
    opened by rileytb 2
  • YouTube sensor rarely loads

    YouTube sensor rarely loads

    Version of the custom_component version 0.9.0

    Describe the bug On one of my setups, when properly configuring sensors, they just don't load or get created. Exactly the same configuration on test system load nicely and works.

    Out of 30 system restarts, it works once which is also strange that it would work at all.

    Debugging is enabled for component, but not helping much and not additional errors or log entries are available.

    Can further logging be added in component to try better pinpoint the issue?

    Also, got same feedback from few other viewers that tried to add it to their system, with same problem that no sensor is ever created, even with proper sensor configuration.

    log

    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    2022-05-27 22:40:47 WARNING (MainThread) [homeassistant.components.sensor] Setup of sensor platform youtube is taking over 10 seconds.
    

    And later, just this. All channel ID's are correct, tested by hand and also on second setup where it loads.

    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    2022-05-27 22:40:52 DEBUG (MainThread) [custom_components.youtube.sensor] Unable to set up - 
    
    opened by BeardedTinker 7
  • Home Assistant Config Check Error

    Home Assistant Config Check Error

    Version of the custom_component 0.8.0

    Describe the bug For at least the past couple Home Assistant versions, the YouTube component fails the configuration check. This probably started with HA 2021.10 (but might have been earlier), but is still present in the current check against HA 2021.11.2. It doesn't appear to impact the actual upgrade, and as far as I can tell the YouTube add-on still functions after the upgrade (at least to 2021.10.7)

    log

    [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
    [s6-init] ensuring user provided files have correct perms...exited 0.
    [fix-attrs.d] applying ownership & permissions fixes...
    [fix-attrs.d] done.
    [cont-init.d] executing container initialization scripts...
    [cont-init.d] done.
    [services.d] starting services
    [services.d] done.
    [07:27:10] INFO: Don't worry, this temporary installation is not overwriting your current one.
    [07:27:10] INFO: Installing Home Assistant: latest...
    [07:27:10] INFO: Please be patient, this might take a few minutes...
    [07:28:02] INFO: Installed Home Assistant 2021.11.2
    [07:28:02] INFO: Making a copy of your configuration for checking...
    [07:28:02] INFO: Checking your configuration against this version...
    [07:30:00] ERROR: The configuration check did not pass!
    [07:30:00] ERROR: See the output below for more details.
    Testing configuration at /tmp/config
    Failed config
      General Errors: 
        - Platform error sensor.youtube - No module named 'dateutil'
    
    Successful config (partial)
    [07:30:00] INFO: The full output has been written to /share/check_config.txt
    [cont-finish.d] executing container finish scripts...
    [cont-finish.d] done.
    [s6-finish] waiting for services.
    [s6-finish] sending all processes the TERM signal.
    [s6-finish] sending all processes the KILL signal and exiting.
    
    Stale 
    opened by Resinchem 2
  • Add search for youtube videos

    Add search for youtube videos

    Could you add to the Youtube integration the ability to search for videos by any query and a sensor that will output code variants based on the search.

    Why is this necessary? There is a speaker with a built-in voice assistant and you can ask the voice assistant to do something. Turning to the voice assistant with a request to find something, an event arrives in the Home Assistant

    {
        "event_type": "yandex_intent",
        "data": {
            "text": "Alice find documentaries about space",
            "command": "Alice find documentaries about space",
            "intent": "YANDEX.BOOK.SEARCH",
            "book": "documentaries about space"
        },
        "origin": "LOCAL",
        "time_fired": "2021-10-14T14:20:02.517357+00:00",
        "context": {
            "id": "e802961a0196af60036511eb117d398f",
            "parent_id": null,
            "user_id": null
        }
    }
    

    Based on this event, a trigger is used

    platform: event
    event_type: yandex_intent
    event_data:
      intent: YANDEX.BOOK.SEARCH
    

    In the action, a link is indicated with the search for the desired topic and a youtube video search is launched on the TV

    service: webostv.command
    data:
      entity_id: media_player.tv_bedroom
      command: system.launcher/open
      payload:
        target: >-
          https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
    

    Thus we get a search result with the topic documentaries about space www.youtube.com/results?search_query=documentaries+about+space image

    The problem is that not all Smart TVs are able to work with such a code https://www.youtube.com/results?search_query ={{search|replace(" ", "+")}}, and to include any content, you need to specify the content code https://www.youtube.com/watch?v=DKM9d5CZUxk . Below I have given two examples and each example is working, but for example in LG TVs. Does not work https://www.youtube.com/results?search_query ={{ trigger.event.data.book|replace(" ", "+") }}, and only DKM9d5CZUxk works (https://www.youtube.com/watch?v=DKM9d5CZUxk ) . And having created a service that will receive input text on a given topic and video options will be issued in the sensor or there will be one selected code that was selected by random method, then it can be used in TV services to launch videos through a voice assistant.

    A variant of work with the indication of the video code for LG TVs

    service: webostv.command
    data:
      command: system.launcher/launch
      entity_id: media_player.tv_lg_bedroom
      payload:
        id: youtube.leanback.v4
        contentId: DKM9d5CZUxk
    

    The option of specifying the code on request for Android-based TVs

    service: media_player.play_media
    data:
      media_content_type: video/youtube
      media_content_id: >-
        https://www.youtube.com/results?search_query={{ trigger.event.data.book|replace(" ", "+") }}
    target:
      entity_id: media_player.tv_lg_bedroom
    

    For understanding, a link to the source Search for Youtube Videos

    Where the author of the article points to a variant of the code that extracts the codes on request

    import urllib.request
    import re
    
    html = urllib.request.urlopen("https://www.youtube.com/results?search_query=mozart")
    video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
    print(video_ids)
    

    and the search result is given, where there will be several variants of the code to launch the video

    ['shoVsQhou-8', 'shoVsQhou-8', 'Rb0UmrCXxVA', 'Rb0UmrCXxVA', 'iUohO2MSot8', 'iUohO2MSot8', 'QEDZd066a2k', 'QEDZd066a2k', 'QHl6wYCwlcQ', 'QHl6wYCwlcQ',
    ......
    (not all identifiers included to keep the output small)
    ...
    'FpK1tjbeeA0', 'FpK1tjbeeA0', 'sjTLIW-qx_A', 'sjTLIW-qx_A', 'pB2p_r5Gvs8']
    

    To start a video, the following code is usually specified https://www.youtube.com/watch?v=Rb0UmrCXxVA

    If you use several code variants, you can selectively run the video https://www.youtube.com/watch?v={{ ['shoVsQhou-8', 'shoVsQhou-8', 'Rb0UmrCXxVA', 'Rb0UmrCXxVA', 'iUohO2MSot8', 'iUohO2MSot8', 'QEDZd066a2k', 'QEDZd066a2k', 'QHl6wYCwlcQ', 'QHl6wYCwlcQ']|random }} or https://www.youtube.com/watch?v={{ states("sensor.search_youtube_video")}}

    Of course, you can use this option, but it does not work in all TV https://www.youtube.com/results?search_query="{{search|replace(" ", "+")}}"

    This code is pulled from this source. Here we are talking about pulling out audio, but you can also output video

    @commands.command(name='test')
        async def test(self, ctx):
    
            search = "morpheus tutorials discord bot python"
    
            if ctx.message.author.voice == None:
                await ctx.send(embed=Embeds.txt("No Voice Channel", "You need to be in a voice channel to use this command!", ctx.author))
                return
    
            channel = ctx.message.author.voice.channel
    
            voice = discord.utils.get(ctx.guild.voice_channels, name=channel.name)
    
            voice_client = discord.utils.get(self.client.voice_clients, guild=ctx.guild)
    
            if voice_client == None:
                voice_client = await voice.connect()
            else:
                await voice_client.move_to(channel)
    
            search = search.replace(" ", "+")
    
            html = urllib.request.urlopen("https://www.youtube.com/results?search_query=" + search)
            video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
    
            
            await ctx.send("https://www.youtube.com/watch?v=" + video_ids[0])
    
            song = pafy.new(video_ids[0])  # creates a new pafy object
    
            audio = song.getbestaudio()  # gets an audio source
    
            source = FFmpegPCMAudio(audio.url, **FFMPEG_OPTIONS)  # converts the youtube audio source into a source discord can use
    
            voice_client.play(source)  # play the source 
    
    Feature Request Enhancement Undecided 
    opened by DivanX10 1
Releases(0.9.1)
  • 0.9.1(Jul 4, 2022)

  • 0.9.0(Dec 17, 2021)

    What's Changed

    • don't pass in loop to async_timeout by @pinkywafer in https://github.com/custom-components/youtube/pull/50
    • 'device_state_attributes' is now deprecated by @mjoshd in https://github.com/custom-components/youtube/pull/48
    • extra_state_attributes requires H.A 2021.4.0 or greater by @pinkywafer in https://github.com/custom-components/youtube/pull/51
    • adds content_id attribute by @pinkywafer in https://github.com/custom-components/youtube/pull/52

    New Contributors

    • @mjoshd made their first contribution in https://github.com/custom-components/youtube/pull/48

    Full Changelog: https://github.com/custom-components/youtube/compare/0.8.0...0.9.0

    Source code(tar.gz)
    Source code(zip)
    youtube.zip(2.54 KB)
  • 0.8.0(Jul 8, 2021)

  • 0.7.0(May 5, 2021)

  • 0.6.0(Feb 8, 2021)

  • 0.5.0(Jan 20, 2021)

    • fixes channel_is_live for channels that add live shows in advance and adds channel_image attribute (#23)
    • adds stars and views attributes (#24)
    • updates docs (#25)

    BREAKING CHANGE

    Video views and stars are now reported. As a result any automations triggered by state will now be triggered when the number of views or stars changes. To avoid this, add the url attribute to the trigger so that the automation is only triggered when the reported url changes ie:

    trigger:
      - platform: state
        entity_id: sensor.franck_nijhof
        attribute: url
    
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Jan 15, 2021)

    • Fixes live attribute which was broken for users in countries where language default is not English (#19)
    • Adds stream attribute to indicate a video which is or was a live stream (#20)
    • Adds channel_is_live attribute to indicate that a channel is live (even if not the latest video) (#21)
    • Documentation updates
    Source code(tar.gz)
    Source code(zip)
  • 0.3.3(Oct 19, 2020)

  • 0.3.2(Oct 19, 2020)

  • 0.3.1(Oct 2, 2020)

Owner
Custom components for Home Assistant
A selection of community made custom_components for Home Assistant
Custom components for Home Assistant
VIT - VideoInTerminal. A quick piece of code to play videos in your terminal using python

VIT VIT - VideoInTerminal. A quick piece of code to play videos in your terminal using python.

ShellTear 3 Mar 03, 2022
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality v

OpenShot Studios, LLC 3.1k Jan 01, 2023
A Telegram bot to convert videos into x265/x264 format via ffmpeg.

Video Encoder Bot A Telegram bot to convert videos into x265/x264 format via ffmpeg. Configuration Add values in environment variables or add them in

1 Mar 08, 2022
A way to run youtube videos in TTY

TTY youtube client its finally here, the one thing literally NO ONE ASKED FOR!! A way to run youtube videos in TTY Dependencies: (pip) yt-search (syst

1 Nov 28, 2021
A platform which give you info about the newest video on a channel

youtube A platform which give you info about the newest video on a channel. This uses web scraping, a better implementation will be to use the API. BR

Custom components for Home Assistant 36 Sep 29, 2022
Stream-Cli application that allow you to play your favorite movies from the terminal

Stream-Cli application that allow you to play your favorite movies from the terminal

redouane 380 Jan 08, 2023
Komposition - The video editor built for screencasters

Komposition The video editor built for screencasters Tutorial Video | Introduction | Installation Documentation See the documentation and user guide.

Oskar Wickström 428 Jan 08, 2023
Youtube-dislikes-adder - Add dislikes to the description of your YouTube videos.

Add number of dislikes to the description of your YouTube videos. Number of dislikes are updated if you let this function as a bot.

fluks 1 Aug 23, 2022
I have baked a custom integration to control Eufy Security Cameras and access RTSP and P2P stream if possible.

I have baked a custom integration to control Eufy Security Cameras and access RTSP (real time streaming protocol) and P2P (peer to peer) stream if pos

Fuat Akgün 422 Jan 01, 2023
Python application that can be used to generate video thumbnail for mp4 and mkv file types.

Thumbnail Generator 🎬 What is This This is a Python application that can be used to generate video thumbnail for mp4 and mkv file types. Installation

Tharindu N. 13 Jan 03, 2023
Video Editor for Linux

Project on break until late March. NEW RELEASE 2.8 IS OUT NOW. INSTALLING: see here. RELEASE NOTES AVAILABLE here. Introduction Features Releases Inst

1.9k Jan 07, 2023
A simple Python Youtube Wachtime for YTbebot

Simple bot that was development in python 3.7, that automatically watch youtube videos. It can be used to give more views in your channel helping in the spread and increase the followers because your

Rian eka wiratma 1 Dec 05, 2021
A Advanced Anime Theme VC Video Player created for playing vidio in the voice chats of Telegram Groups

Yui Vidio Player A Advanced Anime Theme VC Video Player created for playing vidio in the voice chats of Telegram Groups Demo Setting up Add this Bot t

Achu biju 32 Sep 16, 2021
Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology

WebRTC Camera Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology. Based on: Pion - pure Go implem

Alex X 739 Dec 30, 2022
Simple nightcore song+video maker

nighty nighty is a simple nightcore song maker (+ video) Installation clone the repo wherever you want git clone https://www.github.com/DanyB0/nighty

DanyB0 2 Oct 02, 2022
A Python extension that provides bindings to WebRTC M92

This project follows the W3C specification with some modifications and additions to make it work better with Python applications, with useful APIs like programmatic audio and video.

Il'ya 104 Dec 26, 2022
It is a simple python package to play videos in the terminal using characters as pixels

It is a simple python package to play videos in the terminal using characters as pixels

Joel Ibaceta 1.4k Jan 07, 2023
Become a virtual character with just your webcam!

Become a virtual character with just your webcam!

Rich 300 Jan 03, 2023
Stream music with ffmpeg and python

youtube-stream Stream music with ffmpeg and python original Usage set the KEY in stream.sh run server.py run stream.sh (You can use Git bash or WSL in

Giyoung Ryu 14 Nov 17, 2021
Automatic video generator for local news

Automatic video generator for local news

Gabriel Monteiro 2 Jan 11, 2022