{"id":13453521,"url":"https://github.com/keredson/gnomecast","last_synced_at":"2025-05-15T04:08:06.348Z","repository":{"id":29406581,"uuid":"121594407","full_name":"keredson/gnomecast","owner":"keredson","description":"Chromecast local files from Linux - supports MKV, subtitles, 5.1 sound and 4K!","archived":false,"fork":false,"pushed_at":"2023-07-22T23:46:45.000Z","size":1469,"stargazers_count":1436,"open_issues_count":75,"forks_count":52,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-14T06:49:47.694Z","etag":null,"topics":["4k","cast","chromecast","chromecast-audio","google-cast","python","video"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keredson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-15T05:26:54.000Z","updated_at":"2025-04-08T06:50:32.000Z","dependencies_parsed_at":"2024-01-14T11:08:29.427Z","dependency_job_id":null,"html_url":"https://github.com/keredson/gnomecast","commit_stats":{"total_commits":149,"total_committers":16,"mean_commits":9.3125,"dds":"0.17449664429530198","last_synced_commit":"d42d8915838b01c5cadacb322909e08ffa455d4f"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fgnomecast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fgnomecast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fgnomecast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keredson%2Fgnomecast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keredson","download_url":"https://codeload.github.com/keredson/gnomecast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270656,"owners_count":22042860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["4k","cast","chromecast","chromecast-audio","google-cast","python","video"],"created_at":"2024-07-31T08:00:42.073Z","updated_at":"2025-05-15T04:08:01.329Z","avatar_url":"https://github.com/keredson.png","language":"Python","readme":"![alt text](https://raw.githubusercontent.com/keredson/gnomecast/master/screenshot.png)\n\nGnomecast ![logo](https://github.com/keredson/gnomecast/raw/master/icons/gnomecast_16.png)\n=========\n\nThis is a native Linux GUI for casting local files to Chromecast devices.  It supports:\n\n- Both audio and video files (anything `ffmpeg` can read)\n- Realtime transcoding (only when needed)\n- Subtitles (embedded and external SRT files)\n- Fast scrubbing (waiting 20s for buffering to skip 30s ahead is wrong!)\n- 4K videos on the Chromecast Ultra!\n\nWhat's New\n----------\n\n* `1.9`: Multi video/audio stream support.\n* `1.8`: 5.1/7.1 surround sound E/AC3 support.\n* `1.7`: Drag and drop files into the main UI.\n* `1.6`: Mutiple file / queuing support.\n\nInstall\n-------\nPlease run:\n\n```\n$ sudo apt install ffmpeg python3-pip python3-gi\n$ pip3 install gnomecast\n```\n\nIf installing in a `mkvirtualenv` built virtual environment, make sure you include the `--system-site-packages` parameter to get the GTK bindings.\n\nRun\n---\n\nAfter installing, log out and log back in.  It will be in your launcher:\n\n![alt text](https://raw.githubusercontent.com/keredson/gnomecast/master/launcher.png)\n\nYou can also run it from the command line:\n\n```\n$ gnomecast\n```\n\nOr:\n\n```\n$ python3 -m gnomecast\n```\n\nYou can also configure the port used for the HTTP server via the environment variable `GNOMECAST_HTTP_PORT`:\n\n```\n$ GNOMECAST_HTTP_PORT=8010 python3 -m gnomecast\n```\n\n*Please report bugs, including video files that don't work for you!*\n\nTests\n-----\n\nRun the tests from the commandline:\n```\n$ python3 test_gnomecast.py\n```\n\nMy File Won't Play!\n-------------------\n\nChromecasts are picky, and the built in media receiver doesn't give any feedback regarding why it won't play something.  (It just flashes and quits on the main TV.)  If your file won't play, please click the info button:\n\n![image](https://user-images.githubusercontent.com/2049665/66446007-978b5780-e9fd-11e9-87cc-c01f07c67271.png)\n\nAnd then the \"Report File Doesn't Play\" button:\n\n![image](https://user-images.githubusercontent.com/2049665/66446040-b12c9f00-e9fd-11e9-8acf-b3bc0d28c971.png)\n\nSo I can fix it!\n\nThanks To...\n------------\n\n- https://github.com/balloob/pychromecast\n- https://github.com/pbs/pycaption\n- https://www.ffmpeg.org/\n\nAnd everyone who made this project hit [HN's front page](https://news.ycombinator.com/item?id=16386173) and #2 on GitHub's trending list!  That's so awesome!!!\n\n![alt text](https://raw.githubusercontent.com/keredson/gnomecast/master/trending.png)\n\n\nTranscoding\n-----------\nChromecasts only support a handful of media formats.  See: https://developers.google.com/cast/docs/media\n\nSo some amount of transcoding is necessary if your video files don't conform.  But we're smart about it.  If you have an `.mkv` file with `h264` video and `AAC` audio, we use `ffmpeg` to simply rewrite the container (to `.mp4`) without touching the underlying streams, which my XPS 13 can at around 100x realtime (it's fully IO bound).\n\nNow if you have that same `.mkv` file with and `A3C` audio stream (which Chromecast doesn't support) we'll rewrite the container, copy the `h264` stream as is and only transcode the audio (at about 20x).\n\nIf neither your file's audio or video streams are supported, then it'll do a full transcode (at around 5x).\n\nWe write the entire transcoded file to your `/tmp` directory in order to make scrubbing fast and glitch-free, a good trade-off IMO.  Hopefully you're not running your drive at less than one video's worth of free space!\n\nSubtitles\n---------\nChromecast only supports a handful of subtitle formats, `.srt` not included.  But it does support [WebVTT](https://w3c.github.io/webvtt/).  So we extract whatever subtitles are in your video, convert them to WebVTT, and then reattach them to the video through Chomecast's API.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeredson%2Fgnomecast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeredson%2Fgnomecast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeredson%2Fgnomecast/lists"}