{"id":28066141,"url":"https://github.com/futzu/gums","last_synced_at":"2025-05-12T14:38:09.248Z","repository":{"id":41312989,"uuid":"480229448","full_name":"futzu/gums","owner":"futzu","description":"gums is a Multicast (UDP) Stream Sender. gumc is a Multicast(UDP) Stream Client. Up and running in 3 lines of code, or it's Free. ","archived":false,"fork":false,"pushed_at":"2024-04-17T18:47:45.000Z","size":88,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-12T14:38:05.481Z","etag":null,"topics":["boobs","gogoboots","mcast","mpegts","mten3","multicast","multicast-streams","naked","python3","streaming","video"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/futzu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-04-11T04:45:18.000Z","updated_at":"2025-04-03T19:28:42.000Z","dependencies_parsed_at":"2023-07-17T01:12:22.226Z","dependency_job_id":"e62f43ed-dac0-4e3b-98b6-7d1b3743a8d1","html_url":"https://github.com/futzu/gums","commit_stats":null,"previous_names":["futzu/gumd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fgums","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fgums/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fgums/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futzu%2Fgums/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futzu","download_url":"https://codeload.github.com/futzu/gums/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253755883,"owners_count":21959104,"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":["boobs","gogoboots","mcast","mpegts","mten3","multicast","multicast-streams","naked","python3","streaming","video"],"created_at":"2025-05-12T14:38:08.312Z","updated_at":"2025-05-12T14:38:09.229Z","avatar_url":"https://github.com/futzu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `G`\u003cI\u003erande\u003c/I\u003e `U`\u003cI\u003enicast\u003c/I\u003e `M` \u003cI\u003eulticast\u003c/I\u003e `S` \u003cI\u003eender\u003c/I\u003e \n\n\n###  `gums` is multicast that just works, right out of the box.\n---\n\n## gums is designed for multicast mpegts video, but works with any multicast stream.\n\n### Latest is v.`0`.`0`.`31`\n\n ![image](https://github.com/futzu/gums/assets/52701496/f8bfad92-2e1e-47c1-a5b2-53e5d3152e0f)\n\n\n\n\n## __Install__\n\n```smalltalk\n\npython3 -mpip install gums\n\n```\n\n\n\n\n### Use gums (Sender) programmatically\n```py3\na@debian:~/gums$ pypy3\nPython 3.9.16 (7.3.11+dfsg-2, Feb 06 2023, 16:52:03)\n[PyPy 7.3.11 with GCC 12.2.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e\u003e from gums import GumS\n\u003e\u003e\u003e\u003e gummie = GumS(\"235.35.3.5:3535\")\n\u003e\u003e\u003e\u003e gummie.send_stream(\"/home/a/mpegts/pcrvid.ts\")\n\n\tMulticast Stream\n\tudp://@235.35.3.5:3535\n\n\tSource\n\t0.0.0.0:38835\n\n49636512 Bytes Sent\n\n\u003e\u003e\u003e\u003e \n\n```\n\n## __gums (Sender) cli__\n\n   * Supported input mpegts URIs:\n   \n     * files  `gums -i /home/me/vid.ts`\n     \n     * http(s) `gums -i https://futzu.com/xaa.ts`\n     \n     * udp `gums -i udp://127.0.0.1:4000`\n\n     * multicast `gums -i udp://@235.1.2.3:4567`\n     \n     * reading from stdin `cat myvideo.ts | gums`\n\n```smalltalk\nusage: gums [-h] [-i INPUT] [-a ADDR] [-b BIND_ADDR] [-t TTL] [-v]\n\noptional arguments:\n  -h, --help           Show this help message and exit\n\n-i INPUT, --input INPUT\n                       Like \"/home/a/vid.ts\" or \"udp://@235.35.3.5:3535\" or \"https://futzu.com/xaa.ts\"\n\n-a ADDR, --addr ADDR     \n                       Destination IP:Port like \"227.1.3.10:4310\"\n\n-b BIND_ADDR, --bind_addr BIND_ADDR\n                        \n                       Local IP to bind to like \"192.168.1.34\". Default is 0.0.0.0\n\n-t TTL, --ttl TTL       \n                       Multicast TTL 1 - 255\n\n-v, --version          \n                       Show version\n\n```\n#### __start gums (Sender) cli__\n```smalltalk\na@debian:~/gums$ gums -i any.file \nstream uri: udp://@235.35.3.5:3535\na@debian:~/gums$ \n```\n## __gumc (Client) cli__\n```lua\nusage: gumc [-h] [-i INSTUFF] [-b BYTESIZE] [-v]\n\noptions:\n  -h, --help            show this help message and exit\n  -i INSTUFF, --instuff INSTUFF\n                        default is 'udp://@235.35.3.5:3535'\n  -b BYTESIZE, --bytesize BYTESIZE\n                        Number of bytes to read. default is to read all.\n  -v, --version         Show version\n```\n\n### start gumc (Client) cli\n```lua\na@debian:~/build/clean/gums$ gumc -i udp://@235.35.3.5:3535 -b 1024\n\n```\n### Test gums and gumc together\n* first terminal, start the client, __gumc__\n```lua\na@debian:~/build/clean/gums$  gumc -b 5 -i udp://@235.35.3.5:3535\n```\n* second terminal,start the sender, gums__ and send a \"hello\"\n```lua\na@debian:~/build/clean/gums$ printf 'hello' | gums -a 235.35.3.5:3535\nstream uri: udp://@235.35.3.5:3535\n```\n### read all bytes from  multicast stream and write to file with gumc (Client)\n```lua\ngumc -i udp://@235.35.3.5:3535 -o output.ts\n```\n### read 13 bytes from a multicast stream with gumc (Client)\n ```lua\n gumc -i udp://@235.35.3.5:3535 -b 13\n ```\n### read 10000 bytes from a multicast stream with gumc (Client)\n ```lua\n  gumc -i udp://@235.35.3.5:3535 -b 10000\n```\n\n___\n\n\n\n___\n\n![image](https://user-images.githubusercontent.com/52701496/166299701-72ee908a-5053-45fc-a716-4b8ca4b1ef32.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffutzu%2Fgums","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffutzu%2Fgums","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffutzu%2Fgums/lists"}