{"id":20331101,"url":"https://github.com/comcast/cea-extractor","last_synced_at":"2025-10-08T22:21:40.449Z","repository":{"id":57195571,"uuid":"79377291","full_name":"Comcast/cea-extractor","owner":"Comcast","description":"Parsing and display logic for CEA-608 caption data in fragmented MP4 files.","archived":false,"fork":false,"pushed_at":"2019-02-13T18:43:24.000Z","size":19118,"stargazers_count":17,"open_issues_count":2,"forks_count":5,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-09-19T22:41:57.307Z","etag":null,"topics":["cea608","cea708","closed-captioning"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Comcast.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}},"created_at":"2017-01-18T19:45:02.000Z","updated_at":"2024-04-01T13:10:41.000Z","dependencies_parsed_at":"2022-09-16T12:12:31.333Z","dependency_job_id":null,"html_url":"https://github.com/Comcast/cea-extractor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Comcast/cea-extractor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fcea-extractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fcea-extractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fcea-extractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fcea-extractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Comcast","download_url":"https://codeload.github.com/Comcast/cea-extractor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comcast%2Fcea-extractor/sbom","scorecard":{"id":32475,"data":{"date":"2025-08-11","repo":{"name":"github.com/Comcast/cea-extractor","commit":"bd9f3839e18bcd24d11e4d81e03947f729d017a4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":2,"reason":"Found 2/9 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":3,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/Comcast/.github/SECURITY.md:1","Warn: no linked content found","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: github.com/Comcast/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T19:28:03.526Z","repository_id":57195571,"created_at":"2025-08-14T19:28:03.526Z","updated_at":"2025-08-14T19:28:03.526Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000782,"owners_count":26082851,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cea608","cea708","closed-captioning"],"created_at":"2024-11-14T20:18:45.697Z","updated_at":"2025-10-08T22:21:40.434Z","avatar_url":"https://github.com/Comcast.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cea608-extractor\n\nThe goal of this project is to provide CEA-608 caption support to web browsers for use\nwith fragmented MP4 playback within an MSE HTML5 source buffer. This project should deal\nwith the parsing and display of this data within the browser. A node utility may be provided\nfor debugging, utility, and testing purposes. A web worker will be provided in order to perform\nthe work in a separate thread if possible. The API should be minimal and work with ArrayBuffer\nobjects which would get appended to an MSE source buffer.\n\nCEA-608 caption data is still widely used in the cable industry, there doesn't seem to be many\nplans for providing native support for this format in the browser. This tool will hope to provide\nfunctionality in regards to parsing and displaying this data for a video element in the browser.\nThe most simplest form of this will be conversion of the CEA-608 data to VTT format for use with\na text track. In situations where styling information is required to be displayed the HTML and\nCSS will be provided to render this data on the DOM.\n\n## Node utility tool\n\n```\nnode bin/index.js input.mp4\n\n[00:00:59 -\u003e 00:01:01]             (BEEPING)           \n[00:01:02 -\u003e 00:01:03]          (COIN DROPPING)        \n[00:01:05 -\u003e 00:01:07]         My name's Ralph,        \n[00:01:05 -\u003e 00:01:07]         and I'm a bad guy.      \n[00:01:10 -\u003e 00:01:15]  Let's see. I'm nine feet tall. \n[00:01:10 -\u003e 00:01:15]  I weigh 643 pounds.            \n[00:01:15 -\u003e 00:01:16]         Got a little bit        \n[00:01:15 -\u003e 00:01:16]         of a temper on me.      \n[00:01:16 -\u003e 00:01:18]     Hey, you moved my stump!    \n[00:01:18 -\u003e 00:01:20]         (GROWLING)              \n[00:01:20 -\u003e 00:01:22]      RALPH: My passion bubbles  \n[00:01:20 -\u003e 00:01:22]      very near the surface,     \n[00:01:22 -\u003e 00:01:24]      I guess, not gonna lie.    \n[00:01:26 -\u003e 00:01:27]       Anyhoo, what else? Uh...  \n[00:01:29 -\u003e 00:01:32]  I'm a wrecker. I wreck things. \n[00:01:29 -\u003e 00:01:32]  Professionally.                \n[00:01:32 -\u003e 00:01:34]   I'm going to wreck it!        \n[00:01:34 -\u003e 00:01:36]     I'm very good at what I do. \n[00:01:34 -\u003e 00:01:36]     Probably the best I know.   \n[00:01:36 -\u003e 00:01:38]                 (YELLING)       \n[00:01:38 -\u003e 00:01:41]      The thing is, fixing       \n[00:01:38 -\u003e 00:01:41]      is the name of the game.   \n[00:01:41 -\u003e 00:01:43]          Literally,             \n[00:01:41 -\u003e 00:01:43]          Fix-It Felix, Jr.      \n[00:01:43 -\u003e 00:01:45]           NICELANDERS:          \n[00:01:43 -\u003e 00:01:45]           Fix it, Felix!\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fcea-extractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomcast%2Fcea-extractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomcast%2Fcea-extractor/lists"}