MCPcopy Create free account
hub / github.com/danielmiessler/Fabric / processYoutubeVideo

Function processYoutubeVideo

internal/cli/cli.go:117–177  ·  view source on GitHub ↗
(
	flags *Flags, registry *core.PluginRegistry, videoId string)

Source from the content-addressed store, hash-verified

115}
116
117func processYoutubeVideo(
118 flags *Flags, registry *core.PluginRegistry, videoId string) (message string, err error) {
119
120 if (!flags.YouTubeComments && !flags.YouTubeMetadata && !flags.YouTubeVisual) || flags.YouTubeTranscript || flags.YouTubeTranscriptWithTimestamps {
121 var transcript string
122 var language = "en"
123 if flags.Language != "" || registry.Language.DefaultLanguage.Value != "" {
124 if flags.Language != "" {
125 language = flags.Language
126 } else {
127 language = registry.Language.DefaultLanguage.Value
128 }
129 }
130 if flags.YouTubeTranscriptWithTimestamps {
131 if transcript, err = registry.YouTube.GrabTranscriptWithTimestampsWithArgs(videoId, language, flags.YtDlpArgs); err != nil {
132 return
133 }
134 } else {
135 if transcript, err = registry.YouTube.GrabTranscriptWithArgs(videoId, language, flags.YtDlpArgs); err != nil {
136 return
137 }
138 }
139 message = AppendMessage(message, transcript)
140 }
141
142 if flags.YouTubeVisual {
143 var visualText string
144 var language = "en"
145 if flags.Language != "" {
146 language = flags.Language
147 } else if registry.Language.DefaultLanguage.Value != "" {
148 language = registry.Language.DefaultLanguage.Value
149 }
150 if visualText, err = registry.YouTube.GrabVisual(videoId, language, flags.YtDlpArgs, flags.YouTubeVisualSensitivity, flags.YouTubeVisualFps); err != nil {
151 return
152 }
153 message = AppendMessage(message, visualText)
154 }
155
156 if flags.YouTubeComments {
157 var comments []string
158 if comments, err = registry.YouTube.GrabComments(videoId); err != nil {
159 return
160 }
161
162 commentsString := strings.Join(comments, "\n")
163
164 message = AppendMessage(message, commentsString)
165 }
166
167 if flags.YouTubeMetadata {
168 var metadata *youtube.VideoMetadata
169 if metadata, err = registry.YouTube.GrabMetadata(videoId); err != nil {
170 return
171 }
172 metadataJson, _ := json.MarshalIndent(metadata, "", " ")
173 message = AppendMessage(message, string(metadataJson))
174 }

Callers 1

handleToolProcessingFunction · 0.85

Calls 6

AppendMessageFunction · 0.85
GrabVisualMethod · 0.80
GrabCommentsMethod · 0.80
GrabMetadataMethod · 0.80

Tested by

no test coverage detected