Liss, Alex (NYC-HUG) commited on
Commit
0698457
·
1 Parent(s): 407acbd

Add trace implementation and documentation; removed old files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .env.example +0 -11
  2. api/trace_implementation.md +338 -0
  3. components/.gradio/certificate.pem +0 -31
  4. components/game_recap_component.py +0 -292
  5. components/player_card_component.py +0 -158
  6. components/team_story_component.py +0 -63
  7. data/.env.example +0 -11
  8. data/49ers roster - Sheet1.csv +0 -74
  9. data/49ers_fan_communities_clean_GOOD.csv +0 -384
  10. data/april_11_multimedia_data_collect/49ers_2024_column_definitions.csv +0 -62
  11. data/april_11_multimedia_data_collect/49ers_2024_enhanced_stats.csv +0 -0
  12. data/april_11_multimedia_data_collect/game_stats.py +0 -392
  13. data/april_11_multimedia_data_collect/get_player_socials.py +0 -239
  14. data/april_11_multimedia_data_collect/get_youtube_playlist_videos.py +0 -65
  15. data/april_11_multimedia_data_collect/match_highlights.py +0 -196
  16. data/april_11_multimedia_data_collect/merge_schedule_logos.py +0 -24
  17. data/april_11_multimedia_data_collect/neo4j_article_uploader.py +0 -146
  18. data/april_11_multimedia_data_collect/new_final_april 11/neo4j_game_update/SCHEMA.md +0 -44
  19. data/april_11_multimedia_data_collect/new_final_april 11/neo4j_game_update/update_game_nodes.py +0 -205
  20. data/april_11_multimedia_data_collect/new_final_april 11/neo4j_player_update/update_player_nodes.py +0 -230
  21. data/april_11_multimedia_data_collect/new_final_april 11/roster_april_11.csv +0 -74
  22. data/april_11_multimedia_data_collect/new_final_april 11/schedule_with_result_april_11.csv +0 -18
  23. data/april_11_multimedia_data_collect/new_games_with_highlights.csv +0 -18
  24. data/april_11_multimedia_data_collect/new_niners_players_with_highlights.csv +0 -74
  25. data/april_11_multimedia_data_collect/new_team_highlights.csv +0 -0
  26. data/april_11_multimedia_data_collect/nfl-2024-san-francisco-49ers-with-results.csv +0 -18
  27. data/april_11_multimedia_data_collect/nfl_team_logos.csv +0 -63
  28. data/april_11_multimedia_data_collect/nfl_team_logos_revised.csv +0 -33
  29. data/april_11_multimedia_data_collect/niners_players_headshots.csv +0 -74
  30. data/april_11_multimedia_data_collect/niners_players_headshots_with_socials_merged.csv +0 -74
  31. data/april_11_multimedia_data_collect/niners_players_with_highlights.csv +0 -74
  32. data/april_11_multimedia_data_collect/player_headshots.py +0 -73
  33. data/april_11_multimedia_data_collect/schedule_with_result_and_logo_urls.csv +0 -18
  34. data/april_11_multimedia_data_collect/team_logos.py +0 -298
  35. data/april_11_multimedia_data_collect/team_news_articles.csv +0 -37
  36. data/april_11_multimedia_data_collect/team_news_scraper.py +0 -370
  37. data/april_11_multimedia_data_collect/youtube_highlights.csv +0 -0
  38. data/april_11_multimedia_data_collect/z_old/niners_players_headshots_with_socials.csv +0 -24
  39. data/april_11_multimedia_data_collect/z_old/niners_players_headshots_with_socials_v1_safe.csv +0 -51
  40. data/april_11_multimedia_data_collect/z_old/z_schedule_with_result_april_11_z.csv +0 -18
  41. data/data_generation.py +0 -140
  42. data/neo4j_ingestion.py +0 -280
  43. data/nfl-2024-san-francisco-49ers-with-results.csv +0 -18
  44. data/niners_output/duplicate_chapters.csv +0 -14
  45. data/niners_output/fan_communities.csv +0 -384
  46. data/niners_output/fans.csv +0 -0
  47. data/niners_output/load_embeddings.cypher +0 -13
  48. data/niners_output/roster.csv +0 -74
  49. data/niners_output/schedule.csv +0 -18
  50. data/niners_output/schedule_with_result.csv +0 -18
.env.example DELETED
@@ -1,11 +0,0 @@
1
- # OpenAI API credentials
2
- OPENAI_API_KEY="your_openai_api_key_here"
3
- OPENAI_MODEL="gpt-4o"
4
-
5
- # Neo4j Aura database credentials
6
- AURA_CONNECTION_URI="your_neo4j_uri_here"
7
- AURA_USERNAME="your_neo4j_username_here"
8
- AURA_PASSWORD="your_neo4j_password_here"
9
-
10
- # Optional: Zep memory service (if using)
11
- ZEP_API_KEY="your_zep_api_key_here"
 
 
 
 
 
 
 
 
 
 
 
 
api/trace_implementation.md ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Freeplay Traces Implementation Plan
2
+
3
+ ## Overview
4
+
5
+ This document outlines the implementation plan for integrating Freeplay Traces into the existing Huge League Soccer application. Traces provide enhanced observability by grouping LLM interactions within a session, allowing us to track input questions, LLM responses, and associated metadata.
6
+
7
+ ## Current Architecture
8
+
9
+ ### Existing Freeplay Integration Points
10
+
11
+ 1. **Session Management** (`api/server_gradio.py`)
12
+ - `AppState.ensure_sessions()` - Creates Freeplay session on first user interaction
13
+ - Session ID preserved across state changes
14
+
15
+ 2. **Prompt Management** (`api/workflows/base.py`)
16
+ - `call_model()` - Retrieves persona-specific prompts via `get_prompt_by_persona()`
17
+ - Uses Freeplay prompt templates (casual_fan_prompt, super_fan_prompt)
18
+
19
+ 3. **Session Recording** (`api/workflows/base.py`)
20
+ - `should_continue()` - Records final LLM responses to Freeplay session
21
+ - Uses `record_session()` method
22
+
23
+ ## Proposed Traces Implementation
24
+
25
+ ### AppState Enhancement
26
+
27
+ The `AppState` class will be enhanced to store the actual Freeplay session object, allowing direct access to `session.create_trace()` as shown in the original documentation.
28
+
29
+ ### Modified Methods
30
+
31
+ ```python
32
+ # api/utils/freeplay_helpers.py - Modified method
33
+ def record_session(self, state, end: Optional[float] = time.time(),
34
+ formatted_prompt: Optional[FormattedPrompt] = None,
35
+ prompt_vars: Optional[dict] = None,
36
+ trace_info: Optional[TraceInfo] = None): # NEW PARAMETER
37
+ # ... existing code ...
38
+ payload = RecordPayload(
39
+ # ... existing fields ...
40
+ trace_info=trace_info # NEW FIELD
41
+ )
42
+ ```
43
+
44
+ ## Implementation Flow
45
+
46
+ ### 1. AppState Enhancement
47
+ **Location:** `api/server_gradio.py` - `AppState` class
48
+
49
+ ```python
50
+ class AppState(BaseModel):
51
+ # ... existing fields ...
52
+ freeplay_session_id: str = ""
53
+ freeplay_session: Optional[Any] = None # NEW: Store the actual session object
54
+
55
+ def ensure_sessions(self):
56
+ if not self.zep_session_id:
57
+ self.zep_session_id = ZepClient() \
58
+ .get_or_create_user(self.email, self.first_name, self.last_name) \
59
+ .create_session() \
60
+ .session_id
61
+ if not self.freeplay_session_id:
62
+ freeplay_client = FreeplayClient()
63
+ self.freeplay_session = freeplay_client.create_session() # Store session object
64
+ self.freeplay_session_id = self.freeplay_session.session_id
65
+ ```
66
+
67
+ ### 2. User Input & Trace Creation
68
+ **Location:** `api/server_gradio.py` - `submit_helper()`
69
+
70
+ ```python
71
+ def submit_helper(state, handler, user_query):
72
+ state.ensure_sessions() # Freeplay session already exists
73
+
74
+ # Create trace directly on the session object
75
+ trace_info = state.freeplay_session.create_trace(
76
+ input=user_query, # optional metadata not included
77
+ )
78
+
79
+ # Pass trace_info to workflow
80
+ workflow_bundle, workflow_state = build_workflow_with_state(
81
+ handler=handler,
82
+ zep_session_id=state.zep_session_id,
83
+ freeplay_session_id=state.freeplay_session_id,
84
+ email=state.email,
85
+ first_name=state.first_name,
86
+ last_name=state.last_name,
87
+ persona=state.persona,
88
+ messages=state.history,
89
+ trace_info=trace_info, # NEW: Pass trace_info to workflow
90
+ )
91
+ ```
92
+
93
+ ### 3. Workflow State Enhancement
94
+ **Location:** `api/workflows/base.py` - `AgentState`
95
+
96
+ ```python
97
+ class AgentState(TypedDict):
98
+ # ... existing fields ...
99
+ trace_info: Optional[TraceInfo] = None # NEW
100
+ ```
101
+
102
+ ### 4. Workflow Builder Enhancement
103
+ **Location:** `api/workflows/base.py` - `build_workflow_with_state()`
104
+
105
+ ```python
106
+ def build_workflow_with_state(handler: AsyncCallbackHandler,
107
+ zep_session_id: Optional[str] = None,
108
+ freeplay_session_id: Optional[str] = None,
109
+ email: Optional[str] = None,
110
+ first_name: Optional[str] = None,
111
+ last_name: Optional[str] = None,
112
+ persona: Optional[str] = None,
113
+ messages: Optional[List[BaseMessage]] = None,
114
+ trace_info: Optional[TraceInfo] = None) -> Tuple[WorkflowBundle, AgentState]: # NEW PARAMETER
115
+ """
116
+ Utility to build workflow and initial state in one step.
117
+ """
118
+ bundle = build_workflow(handler)
119
+ state = {
120
+ "zep_session_id": zep_session_id,
121
+ "freeplay_session_id": freeplay_session_id,
122
+ "email": email,
123
+ "first_name": first_name,
124
+ "last_name": last_name,
125
+ "persona": persona,
126
+ "messages": messages or [],
127
+ "start_time": time.time(),
128
+ "zep_memory": None,
129
+ "trace_info": trace_info, # NEW: Populate trace_info in AgentState
130
+ }
131
+ return bundle, state
132
+ ```
133
+
134
+ ### 5. LLM Processing with Trace Association
135
+ **Location:** `api/workflows/base.py` - `call_model()`
136
+
137
+ ```python
138
+ async def call_model(state: AgentState,
139
+ handler: AsyncCallbackHandler,
140
+ zep_client: ZepClient,
141
+ freeplay_client: FreeplayClient) -> dict:
142
+
143
+ # ... existing prompt and LLM logic ...
144
+
145
+ # Record trace output with LLM response
146
+ if state.get("trace_info"):
147
+ final_response = response.content if hasattr(response, 'content') else str(response)
148
+ state["trace_info"].record_output(
149
+ project_id=FREEPLAY_PROJECT_ID,
150
+ output=final_response
151
+ )
152
+
153
+ return {'messages': [response], 'zep_memory': memory}
154
+ ```
155
+
156
+ ### 6. Session Recording with Trace
157
+ **Location:** `api/workflows/base.py` - `should_continue()`
158
+
159
+ ```python
160
+ async def should_continue(state: AgentState,
161
+ handler: AsyncCallbackHandler,
162
+ zep_client: ZepClient,
163
+ freeplay_client: FreeplayClient) -> str:
164
+ # ... existing logic ...
165
+
166
+ if 'tool_calls' not in last_message.additional_kwargs:
167
+ # Record session with trace association
168
+ freeplay_client.record_session(state, trace_info=state.get("trace_info"))
169
+ return 'end'
170
+ return 'continue'
171
+ ```
172
+
173
+ ## Data Flow Diagram
174
+
175
+ ```
176
+ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
177
+ │ User Input │ │ submit_helper │ │ AppState │
178
+ │ │ │ │ │ │
179
+ │ "Tell me about │───▶│ 1. ensure_sessions│───▶│ freeplay_session│
180
+ │ Ryan Martinez" │ │ 2. create_trace() │ │ .create_trace() │
181
+ └─────────────────┘ │ 3. pass trace_info│ │ │
182
+ └──────────────────┘ └─────────────────┘
183
+ │ │
184
+ ▼ ▼
185
+ ┌──────────────────┐ ┌─────────────────┐
186
+ │ build_workflow_ │ │ Trace Info │
187
+ │ with_state() │ │ │
188
+ │ │ │ - trace_id │
189
+ │ - trace_info │ │ - input │
190
+ │ - user_query │ │ - metadata │
191
+ └──────────────────┘ └─────────────────┘
192
+
193
+
194
+ ┌──────────────────┐
195
+ │ AgentState │
196
+ │ │
197
+ │ - trace_info │
198
+ │ - messages │
199
+ │ - persona │
200
+ └──────────────────┘
201
+
202
+
203
+ ┌──────────────────┐
204
+ │ Workflow │
205
+ │ Execution │
206
+ │ │
207
+ │ call_model() │
208
+ │ - get_prompt() │
209
+ │ - LLM call │
210
+ │ - record_output()│
211
+ └──────────────────┘
212
+
213
+
214
+ ┌──────────────────┐
215
+ │ should_continue()│
216
+ │ │
217
+ │ record_session() │
218
+ │ with trace_info │
219
+ └──────────────────┘
220
+
221
+
222
+ ┌──────────────────┐
223
+ │ Freeplay Session │
224
+ │ Recording │
225
+ │ │
226
+ │ - Session ID │
227
+ │ - Trace Info │
228
+ │ - Input/Output │
229
+ └──────────────────┘
230
+ ```
231
+
232
+ ## Trace Lifecycle
233
+
234
+ ### 1. **Creation Phase**
235
+ - **Trigger:** User submits question
236
+ - **Location:** `submit_helper()`
237
+ - **Action:** Create trace with user input and metadata
238
+ - **Output:** `TraceInfo` object with `trace_id`
239
+
240
+ ### 2. **Association Phase**
241
+ - **Trigger:** Workflow initialization
242
+ - **Location:** `build_workflow_with_state()`
243
+ - **Action:** Pass `trace_info` to workflow state
244
+ - **Output:** `AgentState` with trace context
245
+
246
+ ### 3. **Processing Phase**
247
+ - **Trigger:** LLM interaction
248
+ - **Location:** `call_model()`
249
+ - **Action:** Record LLM output to trace
250
+ - **Output:** Trace with input/output pair
251
+
252
+ ### 4. **Recording Phase**
253
+ - **Trigger:** Workflow completion
254
+ - **Location:** `should_continue()`
255
+ - **Action:** Associate trace with session recording
256
+ - **Output:** Complete session with trace linkage
257
+
258
+ ## Benefits
259
+
260
+ ### Enhanced Observability
261
+ - **Input/Output Tracking:** Complete visibility of user questions and LLM responses
262
+ - **Metadata Association:** Persona, user info, and interaction context
263
+ - **Performance Metrics:** Response times, tool usage, and evaluation results
264
+
265
+ ### Debugging & Analysis
266
+ - **Trace Isolation:** Individual interactions can be analyzed separately
267
+ - **Session Context:** Traces maintain session-level context
268
+ - **Evaluation Support:** Built-in support for feedback and evaluation metrics
269
+
270
+ ### Backward Compatibility
271
+ - **Optional Implementation:** Traces are opt-in, existing functionality unchanged
272
+ - **Graceful Degradation:** System works without traces if disabled
273
+ - **Incremental Rollout:** Can be enabled per user or session
274
+
275
+ ## Implementation Phases
276
+
277
+ ### Phase 1: AppState Enhancement
278
+ 1. Add `freeplay_session` property to `AppState` class
279
+ 2. Modify `ensure_sessions()` to store session object
280
+ 3. Test session object storage and retrieval
281
+
282
+ ### Phase 2: Workflow Integration
283
+ 1. Update `AgentState` to include `trace_info` field
284
+ 2. Modify `build_workflow_with_state()` to accept `trace_info` parameter
285
+ 3. Update `call_model()` to record trace outputs
286
+ 4. Update `should_continue()` to associate traces with sessions
287
+
288
+ ### Phase 3: Server Integration
289
+ 1. Update `submit_helper()` to create traces using session object
290
+ 2. Pass `trace_info` through workflow initialization
291
+ 3. Test complete trace lifecycle
292
+
293
+ ### Phase 4: Session Recording Enhancement
294
+ 1. Modify `record_session()` to accept `trace_info` parameter
295
+ 2. Update `RecordPayload` to include trace information
296
+ 3. Test session recording with trace association
297
+
298
+ ### Phase 5: Testing & Validation
299
+ 1. Unit tests for trace creation and recording
300
+ 2. Integration tests for workflow trace integration
301
+ 3. End-to-end tests for complete trace lifecycle
302
+ 4. Performance impact assessment
303
+
304
+ ## Risk Mitigation
305
+
306
+ ### High Risk Areas
307
+ 1. **Session State Management**
308
+ - **Risk:** Breaking existing session flow
309
+ - **Mitigation:** Optional trace parameters, backward compatibility
310
+
311
+ 2. **Workflow State Changes**
312
+ - **Risk:** Breaking existing state structure
313
+ - **Mitigation:** Optional fields with defaults, thorough testing
314
+
315
+ ### Medium Risk Areas
316
+ 1. **Performance Impact**
317
+ - **Risk:** Slowing down workflow execution
318
+ - **Mitigation:** Lazy trace creation, optional features
319
+
320
+ 2. **Data Consistency**
321
+ - **Risk:** Trace/recording mismatches
322
+ - **Mitigation:** Validation and error handling
323
+
324
+ ## Success Criteria
325
+
326
+ 1. **Functionality:** Traces created and recorded for all user interactions
327
+ 2. **Performance:** No measurable impact on workflow execution time
328
+ 3. **Compatibility:** All existing functionality continues to work
329
+ 4. **Observability:** Complete trace data available in Freeplay dashboard
330
+ 5. **Reliability:** Graceful handling of trace creation/recording failures
331
+
332
+ ## Next Steps
333
+
334
+ 1. **User Approval:** Review and approve implementation plan
335
+ 2. **Phase 1 Implementation:** Begin with core infrastructure
336
+ 3. **Testing Strategy:** Validate each phase before proceeding
337
+ 4. **Documentation:** Update API documentation with trace features
338
+ 5. **Monitoring:** Implement trace-specific logging and metrics
components/.gradio/certificate.pem DELETED
@@ -1,31 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
3
- TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
4
- cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
5
- WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
6
- ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
7
- MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
8
- h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
9
- 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
10
- A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
11
- T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
12
- B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13
- B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
14
- KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
15
- OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
16
- jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17
- qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
18
- rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19
- HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
20
- hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
21
- ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
22
- 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
23
- NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
24
- ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
25
- TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
26
- jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
27
- oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
28
- 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29
- mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
30
- emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
31
- -----END CERTIFICATE-----
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
components/game_recap_component.py DELETED
@@ -1,292 +0,0 @@
1
- import gradio as gr
2
- import pandas as pd
3
- import os
4
- import html
5
-
6
- def create_game_recap_component(game_data=None):
7
- """
8
- Creates a Gradio component to display game information with a simple table layout.
9
- Args:
10
- game_data (dict, optional): Game data to display. If None, returns an empty component.
11
- Returns:
12
- gr.HTML: A Gradio component displaying the game recap.
13
- """
14
- try:
15
- # If no game data provided, return an empty component
16
- if game_data is None or not isinstance(game_data, dict):
17
- return gr.HTML("")
18
-
19
- # Extract game details
20
- match_number = game_data.get('match_number', game_data.get('Match Number', 'N/A'))
21
- date = game_data.get('date', 'N/A')
22
- location = game_data.get('location', 'N/A')
23
-
24
- # Handle different column naming conventions between sources
25
- home_team = game_data.get('home_team', game_data.get('Home Team', game_data.get('HomeTeam', 'N/A')))
26
- away_team = game_data.get('away_team', game_data.get('Away Team', game_data.get('AwayTeam', 'N/A')))
27
-
28
- # Get team logo URLs
29
- home_logo = game_data.get('home_team_logo_url', '')
30
- away_logo = game_data.get('away_team_logo_url', '')
31
-
32
- # Get result and determine scores
33
- result = game_data.get('result', 'N/A')
34
- home_score = game_data.get('home_score', 'N/A')
35
- away_score = game_data.get('away_score', 'N/A')
36
-
37
- # If we don't have separate scores but have result, try to parse it
38
- if (home_score == 'N/A' or away_score == 'N/A') and result != 'N/A':
39
- scores = result.split('-')
40
- if len(scores) == 2:
41
- home_score = scores[0].strip()
42
- away_score = scores[1].strip()
43
-
44
- # Determine winner for highlighting
45
- winner = game_data.get('winner')
46
- if not winner and result != 'N/A':
47
- try:
48
- home_score_int = int(home_score)
49
- away_score_int = int(away_score)
50
- winner = 'home' if home_score_int > away_score_int else 'away'
51
- except ValueError:
52
- winner = None
53
-
54
- # Get highlight video URL
55
- highlight_video_url = game_data.get('highlight_video_url', '')
56
-
57
- # Create a simple HTML table layout
58
- html_content = f"""
59
- <style>
60
- .game-recap-table {{
61
- width: 100%;
62
- border-collapse: collapse;
63
- border: 1px solid #ddd;
64
- border-radius: 8px;
65
- overflow: hidden;
66
- margin: 20px 0;
67
- box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* Reverted: Uncommented for Bug 2 re-evaluation */
68
- }}
69
-
70
- .team-cell {{
71
- padding: 15px;
72
- text-align: left;
73
- vertical-align: middle;
74
- border-bottom: 1px solid #eee;
75
- }}
76
-
77
- .team-logo {{
78
- width: 40px;
79
- height: 40px;
80
- object-fit: contain;
81
- margin-right: 10px;
82
- border-radius: 50%;
83
- vertical-align: middle;
84
- }}
85
-
86
- .team-name {{
87
- display: inline-block;
88
- vertical-align: middle;
89
- }}
90
-
91
- .team-name-main {{
92
- font-weight: bold;
93
- font-size: 18px;
94
- display: block;
95
- }}
96
-
97
- .team-name-sub {{
98
- font-size: 14px;
99
- color: #666;
100
- display: block;
101
- }}
102
-
103
- .score-cell {{
104
- padding: 15px;
105
- text-align: right;
106
- font-size: 32px;
107
- font-weight: bold;
108
- vertical-align: middle;
109
- width: 80px;
110
- }}
111
-
112
- .winner-indicator {{
113
- color: #ff6b00;
114
- margin-left: 5px;
115
- }}
116
-
117
- .video-cell {{
118
- background: #ffffff; /* Reverted back to solid white */
119
- color: #333; /* changed from white to a darker color for visibility */
120
- padding: 20px;
121
- text-align: center;
122
- vertical-align: middle;
123
- }}
124
-
125
- .vs-container {{
126
- margin-bottom: 15px;
127
- }}
128
-
129
- .vs-logo {{
130
- width: 30px;
131
- height: 30px;
132
- object-fit: contain;
133
- margin: 0 5px;
134
- border-radius: 50%;
135
- background-color: rgba(255,255,255,0.2);
136
- vertical-align: middle;
137
- }}
138
-
139
- .vs-text {{
140
- font-weight: bold;
141
- margin: 0 5px;
142
- }}
143
-
144
- .recap-text {{
145
- font-size: 24px;
146
- font-weight: bold;
147
- margin: 10px 0;
148
- color: #AA0000 !important; /* 49ers primary red from your design system */
149
- }}
150
-
151
- .video-link {{
152
- display: inline-block;
153
- padding: 8px 15px;
154
- background-color: #AA0000;
155
- color: white;
156
- text-decoration: none;
157
- border-radius: 4px;
158
- margin-top: 10px;
159
- }}
160
-
161
- .video-link:hover {{
162
- background-color: #B3995D;
163
- }}
164
- </style>
165
-
166
- <table class="game-recap-table">
167
- <tr>
168
- <td class="team-cell">
169
- <img src="{html.escape(away_logo)}" alt="{html.escape(away_team)} logo" class="team-logo">
170
- <div class="team-name">
171
- <span class="team-name-main">{html.escape(away_team.split(' ')[0] if ' ' in away_team else away_team)}</span>
172
- <span class="team-name-sub">{html.escape(away_team.split(' ', 1)[1] if ' ' in away_team else '')}</span>
173
- </div>
174
- </td>
175
- <td class="score-cell">
176
- {away_score}{' <span class="winner-indicator">▶</span>' if winner == 'away' else ''}
177
- </td>
178
- <td class="video-cell" rowspan="2">
179
- <div class="vs-container">
180
- <img src="{html.escape(away_logo)}" alt="{html.escape(away_team)} logo" class="vs-logo">
181
- <span class="vs-text">VS</span>
182
- <img src="{html.escape(home_logo)}" alt="{html.escape(home_team)} logo" class="vs-logo">
183
- </div>
184
- <div class="recap-text">Recap</div>
185
- {f'<a href="{html.escape(highlight_video_url)}" target="_blank" class="video-link">Watch Highlights</a>' if highlight_video_url else ''}
186
- </td>
187
- </tr>
188
- <tr>
189
- <td class="team-cell">
190
- <img src="{html.escape(home_logo)}" alt="{html.escape(home_team)} logo" class="team-logo">
191
- <div class="team-name">
192
- <span class="team-name-main">{html.escape(home_team.split(' ')[0] if ' ' in home_team else home_team)}</span>
193
- <span class="team-name-sub">{html.escape(home_team.split(' ', 1)[1] if ' ' in home_team else '')}</span>
194
- </div>
195
- </td>
196
- <td class="score-cell">
197
- {home_score}{' <span class="winner-indicator">▶</span>' if winner == 'home' else ''}
198
- </td>
199
- </tr>
200
- </table>
201
- """
202
-
203
- return gr.HTML(html_content)
204
-
205
- except Exception as e:
206
- print(f"Error creating game recap component: {str(e)}")
207
- # Return a simple error message component
208
- return gr.HTML("<div style='padding: 1rem; color: red;'>⚠️ Error loading game recap. Please try again later.</div>")
209
-
210
- # Function to process a game recap response from the agent
211
- def process_game_recap_response(response):
212
- """
213
- Process a response from the agent that may contain game recap data.
214
-
215
- Args:
216
- response (dict): The response from the agent
217
-
218
- Returns:
219
- tuple: (text_output, game_data)
220
- - text_output (str): The text output to display
221
- - game_data (dict or None): Game data for the visual component or None
222
- """
223
- try:
224
- # Check if the response has game_data directly
225
- if isinstance(response, dict) and "game_data" in response:
226
- return response.get("output", ""), response.get("game_data")
227
-
228
- # Check if game data is in intermediate steps (where LangChain often puts tool outputs)
229
- if isinstance(response, dict) and "intermediate_steps" in response:
230
- steps = response.get("intermediate_steps", [])
231
- for step in steps:
232
- # Check the observation part of the step, which contains the tool output
233
- if isinstance(step, list) and len(step) >= 2:
234
- observation = step[1] # Second element is typically the observation
235
- if isinstance(observation, dict) and "game_data" in observation:
236
- return observation.get("output", response.get("output", "")), observation.get("game_data")
237
-
238
- # Alternative format where step might be a dict with observation key
239
- if isinstance(step, dict) and "observation" in step:
240
- observation = step["observation"]
241
- if isinstance(observation, dict) and "game_data" in observation:
242
- return observation.get("output", response.get("output", "")), observation.get("game_data")
243
-
244
- # If it's just a text response
245
- if isinstance(response, str):
246
- return response, None
247
-
248
- # Default case for other response types
249
- if isinstance(response, dict):
250
- return response.get("output", ""), None
251
-
252
- return str(response), None
253
-
254
- except Exception as e:
255
- print(f"Error processing game recap response: {str(e)}")
256
- import traceback
257
- traceback.print_exc() # Add stack trace for debugging
258
- return "I encountered an error processing the game data. Please try again.", None
259
-
260
- # Test function for running the component directly
261
- if __name__ == "__main__":
262
- # Create sample game data for testing
263
- test_game_data = {
264
- 'game_id': 'test-game-123',
265
- 'date': '10/09/2024',
266
- 'location': "Levi's Stadium",
267
- 'home_team': 'San Francisco 49ers',
268
- 'away_team': 'New York Jets',
269
- 'home_score': '32',
270
- 'away_score': '19',
271
- 'result': '32-19',
272
- 'winner': 'home',
273
- 'home_team_logo_url': 'https://a.espncdn.com/i/teamlogos/nfl/500/sf.png',
274
- 'away_team_logo_url': 'https://a.espncdn.com/i/teamlogos/nfl/500/nyj.png',
275
- 'highlight_video_url': 'https://www.youtube.com/watch?v=igOb4mfV7To'
276
- }
277
-
278
- # Create a test Gradio interface
279
- with gr.Blocks() as demo:
280
- gr.Markdown("# Game Recap Component Test")
281
-
282
- with gr.Row():
283
- game_recap = create_game_recap_component(test_game_data)
284
-
285
- with gr.Row():
286
- clear_btn = gr.Button("Clear Component")
287
- show_btn = gr.Button("Show Component")
288
-
289
- clear_btn.click(lambda: None, None, game_recap)
290
- show_btn.click(lambda: test_game_data, None, game_recap)
291
-
292
- demo.launch(share=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
components/player_card_component.py DELETED
@@ -1,158 +0,0 @@
1
- import gradio as gr
2
- import html
3
-
4
- def create_player_card_component(player_data=None):
5
- """
6
- Creates a Gradio HTML component to display player information based on test.ipynb structure.
7
-
8
- Args:
9
- player_data (dict, optional): Dictionary containing player data.
10
- Expected keys: 'Name', 'Position', 'Jersey_number',
11
- 'headshot_url', 'College', 'Height', 'Weight',
12
- 'Years_in_nfl', 'instagram_url'. Defaults to None.
13
-
14
- Returns:
15
- gr.HTML: A Gradio HTML component displaying the player card, or empty if no data.
16
- """
17
- print("--- Entered create_player_card_component ---") # DEBUG LOG
18
- if not player_data or not isinstance(player_data, dict):
19
- print("Component received no player data, returning empty.") # DEBUG LOG
20
- return gr.HTML("")
21
-
22
- print(f"Component received player_data: {player_data}") # DEBUG LOG
23
-
24
- try:
25
- # Extract data with defaults, using html.escape
26
- name = html.escape(player_data.get('Name', 'N/A'))
27
- position = html.escape(player_data.get('Position', ''))
28
- number = html.escape(str(player_data.get('Jersey_number', '')))
29
- headshot_url = html.escape(player_data.get('headshot_url', ''))
30
- college = html.escape(player_data.get('College', 'N/A'))
31
- height = html.escape(player_data.get('Height', 'N/A'))
32
- weight = html.escape(player_data.get('Weight', 'N/A'))
33
- exp = html.escape(str(player_data.get('Years_in_nfl', 'N/A')))
34
- instagram_url = html.escape(player_data.get('instagram_url', ''))
35
-
36
- # CSS from test.ipynb, adapted slightly for theme integration
37
- css = """
38
- <style>
39
- .player-card-container {
40
- /* Add a container to allow for centering or specific placement */
41
- padding: 10px 0;
42
- }
43
- .player-card {
44
- background-color: #222222; /* Dark background */
45
- border: 1px solid #333333;
46
- margin: 0.5rem auto; /* Center card */
47
- padding: 1rem;
48
- border-radius: 8px;
49
- width: 320px; /* Slightly wider */
50
- box-sizing: border-box;
51
- font-family: 'Arial', sans-serif;
52
- color: #E6E6E6; /* Light text */
53
- overflow: hidden; /* Clear float */
54
- box-shadow: 0 2px 5px rgba(0,0,0,0.2);
55
- }
56
- .player-photo {
57
- width: 80px;
58
- height: 80px;
59
- background-color: #444; /* Darker placeholder */
60
- float: left;
61
- margin-right: 1rem;
62
- border-radius: 50%; /* Make it round */
63
- object-fit: cover; /* Cover ensures image fills circle */
64
- border: 2px solid #B3995D; /* Gold accent */
65
- }
66
- .card-content {
67
- float: left;
68
- width: calc(100% - 100px); /* Adjust width considering photo and margin */
69
- }
70
- .card-content h4 {
71
- margin: 0 0 0.5rem 0;
72
- font-size: 1.2em;
73
- color: #FFFFFF; /* White name */
74
- font-weight: bold;
75
- }
76
- .card-content ul {
77
- margin: 0.25rem 0;
78
- padding-left: 1.2rem;
79
- list-style: none; /* Remove default bullets */
80
- font-size: 0.9em;
81
- color: #B0B0B0;
82
- }
83
- .card-content ul li {
84
- margin-bottom: 4px; /* Space between list items */
85
- }
86
- .player-social-link {
87
- margin-top: 10px;
88
- clear: both; /* Ensure it appears below floated elements if needed */
89
- }
90
- .player-social-link a {
91
- display: inline-block;
92
- text-decoration: none;
93
- color: #FFFFFF;
94
- background-color: #AA0000; /* 49ers Red */
95
- padding: 5px 10px;
96
- border-radius: 4px;
97
- font-size: 0.8em;
98
- transition: background-color 0.2s ease;
99
- }
100
- .player-social-link a:hover {
101
- background-color: #B3995D; /* Gold accent on hover */
102
- }
103
- </style>
104
- """
105
-
106
- # HTML structure based on test.ipynb
107
- # Using an outer container for better layout control in Gradio
108
- html_content = f"""
109
- {css}
110
- <div class="player-card-container">
111
- <div class="player-card">
112
- <img src="{headshot_url}" class="player-photo" alt="{name} Headshot" onerror="this.style.display='none'" />
113
- <div class="card-content">
114
- <h4>{name} {f'- #{number}' if number else ''} {f'({position})' if position else ''}</h4>
115
- <ul>
116
- <li>Ht: {height} | Wt: {weight} lbs</li>
117
- <li>College: {college}</li>
118
- <li>Experience: {exp} Years</li>
119
- </ul>
120
- """
121
- # Add Instagram link conditionally
122
- if instagram_url:
123
- html_content += f"""
124
- <div class="player-social-link">
125
- <a href="{instagram_url}" target="_blank">Instagram Profile</a>
126
- </div>
127
- """
128
-
129
- html_content += """
130
- </div>
131
- </div>
132
- </div>
133
- """
134
-
135
- print(f"Component generated HTML (first 100 chars): {html_content[:100]}...") # DEBUG LOG
136
- return gr.HTML(html_content)
137
-
138
- except Exception as e:
139
- print(f"Error creating player card component: {str(e)}")
140
- # Return a simple error message component
141
- return gr.HTML("<div style='padding: 1rem; color: red;'>⚠️ Error loading player card.</div>")
142
-
143
- # Example Usage (for testing component independently if needed)
144
- # if __name__ == '__main__':
145
- # example_data = {
146
- # 'Name': 'Brock Purdy',
147
- # 'headshot_url': 'https://a.espncdn.com/i/headshots/nfl/players/full/4433216.png', # Example URL
148
- # 'instagram_url': 'https://www.instagram.com/brock.purdy13/',
149
- # 'Position': 'QB',
150
- # 'Number': '13'
151
- # }
152
- # component = create_player_card_component(example_data)
153
- #
154
- # with gr.Blocks() as demo:
155
- # gr.Markdown("## Player Card Example")
156
- # demo.add(component)
157
- #
158
- # demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
components/team_story_component.py DELETED
@@ -1,63 +0,0 @@
1
- """
2
- Gradio component for displaying Team Story/News search results.
3
- """
4
-
5
- import gradio as gr
6
-
7
- def create_team_story_component(team_story_data):
8
- """
9
- Creates a Gradio HTML component to display formatted team news articles.
10
-
11
- Args:
12
- team_story_data (list): A list of dictionaries, where each dictionary
13
- represents an article and contains keys like
14
- 'summary', 'link_to_article', and 'topic'.
15
-
16
- Returns:
17
- gr.HTML: A Gradio HTML component containing the formatted news stories.
18
- Returns None if the input data is empty or invalid.
19
- """
20
- if not team_story_data or not isinstance(team_story_data, list):
21
- return None # Return None if no data or invalid data
22
-
23
- html_content = """<div style='padding: 15px; border: 1px solid #e0e0e0; border-radius: 5px; margin-top: 10px;'>
24
- <h3 style='margin-top: 0; margin-bottom: 10px;'>Recent Team News</h3>"""
25
-
26
- for story in team_story_data:
27
- if isinstance(story, dict):
28
- summary = story.get('summary', 'No summary available.')
29
- link = story.get('link_to_article', '#')
30
- topic = story.get('topic', 'General')
31
-
32
- # Sanitize link to prevent basic injection issues
33
- safe_link = link if link.startswith(('http://', 'https://', '#')) else '#'
34
-
35
- # Escape basic HTML characters in text fields
36
- def escape_html(text):
37
- return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
38
-
39
- safe_summary = escape_html(summary)
40
- safe_topic = escape_html(topic)
41
-
42
- html_content += f"""<div style='margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid #eee;'>
43
- <p style='font-size: 0.9em; color: #555; margin-bottom: 5px;'><strong>Topic:</strong> {safe_topic}</p>
44
- <p style='margin-bottom: 8px;'>{safe_summary}</p>
45
- <a href='{safe_link}' target='_blank' style='font-size: 0.9em;'>Read Full Article</a>
46
- </div>"""
47
- else:
48
- print(f"Warning: Skipping invalid item in team_story_data: {story}")
49
-
50
- # Remove the last border-bottom if content was added
51
- if len(team_story_data) > 0:
52
- last_border_pos = html_content.rfind("border-bottom: 1px solid #eee;")
53
- if last_border_pos != -1:
54
- html_content = html_content[:last_border_pos] + html_content[last_border_pos:].replace("border-bottom: 1px solid #eee;", "")
55
-
56
- html_content += "</div>"
57
-
58
- # Return None if only the initial header was created (e.g., all items were invalid)
59
- if html_content.strip() == """<div style='padding: 15px; border: 1px solid #e0e0e0; border-radius: 5px; margin-top: 10px;'>
60
- <h3 style='margin-top: 0; margin-bottom: 10px;'>Recent Team News</h3></div>""".strip():
61
- return None
62
-
63
- return gr.HTML(html_content)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/.env.example DELETED
@@ -1,11 +0,0 @@
1
- # OpenAI API credentials
2
- OPENAI_API_KEY="your_openai_api_key_here"
3
- OPENAI_MODEL="gpt-4o"
4
-
5
- # Neo4j Aura database credentials
6
- AURA_CONNECTION_URI="your_neo4j_uri_here"
7
- AURA_USERNAME="your_neo4j_username_here"
8
- AURA_PASSWORD="your_neo4j_password_here"
9
-
10
- # Optional: Zep memory service (if using)
11
- ZEP_API_KEY="your_zep_api_key_here"
 
 
 
 
 
 
 
 
 
 
 
 
data/49ers roster - Sheet1.csv DELETED
@@ -1,74 +0,0 @@
1
- Player,#,Pos,HT,WT,Age,Exp,College,status
2
- Israel Abanikanda,20,RB,5-10,216,22,2,Pittsburgh,Active
3
- Brandon Allen,17,QB,6-2,209,32,8,Arkansas,Active
4
- Evan Anderson,69,DL,6-3,326,23,R,Florida Atlantic,Active
5
- Tre Avery,36,CB,5-11,181,28,3,Rutgers,Active
6
- Robert Beal Jr.,51,DL,6-4,250,25,2,Georgia,Active
7
- Tatum Bethune,48,LB,6-0,299,24,R,Florida State,Active
8
- Nick Bosa,97,DL,6-4,266,27,6,Ohio State,Active
9
- Jake Brendel,64,OL,6-4,299,32,7,UCLA,Active
10
- Ji'Ayir Brown,27,S,5-11,202,25,2,Penn State,Active
11
- Chris Conley,18,WR,6-3,205,32,10,Georgia,Active
12
- Jacob Cowing,19,WR,5-9,171,24,R,Arizona,Active
13
- Kalia Davis,93,DL,6-2,310,26,3,Central Florida,Active
14
- Khalil Davis,50,DL,6-2,315,28,4,Nebraska,Active
15
- Joshua Dobbs,5,QB,6-3,220,30,8,Tennessee,Active
16
- Jordan Elliott,92,DL,6-4,303,27,5,Missouri,Active
17
- Luke Farrell,89,TE,6-5,250,27,4,Ohio State,Active
18
- Tashaun Gipson Sr.,43,S,6-1,212,34,13,Wyoming,Active
19
- Jalen Graham,41,LB,6-3,220,25,2,Purdue,Active
20
- Richie Grant,27,S,6-0,200,27,4,UCF,Active
21
- Renardo Green,0,CB,6-0,186,24,R,Florida State,Active
22
- Yetur Gross-Matos,94,DL,6-5,265,27,5,Penn State,Active
23
- Isaac Guerendo,31,RB,6-0,221,24,R,Louisville,Active
24
- Charlie Heck,75,OL,6-8,311,28,5,North Carolina,Active
25
- Matt Hennessy,61,OL,6-3,315,27,4,Temple,Active
26
- Jauan Jennings,15,WR,6-3,212,27,4,Tennessee,Active
27
- Mac Jones,10,QB,6-3,200,26,4,Alabama,Active
28
- George Kittle,85,TE,6-4,250,31,8,Iowa,Active
29
- Deommodore Lenoir,2,DB,5-10,200,25,4,Oregon,Active
30
- Nick McCloud,35,CB,6-1,193,26,4,Notre Dame,Active
31
- Colton McKivitz,68,OL,6-6,301,28,5,West Virginia,Active
32
- Jake Moody,4,K,6-1,210,25,2,Michigan,Active
33
- Malik Mustapha,6,S,5-10,206,22,R,Wake Forest,Active
34
- Pat O'Donnell,40,P,6-4,220,34,10,Miami,Active
35
- Sam Okuayinonu,91,DL,6-1,269,26,2,Maryland,Active
36
- Ricky Pearsall,14,WR,6-3,192,24,R,Florida,Active
37
- Jason Pinnock,41,CB,6-0,205,25,4,Pittsburgh,Active
38
- Austen Pleasants,62,OT,6-7,328,27,1,Ohio,Active
39
- Dominick Puni,77,OL,6-5,313,25,R,Kansas,Active
40
- Brock Purdy,13,QB,6-1,220,25,3,Iowa State,Active
41
- Demarcus Robinson,14,WR,6-1,203,30,9,Florida,Active
42
- Eric Saubert,82,TE,6-5,248,30,7,Drake,Active
43
- Patrick Taylor Jr.,32,RB,6-2,217,26,4,Memphis,Active
44
- Tre Tomlinson,,CB,5-9,177,25,2,TCU,Active
45
- Jake Tonges,88,TE,6-4,240,25,2,California,Active
46
- Fred Warner,54,LB,6-3,230,28,7,Brigham Young,Active
47
- Jon Weeks,46,LS,5-10,245,39,15,Baylor,Active
48
- Brayden Willis,9,TE,6-4,240,25,2,Oklahoma,Active
49
- Dee Winters,53,LB,5-11,227,24,2,TCU,Active
50
- Rock Ya-Sin,33,CB,5-11,195,28,6,Temple,Active
51
- Isaac Yiadom,22,CB,6-1,232,29,7,Boston College,Active
52
- Nick Zakelj,63,OL,6-6,316,25,3,Fordham,Active
53
- Player,#,Pos,HT,WT,Age,Exp,College,Reserve/Future
54
- Isaac Alarcon,67,OL,6-7,320,26,1,Tecnológico de Monterrey,Reserve/Future
55
- Russell Gage,84,WR,6-0,184,29,7,LSU,Reserve/Future
56
- Isaiah Hodgins,87,WR,6-3,200,26,4,Oregon State,Reserve/Future
57
- Quindell Johnson,,S,6-2,208,25,2,Memphis,Reserve/Future
58
- Jalen McKenzie,76,OT,6-5,315,25,1,USC,Reserve/Future
59
- Brandon Aiyuk,11,WR,6-0,200,27,5,Arizona State,Reserve/Injured
60
- Aaron Banks,65,OL,6-5,325,27,4,Notre Dame,Reserve/Injured
61
- Ben Bartch,78,OL,6-6,315,26,5,St. John's (MN),Reserve/Injured
62
- Tre Brown,22,CB,5-10,185,27,4,Oklahoma,Reserve/Injured
63
- Spencer Burford,74,OL,6-4,300,24,3,Texas-San Antonio,Reserve/Injured
64
- Luke Gifford,57,LB,6-3,243,29,6,Nebraska,Reserve/Injured
65
- Kevin Givens,90,DL,6-1,285,28,5,Penn State,Reserve/Injured
66
- Darrell Luter Jr.,28,CB,6-0,190,24,2,South Alabama,Reserve/Injured
67
- Jordan Mason,24,RB,5-11,223,25,3,Georgia Tech,Reserve/Injured
68
- Christian McCaffrey,23,RB,5-11,210,28,8,Stanford,Reserve/Injured
69
- Elijah Mitchell,25,RB,5-10,200,26,4,Louisiana,Reserve/Injured
70
- Jaylon Moore,76,OL,6-4,311,27,4,Western Michigan,Reserve/Injured
71
- George Odum,30,S,6-1,202,31,7,Central Arkansas,Reserve/Injured
72
- Curtis Robinson,36,LB,6-3,235,26,3,Stanford,Reserve/Injured
73
- Trent Williams,71,T,6-5,320,36,15,Oklahoma,Reserve/Injured
74
- Mitch Wishnowsky,3,P,6-2,220,33,6,Utah,Reserve/Injured
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/49ers_fan_communities_clean_GOOD.csv DELETED
@@ -1,384 +0,0 @@
1
- Name,Phone Number,Website,Meeting Location Address (Address),Meeting Location Address (Address2),Meeting Location Address (City),Meeting Location Address (State),Meeting Location Address (Zip),Meeting Location Address (Country),Fan Chapter Name,President First Name,President Last Name,Email Address,City,State,Country,Venue,Venue Location,Total Fans,Facebook,Instagram,X (Twitter),TikTok,WhatsApp,YouTube
2
- ,52 4492612712,,,,,,,,49ers Aguascalientes,Cesar,Romo,[email protected],Aguascalientes,,Mexico,Vikingo Bar,"Av de la Convención de 1914 Sur 312-A, Las Américas, 20230 Aguascalientes, Ags., Mexico",174.0,https://www.facebook.com/share/1Wa7TPzBMX/,,,,,
3
- ,52 (46) 1219 7801,,,,,,,,Bajio Faithful,Hector,Camarena,[email protected],"Celaya, GTO",,Mexico,California Prime Rib Restaurant,"Av. Constituyentes 1000 A, 3 Guerras, 38080 Celaya, Gto., Mexico",20.0,,,,,,
4
- ,52 (96) 1654-1513,,,,,,,,Niner Empire Chiapas,Aroshi,Narvaez,[email protected],Chiapas,,Mexico,Alitas Tuxtla,"Blvd. Belisario Dominguez 1861 Loc K1 Tuxtl Fracc, Bugambilias, 29060 Tuxtla Gutiérrez, Chis., Mexico",250.0,Niner Empire Chiapas,https://www.instagram.com/49erschiapas/?hl=en,Niner Empire Chiapas,,,
5
- ,52 (61) 4404-1411,,,,,,,,49ers Faithful Chihuahua Oficial,Jorge,Otamendi,[email protected],Chihuahua,,Mexico,El Coliseo Karaoke Sports Bar,"C. Jose Maria Morelos 111, Zona Centro, 31000 Chihuahua, Chih., Mexico",300.0,https://www.facebook.com/share/g/14tnsAwWFc/,https://www.instagram.com/49ersfaithfulchihuahua?igsh=bHE5ZWd6eTUxOWl3,,https://www.tiktok.com/@49ers.faithful.ch?_t=8rv1vcLFfBI&_r=1,,
6
- ,52 (61) 41901197,,,,,,,,Gold Rush Chihuahua Spartans,Juan,García,[email protected],Chihuahua,,Mexico,34 Billiards & Drinks,"Av. Tecnológico 4903, Las Granjas 31100",976.0,https://www.facebook.com/groups/170430893136916/,,,,,
7
- ,52 (55) 6477-1279,,,,,,,,Club 49ers Mexico,German,Rodriguez,[email protected],"Ciudad de Mexico, Mexico",,Mexico,Bar 49,16 Septiembre #27 Colonia Centro Historico Ciudad de Mexico,800.0,,club49ersmexico,club49ersmexico,Club49ersmexicooficial,,
8
- ,52 (55) 6904-5174,,,,,,,,Club 49ers Durango Oficial,Victor,Arballo,[email protected],Durango,,Mexico,Restaurante Buffalucas Constitución,"C. Constitución 107B, Zona Centro, 34000 Durango, Dgo., Mexico",170.0,https://www.facebook.com/share/1TaDBVZmx2/?mibextid=LQQJ4d,https://www.instagram.com/49ers_dgo?igsh=ams1dHdibXZmN28w,,,,
9
- ,52 (55) 707169,,,,,,,,Niner Empire Edo Mex,Alberto,Velasco,[email protected],Estado de Mexico,,Mexico,Beer Garden Satélite,"Cto. Circunvalación Ote. 10-L-4, Cd. Satélite, 53100 Naucalpan de Juárez, Méx., Mexico",250.0,,https://www.instagram.com/ninerempireedomex/,https://x.com/ninerempedomex,,,
10
- ,52 (33) 2225-4392,,,,,,,,Club 49ers Jalisco,Marcela,Medina,[email protected],"Guadalajara, Jalisco",,Mexico,Restaurante Modo Avión Zapopan,"Calzada Nte 14, Granja, 45010 Zapopan, Jal., Mexico",40.0,,club49ersjalisco,Club 49ers Jalisco,,,
11
- ,52 (33) 1046 3607,,,,,,,,Niner Empire Jalisco,Alonso,Partida,[email protected],"Guadalajara, Jalisco",,Mexico,SkyGames Sports Bar,"Av. Vallarta 874 entre Camarena y, C. Escorza, Centro, 44100 Guadalajara, Jal., Mexico",200.0,,niner_empire_jalisco,NinerEmpireJal,ninerempirejal,,
12
- ,52 (65) 6228-3719,,,,,,,,Niner Empire Juarez Oficial,Hugo,Montero,[email protected],Juarez,,Mexico,Sport Bar Silver Fox,"Av. Paseo Triunfo de la República 430, Las Fuentes, 32530 Juárez, Chih., Mexico",300.0,,,,,,
13
- ,52 (99) 9172-2810,,,,,,,,49ers Merida Oficial,Liliana,Vargas,[email protected],Merida,,Mexico,Taproom Mastache,"Av. Cámara de Comercio 263, San Ramón Nte, 97117 Mérida, Yuc., Mexico",290.0,,,,,,
14
- ,52 (686) 243 7235,,,,,,,,Niner Empire Mexicali,Gabriel,Carbajal,[email protected],Mexicali,,Mexico,La Gambeta Terraza Sports Bar,"Calz. Cuauhtémoc 328, Aviación, 21230 Mexicali, B.C., Mexico",45.0,,,,,,
15
- ,52 (81) 1500-4400,,,,,,,,49ers Monterrey Oficial,Luis,González,[email protected],Monterrey,,Mexico,Buffalo Wild Wings Insurgentes,"Av Insurgentes 3961, Sin Nombre de Col 31, 64620 Monterrey, N.L., Mexico",1200.0,,,,,,
16
- ,52 (22) 21914254,,,,,,,,Club 49ers Puebla,Elias,Mendez,[email protected],Puebla,,Mexico,Bar John Barrigón,"Av. Juárez 2925, La Paz, 72160 Heroica Puebla de Zaragoza, Pue., Mexico",,,,,,,
17
- ,52 (84) 4130-0064,,,,,,,,Niners Empire Saltillo,Carlos,Carrizales,[email protected],Saltillo,,Mexico,Cervecería La Huérfana,"Blvd. Venustiano Carranza 7046-Int 9, Los Rodríguez, 25200 Saltillo, Coah., Mexico",,,,,,,
18
- ,52 (44) 4257-3609,,,,,,,,San Luis Potosi Oficial,Jose,Robledo,[email protected],San Luis Potosi,,Mexico,Bar VIC,"Av Nereo Rodríguez Barragán 1399, Fuentes del Bosque, 78220 San Luis Potosí, S.L.P., Mexico",,,,,,,
19
- ,52 (66) 4220-6991,,,,,,,,49ers Tijuana Fans Oficial,Anthony,Daniel,[email protected],Tijuana,,Mexico,Titan Sports Bar,"J. Gorostiza 1209, Zona Urbana Rio Tijuana, 22320 Tijuana, B.C., Mexico",460.0,https://www.facebook.com/groups/49erstijuanafans/?ref=share&mibextid=NSMWBT,https://www.instagram.com/49erstijuanafansoficial/?igshid=OGQ5ZDc2ODk2ZA%3D%3D&fbclid=IwZXh0bgNhZW0CMTEAAR0SXTcgDss1aAUjjzK6Ge0Uhx9JkNszzeQgTRq94F_5Zzat-arK9kXEqWk_aem_sKUysPZe1NpmFRPlJppOYw&sfnsn=scwspwa,-,-,-,-
20
- ,52 (72) 2498-5443,,,,,,,,49ers Club Toluca Oficial,Fernando,Salazar,[email protected],Toluca,,Mexico,Revel Wings Carranza,"Calle Gral. Venustiano Carranza 20 Pte. 905, Residencial Colón y Col Ciprés, 50120 Toluca de Lerdo, Méx., Mexico",,,,,,,
21
- ,52 (228) 159-8578,,,,,,,,Cluib de Fans 49ers Veracruz,Luis,Mata,[email protected],Veracruz,,Mexico,Wings Army del Urban Center,"C. Lázaro Cárdenas 102, Rafael Lucio, 91110 Xalapa-Enríquez, Ver., Mexico",,,,,,,
22
- ,6646124565,,,,,,,,49ersFanZone.net,Clemens,Kaposi,[email protected],Bad Vigaun,,Austria,,Neuwirtsweg 315,183.0,,,,,,
23
- ,33 (0)6 365 269 84,,,,,,,,The Niner Empire France,Gilles,Schlienger,[email protected],Nousseviller Saint Nabor,,France,4 voie romaine,4 voie romaine,250.0,https://www.facebook.com/groups/295995597696338,,,,,
24
- ,1704753958,,,,,,,,Niner Empire Germany-Bavaria Chapter,Mike,Beckmann,[email protected],Ismaning,,Germany,49er's Sports & Partybar,Muenchener Strasse 79,35.0,,,,,,
25
- ,1735106462,,,,,,,,4T9 Mob Germany Family,Chris,Grawert,[email protected],Hamburg,,Germany,Jolly Roger,Budapester Str. 44,6.0,https://www.facebook.com/4T9MOBGermany,,,,,
26
- ,49 15758229310,,,,,,,,49 Niner Empire,Andra,Theunert,[email protected],Cologne State: NRW,,Germany,Joe Camps Sports Bar,Joe Champs,104.0,,,,,,
27
- ,1795908826,,,,,,,,The Niner Empire Germany Berlin Chapter,Jermaine,Benthin,[email protected],Berlin,,Germany,Sportsbar Tor133,Torstrasse 133,17.0,,,,,,
28
- ,1607512643,,,,,,,,,Heltewig,Thorsten,[email protected],Bornhöved,,Germany,Comeback,Mühlenstraße 11,20.0,,,,,,
29
- ,1738803983,,,,,,,,49ers Fans Bavaria,Thomas,Igerl,[email protected],Ampfing,,Germany,Holzheim 1a/Ampfing,Holzheim 1a,30.0,https://www.facebook.com/49ersfansbavaria,,,,,
30
- ,1234567899,http://germany.theninerempire.com/,,,,,,,The Niner Empire Germany - North Rhine-Westphalia Chapter,Timo,Allhoff,[email protected],Duesseldorf,,Germany,Knoten,Kurze Strasse 1A,62.0,,,,,,
31
- ,1708859408,,,,,,,,Niner Empire Germany-NRW Chapter,Hermann,van,[email protected],Cologne,,Germany,Joe Champs Sportsbar Cologne,Hohenzollernring 1 -3,27.0,,,,,,
32
- ,3.53E+11,,,,,,,,The Irish Faithful,Colly,Mc,[email protected],Dublin 13,,Ireland,Busker On The Ball,13 - 17 Fleet Street,59.0,,,https://twitter.com/49ersIre,,,
33
- ,0039 3282181898,,,,,,,,49ers Italian Fan Club,Enzo,Marrocchino,[email protected] + [email protected],Fiorano Modenese,,Italy,The Beer Corner,"Via Roma, 2/A",50.0,https://www.facebook.com/groups/49ersItalianFanClub,,,,,
34
- ,649058694,https://laminapodcast.wixsite.com/lamina,,,,,,,Mineros Spanish Faithful,Luis,Miguel,[email protected] + [email protected],Madrid,,Spain,Penalti Lounge Bar,Avenida Reina 15,15.0,,,,,,
35
- ,6507841235,http://www.sportssf.com.br,,,,,,,Equipe Sports SF,Alessandro,Marques,[email protected],Sao Paulo,,Brazil,"Website, Podcast, Facebook Page, Twitter","Rua Hitoshi Ishibashi, 11 B",14.0,,,,,,
36
- ,1197444761,http://www.49ersbrasil.com.br,,,,,,,49ers Brasil,Fabio,Moraes,[email protected],"Campo Limpo, Sao Paulo",,Brazil,Bars and Restaurants in São Paulo - SP,,870.0,,,,,,
37
- ,5511992650,,,,,,,,San Francisco 49ers Brasil,Otavio,Alban,[email protected],"Sao Bernardo do Campo, Sao Paulo",,Brazil,Multiple locations around south and southeast states of Brazil,,104.0,https://www.facebook.com/groups/49ninersbrasil/,,,,,
38
- ,6046266697,http://www.theninerempire.com,,,,,,,"Niner Empire --Vanouver,BC Chapter",Hector,Alvarado/Neil,[email protected],"Vancouver, BC",,Canada,"The Sharks Club--Langley, BC",20169 88 Avenue,31.0,,,,,,
39
- ,4167796921,,,,,,,,True North Niners,Shawn,Vromman,[email protected],"Bolton, Ontario",,Canada,Maguire's Pub,284 Queen st E,25.0,,,,,,
40
- ,507 66737171,,,,,,,,Faithful Panama,Ricardo,Vallarino,[email protected],,,Panama,5inco Panama,8530 NW 72ND ST,249.0,,,,,,
41
- ,6493015128,,,,,,,,Niner Empire New Zealand,Karam,Chand,[email protected],Auckland,,New Zealand,The Kingslander,470 New North Road,15.0,https://www.facebook.com/#!/groups/212472585456813/,,,,,
42
- ,6768804977,,,,,,,,49er Fans-Tonga,Nusi,Taumoepeau,[email protected],Nuku'alofa,,Tonga,Tali'eva Bar,14 Taufa'ahau Rd,8.0,,,,,,
43
- ,7857047023,,,,,,,,49ers Faithful UK,Mike,Palmer,[email protected],Greater Manchester,,United Kingdom,the green,Ducie street Manchester Greater Manchester Lancashire m1 United Kingdom,100.0,,,,,,
44
- ,7506116581,www.49erfaithfuluk.co.uk,,,,,,,49er Faithful UK,Lee,Gowland,[email protected],Newcastle,,United Kingdom,Grosvenor Casino,100 St James' Blvd Newcastle Tyne & Wear CA 95054 United Kingdom,3000.0,,,,,,
45
- ,8774734977,,,,,,,,49ers of United Kingdom,Nauman,Malik,[email protected],London,,United Kingdom,The Sports Cafe,80 Haymarket London SW1Y 4TE United Kingdom,8.0,,,,,,
46
- ,1616553629,,,,,,,,Niner Empire UK,Mike,Palmer,[email protected],Manchester,,United Kingdom,The Green,"Bridge House 26 Ducie Street, Manchester, Manchester M1 2dq United Kingdom",30.0,,,,,,
47
- ,6264841085,,,,,,,,"San Francisco 49er Fans of Charleston, SC",Kurtis,Johnson,[email protected],Charleston,SC,United States,Recovery Room Tavern,685 King St,12.0,https://www.facebook.com/profile.php?id=100095655455065,,,,,
48
- ,5309536097,,,,,,,,530 Empire,Oscar,Mendoza,[email protected],Chico,Ca,United States,Nash's,1717 Esplanade,45.0,,https://www.instagram.com/530empire?igsh=OGQ5ZDc2ODk2ZA%3D%3D&utm_source=qr,,,,
49
- ,(720) 345-2580,,,,,,,,303 Denver Chapter Niner Empire,Andy,Martinez,[email protected],Aurora,CO,United States,Moes Bbq,2727 s Parker rd,30.0,,,,,,
50
- ,3238332262,,,,,,,,40NINERS L.A. CHAPTER,JOSE,DIAZ,[email protected],bell,ca,United States,KRAZY WINGS SPORTS & GRILL,7016 ATLANTIC AVE,25.0,,,,,,
51
- ,(434) 441-1187,,,,,,,,434 Virginia Niner Empire,Thomas,Hunt,[email protected],Danville,VA,United States,Kickbacks Jacks,140 Crown Dr,20.0,,,,,,
52
- ,(925) 457-6175,,,,,,,,480 Gilbert Niner Empire LLC,Betty,OLIVARES,[email protected],Gilbert,AZ,United States,The Brass Tap,313 n Gilbert rd,100.0,,,,,,
53
- ,8126048419,,,,,,,,Midwest Empire,Travis,Bonnell,[email protected],Evansville,IN,United States,Hooters Evansville,2112 Bremmerton Dr,6.0,https://www.facebook.com/share/5KGRDSPtyHgFYRSP/?mibextid=K35XfP,,,,,
54
- ,7075921442,,,,,,,,49er Booster Club of Vacaville,Josh,Ojeda,[email protected],Vacaville,CA,United States,Blondies Bar and Grill,555 Main Street,75.0,,,,,,
55
- ,7602655202,,,,,,,,49er Empire High Desert,TJ,Hilliard,[email protected],Hesperia,California,United States,Whiskey Barrel,12055 Mariposa Rd.,89.0,https://www.facebook.com/groups/49erEmpireHighDesertChapter/,,,,,
56
- ,5308239740,,,,,,,,Cool 49er Booster Club,Paul,Jones,[email protected],Cool,CA,United States,The Cool Beerworks,5020 Ellinghouse Dr Suite H,59.0,,,,,,
57
- ,8183269651,,,,,,,,49ersBeachCitiesSoCal,Rick,Mitchell,[email protected],Hermosa Beach,CA,United States,American Junkie Sky Light Bar,American Junkie,100.0,,,,,,
58
- ,7202278251,,,,,,,,49ers Denver Empire,Miguel,Alaniz,[email protected],Aurora,Co,United States,Moe's Original BBQ Aurora,2727 S Parker Rd,30.0,,,,,,
59
- ,3605679487,,,,,,,,49ers Forever Faithfuls,Wayne,Yelloweyes-Ripoyla,[email protected],Vancouver,Wa,United States,Hooligan's sports bar and grill,"8220 NE Vancouver Plaza Dr, Vancouver, WA 98662",10.0,,,,,,
60
- ,9566600391,,,,,,,,South Texas 49ers Chapter,Patty,Torres,[email protected],Harlingen,TX,United States,Wing barn,412 sunny side ln,350.0,https://www.facebook.com/groups/2815298045413319/?ref=share,,,,,
61
- ,3109547822,,,,,,,,49ers Los Angeles,Jeff,Cheung,[email protected],Hollywood,CA,United States,Dave & Buster's Hollywood,6801 Hollywood Blvd.,27.0,,,,,,
62
- ,3234765148,,,,,,,,49ers United Of Frisco TX,Frank,Murillo,[email protected],Frisco,TX,United States,The Frisco Bar and Grill,6750 Gaylord Pkwy,1020.0,https://www.facebook.com/groups/49ersunitedoffriscotx/?ref=share&mibextid=hubsqH,,,,,
63
- ,6193151122,,,,,,,,619ers San Diego Niner Empire,Ana,Pino,[email protected],San Diego,California,United States,Bridges Bar & Grill,4800 Art Street,20.0,,,,,,
64
- ,6266742121,,,,,,,,626 FAITHFUL'S,Isaac,C. De La Fuente,[email protected],City of Industry,California,United States,Hacienda Heights Pizza Co.,15239 E Gale Ave,40.0,,,,,,
65
- ,6507438522,,,,,,,,Niner Empire 650 Chapter,Vanessa,Corea,[email protected],Redwood City,CA,United States,5th Quarter,976 Woodside Rd,35.0,,http://www.instagram.com/650ninerempire,,,,
66
- ,6199949071,,,,,,,,714 Niner Empire,Daniel,Hernandez,[email protected],Oxnard,CA,United States,"Bottoms Up Tavern, 2162 West Lincoln Ave, Anaheim CA 92801",3206 Lisbon Lane,4.0,,,,,,
67
- ,9513704443,,,,,,,,9er Elite Niner Empire,Penny,Mapes,[email protected],Lake Elsinore,California,United States,Pin 'n' Pockets,32250 Mission Trail,25.0,,,,,,
68
- ,4806780578,,,,,,,,Az 49er Faithful,Kimberly,"""""Kimi"""" Daniel",[email protected],Gilbert,Az,United States,Fox and Hound!,1017 E Baseline Rd,58.0,,,,,,
69
- ,7078896983,,,,,,,,Niners Winers,A.m.,Early,[email protected],Forestville,Ca,United States,Bars and wineries in sonoma and napa counties,River road,25.0,,,,,,
70
- ,2144897300,,,,,,,,a_49er fan,Angel,Barba,[email protected],wylie,texas,United States,Wylie,922 cedar creek dr.,12.0,,,,,,
71
- ,4153206471,,,,,,,,Niner Empire Marin,Aaron,Clark,[email protected],Novato,CA,United States,Moylan's Brewery & Restaurant,15 Rowland Way,13.0,,,,,,
72
- ,2095344459,,,,,,,,4T9 Mob,Angel,Cruz,[email protected],Modesto,ca,United States,Jack's pizza cafe,2001 Mchenry ave,30.0,,,,,,
73
- ,5708529383,,,,,,,,North Eastern Pennsyvania chapter,Benjamin,Simon,[email protected],Larksville,PA,United States,Zlo joes sports bar,234 Nesbitt St,25.0,,,,,,
74
- ,5039150229,,,,,,,,PDX Frisco Fanatics,Adam,Hunter,[email protected],Portland,Or,United States,Suki's bar and Grill,2401 sw 4th ave,8.0,,,,,,
75
- ,(408) 981-0615,,,,,,,,The 101 Niner Empire,ANDRONICO [Adrian],FERNANDEZ,[email protected],Morgan Hill,CA,United States,Huntington Station restaurant and sports pub,Huntington Station restaurant and sports pub,10.0,https://www.facebook.com/THE101NINEREMPIRE/,,,,,
76
- ,8147901621,,,,,,,,Faithful Tri-State Empire,Armando,Holguin,[email protected],Erie,PA,United States,Buffalo Wild Wings,2099 Interchange Rd,10.0,https://www.facebook.com/groups/1145565166387786/,,,,,
77
- ,9282100493,,,,,,,,YUMA Faithfuls,Steven,Navarro,[email protected],Yuma,AZ,United States,Hooters,1519 S Yuma Palms Pkwy,305.0,Yuma Faithfuls (FaceBook group page),,,,,
78
- ,5103146643,,,,,,,,49ER EMPIRE SF Bay Area Core Chapter,AJ,Esperanza,[email protected],Fremont,california,United States,Jack's Brewery,39176 Argonaut Way,1500.0,,,,,,
79
- ,8506982520,,,,,,,,Niner Empire Orlando Chapter,Aaron,Hill,[email protected],Orlando,FL,United States,Underground Public House,19 S Orange Ave,50.0,,,,,,
80
- ,5805913565,,,,,,,,Niner Artillery Empire,Alicia/Airieus,DeLeon/Ervin,[email protected],517 E Gore Blvd,OK,United States,Sweet Play/ Mike's Sports Grill,2610 Sw Lee Blvd Suite 3 / 517 E Gore Blvd,25.0,,,,,,
81
- ,5104993415,,,,,,,,510 Empire,Alex,Banks,[email protected],Alameda,CA,United States,McGee's Bar and Grill,1645 Park ST,10.0,,,,,,
82
- ,5105082055,,,,,,,,Garlic City Faithful,Abdul,Momeni,[email protected],Gilroy,CA,United States,Straw Hat Pizza,1053 1st Street,3.0,,,,,,
83
- ,2092918080,,,,,,,,Faithful to the Bay,Angel,Alvarez,[email protected],Merced,CA,United States,Home,Mountain mikes pizza,15.0,,,,,,
84
- ,5627391639,,,,,,,,O.C. NINER EMPIRE FAITHFUL'S,Angel,Grijalva,[email protected],Buena park,CA,United States,Ciro's pizza,6969 la Palma Ave,10.0,,,,,,
85
- ,408-209-1677,,,,,,,,408 Faithfuls,Angelina,Arevalo,[email protected],Milpitas,CA,United States,Big Al's Silicon Valley,27 Ranch Drive,50.0,IG- @408faithfuls,,,,,
86
- ,6507841235,,,,,,,,415 chapter,Angelo,Hernandez,[email protected],san francisco,California,United States,49er Faithful house,2090 Bryant street,200.0,,,,,,
87
- ,3038641585,,,,,,,,HairWorks,Annie,,[email protected],Denver,Co,United States,hairworks,2201 Lafayette at,1.0,,,,,,
88
- ,(925) 481-0343,,,,,,,,49ers Room The Next Generation Of Faithfuls,Antonio,Caballero,[email protected],Tlalnepantla de Baz,CA,United States,Buffalo Wild Wings Mindo E,Blvd. Manuel Avila Camacho 1007,12.0,,,,,,
89
- ,2098182020,,,,,,,,Niner Empire 209 Modesto Chapter,Paul,Marin,[email protected],Modesto,CA,United States,Rivets American Grill,2307 Oakdale Rd,50.0,https://www.facebook.com/niner.ninjas?ref=bookmarks,,,,,
90
- ,2539616009,,,,,,,,Lady Niners of Washington,April,Costello,[email protected],Auburn,Wa,United States,Sports Page,2802 Auburn Way N,13.0,,,,,,
91
- ,4803290483,,,,,,,,AZ 49ER EMPIRE,GARY,MARTINEZ,[email protected],Phoenix,AZ,United States,The Native New Yorker (Ahwatukee),5030 E Ray Rd.,130.0,,,,,,
92
- ,9096214821,,,,,,,,The Bulls Eye Bar 49ers,Armando,M. Macias,[email protected],Montclair,California,United States,Black Angus Montclair California,9415 Monte Vista Ave.,20.0,,,,,,
93
- ,5404245114,,,,,,,,NoVa Tru9er Empire,Jay,balthrop,[email protected],Woodbridge,va,United States,Morgan's sports bar & lounge,3081 galansky blvd,40.0,,,,,,
94
- ,(951) 691-6631,,,,,,,,Niner Empire 951 Faithfuls,Samuel,Betancourt,[email protected],Hemet,CA,United States,"George's Pizza 2920 E. Florida Ave. Hemet, Ca.",2920 E. Florida Ave.,30.0,https://www.facebook.com/951Faithfuls/,,,,,
95
- ,8174956499,,,,,,,,Spartan Niner Empire Texas,Adreana,Corralejo,[email protected],Arlington,TX,United States,Bombshells Restaurant & Bar,701 N. Watson Rd.,12.0,,,,,,
96
- ,3234720160,,,,,,,,THEE EMPIRE FAITHFUL LOS ANGELES COUNTY,Dennis,Guerrero II,[email protected],Los Angeles,CA,United States,Home,1422 Saybrook Ave,25.0,,,,,,
97
- ,5103756841,,,,,,,,Niner Empire Richmond 510 Chapter,David,Watkins,[email protected],San Pablo,Ca,United States,Noya Lounge,14350 Laurie Lane,50.0,,,,,,
98
- ,9254810343,,,,,,,,Thee Empire Faithful The Bay Area,Ant,Caballero,[email protected],Oakley,Ca,United States,Sabrina's Pizzeria,2587 Main St,20.0,,,,,,
99
- ,8049013890,,,,,,,,The Mid Atlantic Niner Empire Chapter,Jacob,Tyree,[email protected],Mechanicsville,Va,United States,The Ville,7526 Mechanicsville Turnpike,10.0,https://www.facebook.com/#!/groups/290644124347980/,,,,,
100
- ,6058683729,,,,,,,,Big Sky SF 49ers,Jo,Poor Bear,[email protected],Billings,MT,United States,Old Chicago - Billings,920 S 24th Street W,10.0,,,,,,
101
- ,808-387-7075,,,,,,,,Hawaii Niner Empire,Bryson,Kerston,[email protected],Waipahu,HI,United States,The Hale,94-983 kahuailani st,25.0,,,,,,
102
- ,5597896991,,,,,,,,Niner Empire Porterville Cen Cal 559,Olivia,"""""bo"""" Ortiz or Patricia Sanchez",[email protected],Porterville,Ca,United States,Pizza Factory/ Local Bar & Grill,897 W. Henderson,34.0,,,,,,
103
- ,4132734010,,,,,,,,W.MA CHAPTER NINER EMPIRE,BECKY,OSORIO,[email protected],CHICOPEE,MA,United States,MAXIMUM CAPACITY,116 SCHOOL ST,36.0,,,,,,
104
- ,(757) 708-0662,,,,,,,,Hampton Roads Niner Empire (Southside Chapter),Braxton,Gaskins,[email protected],Norfolk,VA,United States,Azalea Inn / Timeout Sports Bar,Azalea Inn / Timeout Sports Bar,40.0,,,,,,
105
- ,5598042288,,,,,,,,Central Valley Niners,Jesse,moreno,[email protected],Visalia,Ca,United States,Pizza factory,3121 w noble,35.0,,,,,,
106
- ,6094038767,,,,,,,,Niner Knights,Bryan,Teel,[email protected],Ewing Twp,NJ,United States,Game Room of River Edge Apts,1009 Country Lane,35.0,,,,,,
107
- ,3463344898,,,,,,,,Lone Star Niner Empire,Myrna,Martinez,[email protected],Houston,TX,United States,Post oak ice house,5610 Richmond Ave.,33.0,,,,,,
108
- ,8082657452,,,,,,,,Hawaii Faithfuls,Rey,Buzon,[email protected],Honolulu,HI,United States,Champions Bar & Grill,1108 Keeaumoku Street,30.0,,,,,,
109
- ,9099571468,,,,,,,,49er Faithful of Murrieta,Colleen,Hancock,[email protected],Murrieta,CA,United States,Sidelines Bar & Grill,24910 Washington Ave,30.0,,,,,,
110
- ,9168221256,,,,,,,,Capitol City 49ers,Erica,Medina,[email protected],Sacramento,CA,United States,Tom's Watch Bar DOCO,Tom's Watch Bar 414 K St suite 180,1300.0,https://www.facebook.com/groups/1226671178132767/?ref=share,,,,,
111
- ,3103496959,,,,,,,,Huntington Beach Faithfuls,Carlos,Pizarro,[email protected],Huntington Beach,CA,United States,BEACHFRONT 301,301 Main St. Suite 101,100.0,,,,,,
112
- ,(210) 375-6746,,,,,,,,Niner Empire Saltillo,Carlos,Carrizales,[email protected],Saltillo,TX,United States,Cadillac Saltillo Bar,Cadillac Saltillo Bar,116.0,Club 49ers Saltillo @ Facebook,,,,,
113
- ,9035527931,,,,,,,,Germantown 49er's Club,CM,Rosenthal,[email protected],Memphis,TN,United States,Mr. P's Sports Bar Hacks Cross Rd.,3284 Hacks Cross Road,103.0,,,,,,
114
- ,12093462496,,,,,,,,49ers faithful,Ray,Castillo,[email protected],KEYES,CA,United States,Mt mikes ceres ca,4618 Blanca Ct,8.0,,,,,,
115
- ,2094561796,,,,,,,,Ladies Of The Empire,Catherine,Tate,[email protected],Manteca,Ca,United States,Central Valley and Bay Area,1660 W. Yosemite Ave,247.0,,,,,,
116
- ,7027735380,,,,,,,,Las Vegas Niner Empire 702,blu,villegas,[email protected],Las Vegas,NV,United States,Calico Jack's,8200 W. Charleston rd,300.0,,,,,,
117
- ,3107487035,,,,,,,,49ers Faithfuls in DC,Catie,Bailard,[email protected],Washington,DC,United States,Town Tavern,2323 18th Street NW,150.0,,,,,,
118
- ,6619722639,,,,,,,,49er Booster Club of Roseville,Cece,Moats,[email protected],Roseville,CA,United States,Bunz Sports Pub & Grub,311 Judah Street,32.0,,,,,,
119
- ,6613033911,,,,,,,,Kern County Niner Empire,Sal,Luna,[email protected],Bakersfield,Ca,United States,Firehouse Restaurant,7701 White Lane,100.0,,,,,,
120
- ,8315126139,,,,,,,,Central Coast Niner Empire 831,Rafael,Garcia,[email protected],Salinas,CA,United States,Buffalo Wild Wings,1988 North Main St,11.0,Facebook.com/CentralCoastNinerEmpire831,,,,,
121
- ,8315126139,,,,,,,,Central Coast Niner Empire 831,Rafael,Garcia,[email protected],Salinas,CA,United States,Pizza Factory,1945 Natividad Rd,22.0,Facebook.com/CentralCoastNinerEmpire831,,,,,
122
- ,2817509505,,,,,,,,Houston Niner Empire,Carlos,Duarte,[email protected],Houston,TX,United States,Home Plate Bar & Grill,1800 Texas Street,107.0,https://m.facebook.com/HoustonNinerEmpire/,,,,,
123
- ,4068535155,,,,,,,,Train Whistle Faithful,Christopher,Gunnare,[email protected],Mountain View,CA,United States,Savvy Cellar,750 W. Evelyn Avenue,13.0,,,,,,
124
- ,3104659461,,,,,,,,Corpus Christi Chapter Niner Empire,Arturo,Hernandez,[email protected],Corpus Christi,TX,United States,Cheers,419 Starr St.,37.0,,,,,,
125
- ,3528070372,,,,,,,,Niner Empire Dade City,Fernando,Chavez,[email protected],Dade City,Florida,United States,Beef O Brady's Sports Bar,14136 7th Street,22.0,,,,,,
126
- ,5309536097,,,,,,,,Chico Faithfuls,Oscar,Mendoza,[email protected],Chico,CA,United States,Mountain Mikes Pizza,1722 Mangrove Ave,32.0,http://facebook.com/chicofaithfuls,,,,,
127
- ,8473099909,,,,,,,,Chicago Niners,Chris,Johnston,[email protected],Chicago,IL,United States,Cheesie's Pub & Grub 958 W Belmont Ave Chicago IL 60657,958 W Belmont Ave,75.0,,,,,,
128
- ,7076556423,,,,,,,,Niner Empire 916 Sac Town,Lehi,Amado/Anthony Moreno,[email protected],Sacramento,CA,United States,El Toritos,1598 Arden blvd,40.0,http://www.Facebook.com,,,,,
129
- ,7193377546,,,,,,,,49ER EMPIRE COLORADO CHAPTER,CHARLES,M. DUNCAN,[email protected],Colorado Springs,Co.,United States,FOX & HOUND COLORADO SPRINGS,3101 New Center Pt.,25.0,,,,,,
130
- ,3364512567,,,,,,,,49ers NC Triad Chapter,Christopher,Miller,[email protected],Greensboro,NC,United States,Kickback Jack's,1600 Battleground Ave.,10.0,,,,,,
131
- ,4588992022,,,,,,,,Central Oregon 49ers Faithful,George,Bravo,[email protected],Redmond,OR,United States,Redmond Oregon,495 NW 28th St,1.0,,,,,,
132
- ,3108979404,,,,,,,,Westside 9ers,Naimah,Shamsiddeen,[email protected],Carson,CA,United States,Los Angeles,1462 E Gladwick St,20.0,,,,,,
133
- ,2173173725,,,,,,,,Niner Empire Illinois Chapter,Max,Tuttle,[email protected],Mattoon,Illinois,United States,"residence, for now",6 Apple Drive,6.0,,,,,,
134
- ,2089642981,,,,,,,,Treasure Valley 49er Faithful,Curt,Starz,[email protected],Star,ID,United States,The Beer Guys Saloon,10937 W State St,50.0,https://www.facebook.com/TV49erFaithful/,,,,,
135
- ,2039484616,,,,,,,,Ct faithful chapter,Tim,Maroney,[email protected],stamford,ct,United States,buffalo wild wings,208 summer st,33.0,,,,,,
136
- ,3057780667,,,,,,,,305 FAITHFUL EMPIRE,Damien,Lizano,[email protected],Miami,FL,United States,Walk-On's,9065 SW 162nd Ave,18.0,,,,,,
137
- ,1415902100,,,,,,,,Fillmoe SF Niners Nation Chapter,Daniel,Landry,[email protected],San Francisco,CA,United States,Honey Arts Kitchen by Pinot's,1861 Sutter Street,16.0,,,,,,
138
- ,6199949071,,,,,,,,49ers So Cal Faithfuls,Daniel,Hernandez,[email protected],Oxnard,CA,United States,So Cal (Various locations with friends and family),3206 Lisbon Lane,4.0,,,,,,
139
- ,(817) 675-7644,,,,,,,,Niner Empire DFW,Danny,Ramirez,[email protected],Arlington,TX,United States,Walk-Ons Bistreaux,Walk-Ons Bistreaux,75.0,www.facebook.com/ninerempiredfw,,,,,
140
- ,(505) 480-6101,,,,,,,,Duke City Faithful Niner Empire,Danny,Roybal,[email protected],Albuquerque,NM,United States,Duke City Bar And Grill,6900 Montgomery Blvd NE,93.0,www.facebook.com/@dukecityfaithful505,,,,,
141
- ,8089545569,,,,,,,,49ers @ Champions,Davis,Price,[email protected],Honolulu,Hawaii,United States,Champions Bar and Grill,1108 Keeaumoku St,12.0,,,,,,
142
- ,870-519-9373,,,,,,,,Natural State Niners Club,Denishio,Blanchett,[email protected],Jonesboro,AR,United States,"Buffalo Wild Wings, Jonesboro, AR",Buffalo Wild Wings,18.0,,,,,,
143
- ,7706664527,,,,,,,,49er Empire - Georgia Chapter,Brian,Register,[email protected],Marietta,ga,United States,Dave & Busters of Marietta Georgia,2215 D and B Dr SE,23.0,https://www.facebook.com/49erEmpireGeorgiaChapter,,,,,
144
- ,(928) 302-6266,,,,,,,,San Francisco 49ers of San Diego,Denise,Hines,[email protected],San Diego,CA,United States,Moonshine Beach,Moonshine Beach Bar,80.0,,,,,,
145
- ,5204147239,,,,,,,,Sonoran Desert Niner Empire,Derek,Yubeta,[email protected],Maricopa,AZ,United States,Cold beers and Cheeseburgers,20350 N John Wayne pkwy,50.0,Facebook Sonoran Desert Niner Empire,,,,,
146
- ,315-313-8105,,,,,,,,49ers Empire Syracuse 315 Chapter,Dexter,Grady,[email protected],Syracuse,NY,United States,Change of pace sports bar,1809 Grant Blvd,233.0,Facebook 49ers Empire Syracuse 315 Chapter,,,,,
147
- ,8058901997,,,,,,,,Niner Empire Ventura Chapter,Diego,Rodriguez,[email protected],Ventura,CA,United States,El Rey Cantina,El Rey Cantina,20.0,,,,,,
148
- ,(717) 406-4494,,,,,,,,540 Faithfuls of the Niner Empire,Derrick,Lackey Sr,[email protected],Fredericksburg,VA,United States,Home Team Grill,1109 Jefferson Davis Highway,8.0,,,,,,
149
- ,8134588746,,,,,,,,Ninerempire Tampafl Chapter,john,downer,[email protected],tampa,fl,United States,Ducky's,1719 eest Kennedy blvd,25.0,,,,,,
150
- ,5857393739,,,,,,,,Gold Diggers,Drew,Nye,[email protected],Rochester,New York,United States,The Blossom Road Pub,196 N. Winton Rd,12.0,,,,,,
151
- ,2545482581,,,,,,,,Niner Empire Waco Chapter,Dustin,Weins,[email protected],Waco,TX,United States,Salty Dog,2004 N. Valley Mills,36.0,https://www.facebook.com/groups/Waco49ersFans/,,,,,
152
- ,9253823429,,,,,,,,Niner Empire of Brentwood,Elvin,Geronimo,[email protected],Brentwood,CA,United States,Buffalo Wild Wings,6051 Lone Tree Way,30.0,,,,,,
153
- ,7173301611,,,,,,,,"NinerEmpire of Lancaster, PA",Eli,Jiminez,[email protected],Lancaster,PA,United States,PA Lancaster Niners Den,2917 Marietta Avenue,50.0,https://www.facebook.com/NinerEmpireLancasterPA,,,,,
154
- ,9156671234,,,,,,,,Empire Tejas 915- El Paso TX,Jr,& Yanet Esparza,[email protected],El Paso,Tx,United States,EL Luchador Taqueria/Bar,1613 n Zaragoza,28.0,,,,,,
155
- ,9168221256,,,,,,,,Capitol City 49ers fan club,Erica,medina,[email protected],West Sacramento,CA,United States,Burgers and Brew restaurant,317 3rd St,80.0,,,,,,
156
- ,6269276427,,,,,,,,Golden Empire Hollywood,Ernie,Todd Jr,[email protected],Los Angeles,CA,United States,Nova Nightclub,7046 Hollywood Blvd,10.0,,https://www.instagram.com/goldenempire49ers/,,,,
157
- ,7202714410,,,,,,,,Spartan Niner Empire Denver,Esley,Sullivan,[email protected],Denver,CO,United States,Downtown Denver,In transition,9.0,Facebook: Spartans of Denver,,,,,
158
- ,3244765148,,,,,,,,49er empire of Frisco Texas,Frank,Murillo,[email protected],Frisco,TX,United States,The Irish Rover Pub & Restaurant,8250 Gaylord Pkwy,150.0,,,,,,
159
- ,7079804862,,,,,,,,FAIRFIELD CHAPTER,CHARLES,MCCARVER JR,[email protected],Fairfield,CA,United States,Legends Sports Bar & Grill,3990 Paradise Valley Rd,24.0,https://www.facebook.com/pages/NINER-Empire-Fairfield-Chapter/124164624589973,,,,,
160
- ,5302434949,,,,,,,,Shasta Niners,Ruth,Rhodes,[email protected],Redding,CA,United States,Shasta Niners Clubhouse,4830 Cedars Rd,80.0,,,,,,
161
- ,4156021439,,,,,,,,NINER EMPIRE FREMONT CHAPTER,Elmer,Urias,[email protected],Fremont,CA,United States,Buffalo Wild Wings,43821 Pacific Commons Blvd,22.0,,,,,,
162
- ,701-200-2001,,,,,,,,Fargo 49ers Faithful,Sara,Wald,[email protected],Fargo,ND,United States,Herd & Horns,1414 12th Ave N,25.0,,,,,,
163
- ,5309022915,,,,,,,,49ER ORIGINALS,Noah,Abbott,[email protected],Redding,CA,United States,BLEACHERS Sports Bar & Grill,2167 Hilltop Drive,50.0,http://www.facebook.com/49ERORIGINALS,,,,,
164
- ,8439910310,,,,,,,,"49er Flowertown Empire of Summerville, SC",Michele,A. McGauvran,[email protected],Summerville,South Carolina,United States,Buffalo Wild Wings,109 Grandview Drive #1,20.0,,,,,,
165
- ,(321) 684-1543,,,,,,,,49ers of Brevard County,Anthony,Lambert,[email protected],Port St Johns,FL,United States,Beef O'Bradys in Port St. Johns,3745 Curtis Blvd,5.0,,,,,,
166
- ,9092227020,,,,,,,,Forever Faithful Clique,Rosalinda,Arvizu,[email protected],San Bernardino,CA,United States,The Study Pub and Grill,5244 University Pkwy Suite L,10.0,,,,,,
167
- ,9098090868,,,,,,,,49ERS FOREVER,BOBBY,MENDEZ,[email protected],REDLANDS,CALIFORNIA,United States,UPPER DECK,1101 N. CALIFORNIA ST.,80.0,,,,,,
168
- ,6612050411,,,,,,,,Thee Empire Faithful Bakersfield,Faustino,Gonzales,[email protected],Bakersfield,Ca,United States,Senor Pepe's Mexican Restaurant,8450 Granite Falls Dr,20.0,https://www.facebook.com/Thee-Empire-Faithful-Bakersfield-385021485035078/,,,,,
169
- ,3109022071,,,,,,,,Saloon Suad,Gary,Fowler,[email protected],Los Angeles,ca,United States,San Francisco Saloon Bar,11501,20.0,,,,,,
170
- ,7028602312,,,,,,,,Troy'a chapter,Gerardo,Villanueva,[email protected],Troy,OH,United States,Viva la fiesta restaurant,836 w main st,12.0,,,,,,
171
- ,9099130140,,,,,,,,Niner Empire IE Chapter,Gabriel,Arroyo,[email protected],San Bernardino,California,United States,Don Martins Mexican Grill,1970 Ostrems Way,50.0,http://www.facebook.com/#!/ninerempire.iechapter/info,,,,,
172
- ,2095701072,,,,,,,,20916 Faithful,Joe,Trujillo,[email protected],Elk Grove,CA,United States,Sky River Casino,1 Sky River Parkway,25.0,,,,,,
173
- ,6265396855,,,,,,,,SO. CAL GOLD BLOODED NINER'S,Louie,Gutierrez,[email protected],Hacienda heights,CA,United States,SUNSET ROOM,2029 hacinenda blvd,20.0,Facebook group page/instagram,,,,,
174
- ,3053603672,,,,,,,,"South Florida's Faithful, Niner Empire",Dawn,Renae Desborough,[email protected],Homestead,Fl,United States,Chili's in Homestead,2220 NE 8TH St.,10.0,https://www.facebook.com/southfloridafaithfuls,,,,,
175
- ,4804527403,,,,,,,,Cesty's 49ers Faithful,Pablo,Machiche,[email protected],Chandler,AZ,United States,Nando's Mexican Cafe,1890 W Germann Rd,25.0,,,,,,
176
- ,(956) 342-2285,,,,,,,,Niner Gang Empire,Marquez,Gonzalez,[email protected],EDINBURG,TX,United States,Danny Bar & Grill,4409 Adriana,2.0,,,,,,
177
- ,7852700872,,,,,,,,The Bell Ringers,Gretchen,Gier,[email protected],Manhattan,KS,United States,Jeff and Josie Schafer's House,1517 Leavenworth St.,10.0,,,,,,
178
- ,5627391639,,,,,,,,O.C. NINER EMPIRE FAITHFUL'S,Angel,Grijalva,[email protected],Buena park,CA,United States,Ciro's pizza,6969 la Palma Ave,10.0,,,,,,
179
- ,8176757644,,,,,,,,Niner Empire DFW,Danny,Ramirez,[email protected],Bedford,TX,United States,Papa G's,2900 HIGHWAY 121,50.0,,,,,,
180
- ,2092624468,,,,,,,,Hilmar Empire,Brian,Lopes,[email protected],Hilmar,Ca,United States,Faithful House,7836 Klint dr,10.0,,,,,,
181
- ,3045082378,,,,,,,,49ers of West Virginia,Herbert,Moore IV,[email protected],Bridgeport,WV,United States,Buffalo WIld Wings,45 Betten Ct,2.0,,,,,,
182
- ,6185593569,,,,,,,,618 Niner Empire,Jared,Holmes,[email protected],Carbondale,IL,United States,"Home Basement aka """"The Local Tavern""""",401 N Allyn st,3.0,,,,,,
183
- ,808-989-0030,,,,,,,,NINER EMPIRE HAWAII 808,KEVIN,MEWS,[email protected],HONOLULU,HI,United States,DAVE AND BUSTERS,1030 AUAHI ST,40.0,,,,,,
184
- ,(808) 989-0030,,,,,,,,NINER EMPIRE HAWAII 808,KEVIN,MEWS,[email protected],Honolulu,HI,United States,Buffalo Wild Wings -Pearl City,1644 Young St # E,25.0,,,,,,
185
- ,8323734372,,,,,,,,H-Town Empire,Cedric,Robinson,[email protected],Houston,Tx,United States,Skybox Bar and Grill,11312 Westheimer,30.0,,,,,,
186
- ,6015691741,,,,,,,,Hub City Faithful,Alan,Thomas,[email protected],Hattiesburg,Mississippi,United States,Mugshots,204 N 40th Ave,12.0,,,,,,
187
- ,4043191365,,,,,,,,Spartan Niner Empire Georgia,Idris,Finch,[email protected],Duluth,GA,United States,Bermuda Bar,3473 Old Norcross Rd,100.0,,,,,,
188
- ,6462357661,,,,,,,,Westchester County New York 49ers Fans,Victor,Delgado aka 49ers Matador,[email protected],Yonkers,New York,United States,"We meet at 3 locations, Burkes Bar in Yonkers, Matador's Fan Cave and Finnerty's",14 Troy Lane,46.0,https://www.facebook.com/groups/250571711629937/,,,,,
189
- ,8319702480,,,,,,,,Niner Empire 831,Luis,Pavon,[email protected],Salinas,Ca,United States,Straw Hat Pizza,156 E. Laurel Drive,30.0,,,,,,
190
- ,5033080127,,,,,,,,Niner Empire Portland,Joshua,F Billups,[email protected],Clackamas,Oregon,United States,Various,14682 SE Sunnyside Rd,25.0,,,,,,
191
- ,2815464828,,,,,,,,49ers Empire Galveston County Chapter,Terrance,Bell,[email protected],Nassau Bay,TX,United States,Office,1322 Space Park Dr.,9.0,,,,,,
192
- ,4153707725,,,,,,,,NINER EMPIRE,Joe,Leonor,[email protected],Brisbane,Ca,United States,7 Mile House,2800 Bayshore Blvd,8000.0,,,,,,
193
- ,6173350380,,,,,,,,Boston San Francisco Bay Area Crew,Isabel,Bourelle,[email protected],Boston,MA,United States,The Point Boston,147 Hanover Street,50.0,https://www.facebook.com/groups/392222837571990/,,,,,
194
- ,6173350380,,,,,,,,49ers Faithful of Boston,Isabel,Bourelle,[email protected],Boston,MA,United States,"The Point, Boston, MA",147 Hanover Street,100.0,https://www.facebook.com/49ersfanBoston,,,,,
195
- ,9098153880,,,,,,,,Riverside 49ers Booster Club,Gus,Esmerio,[email protected],Riverside,California,United States,Lake Alice Trading Co Saloon &Eatery,3616 University Ave,20.0,,,,,,
196
- ,3187893452,,,,,,,,318 Niner Empire,Dwane,Johnson (Jayrock),[email protected],Monroe,La.,United States,318 Niner Empire HQ,400 Stone Ave.,35.0,,,,,,
197
- ,5127872407,,,,,,,,The Austin Faithful,Jeffrey,Cerda,[email protected],Austin,TX,United States,8 Track,2805 Manor Rd,100.0,,,,,,
198
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,TX,United States,Sir Winston's Pub,2522 Nacogdoches Rd.,150.0,,,,,,
199
- ,5097684738,,,,,,,,NINER EMPIRE OF THE 509,JESUS,MACIAS,[email protected],Spokane,WA,United States,Mac daddy's,"808 W Main Ave #106, Spokane, WA 99201",25.0,,,,,,
200
- ,19496329301,,,,,,,,SOCAL OC 49ERS,James,Di Cesare Jr,[email protected],Newport Beach,CA,United States,The Blue Beet,107 21st Place,25.0,,,,,,
201
- ,7027692152,,,,,,,,Sin City Niner Empire,Jay,Patrick Bryant-Chavez,[email protected],Henderson,NV,United States,Hi Scores Bar-Arcade,65 S Stephanie St.,10.0,,,,,,
202
- ,2093862570,,,,,,,,Central Valley 9er Faithful,Jenn,Palacio,[email protected],Turlock,CA,United States,Mountain Mike's,409 S Orange St.,12.0,,,,,,
203
- ,4089104105,,,,,,,,Niner Squad,Joseph,Perez,[email protected],San Jose,CA,United States,"4171 Gion Ave San Jose,Ca",4171 Gion Ave,25.0,,,,,,
204
- ,2094897540,,,,,,,,merced niner empire,john,candelaria sr,[email protected],merced,ca,United States,round table pizza,1728 w olive ave,12.0,,,,,,
205
- ,7604120919,,,,,,,,NINERS ROLLIN HARD IMPERIAL VALLEY CHAPTER,Juan,Vallejo,[email protected],Brawley,CA,United States,SPOT 805,550 main Street,45.0,,,,,,
206
- ,3856257232,,,,,,,,Tooele County 49ers,Jon,Proctor,[email protected],TOOELE,UT,United States,"Pins and Ales - 1111 N 200 W, Tooele, UT 84074",1111 N 200 W,30.0,https://www.facebook.com/groups/173040274865599,,,,,
207
- ,3165194699,,,,,,,,49ers united of wichita ks,Josh,Henke,[email protected],Wichita,KS,United States,Hurricane sports grill,8641 w 13th st suite 111,206.0,Facebook 49ers united of wichita ks,,,,,
208
- ,8282919599,,,,,,,,828 NCNINERS,Jovan,Hoover,[email protected],Hickory,NC,United States,Coaches Neighborhood Bar and Grill,2049 Catawba Valley Blvd SE,10.0,,,,,,
209
- ,3207749300,,,,,,,,Chicago 49ers Club,Jonathan,West,[email protected],Chicago,IL,United States,The Globe Pub,1934 West Irving Park Road,12.0,,,,,,
210
- ,5033174024,,,,,,,,Niner Empire Vancouver,Justin,Downs,[email protected],Vancouver,WA,United States,Heathen feral public house,1109 Washington St,567.0,,,,,,
211
- ,7572565334,,,,,,,,Hampton Roads Niners Fanatics,Steve,Mead,[email protected],Hampton,VA,United States,Nascar Grille,1996 Power Plant Parkway,65.0,,,,,,
212
- ,(859) 991-8185,,,,,,,,Cincy Faithful,Joshua,Karcher,[email protected],Newport,KY,United States,Buffalo Wild Wings,83 Carothers Rd,4.0,,,,,,
213
- ,4058028979,,,,,,,,Southside OKC Faithful Niners,Gary,Calton,[email protected],Oklahoma City,Oklahoma,United States,CrosseEyed Moose,10601 Sout Western Ave,6.0,,,,,,
214
- ,7078899236,,,,,,,,707 FAITHFULS,Enrique,Licea,[email protected],Wine country,CA,United States,Wine country,"Breweries, restaurant's, wineries, private locations",1000.0,,707 faithfuls ( INSTAGRAM),,,,
215
- ,6623134320,,,,,,,,NINER EMPIRE MEMPHIS CHAPTER,Kenita,Miller,[email protected],Memphis,Tennessee,United States,360 Sports Bar & Grill,3896 Lamar Avenue,40.0,,,,,,
216
- ,(843) 437-3101,,,,,,,,Chucktown Empire 49ers of Charleston,Kentaroe,Jenkins,[email protected],North Charleston,SC,United States,Chill n' Grill Sports bar,"2810 Ashley Phosphate Rd A1, North Charleston, SC 29418",20.0,https://m.facebook.com/groups/1546441202286398?ref=bookmarks,,,,,
217
- ,7278359840,,,,,,,,Spartans Niner Empire Florida,Ram,Keomek,[email protected],Tampa,FL,United States,Ducky's Sports Bar,1719 Kennedy Blvd,12.0,Spartans Empire Florida (Facebook),,,,,
218
- ,4159871795,,,,,,,,Palm Springs Area 49er Club,Kevin,Casey,[email protected],Palm Springs,CA,United States,The Draughtsmen,1501 N Palm Canyon,15.0,,,,,,
219
- ,907351-8367,,,,,,,,49th State Faithful,James,Knudson,[email protected],Anchorage,AK,United States,Al's Alaskan Inn,7830 Old Seward Hwy,202.0,Facebook 49th State Faithful,,,,,
220
- ,6232241316,,,,,,,,49er faithful of Arizona ( of the West Valley ),Koni,Raes,[email protected],Surprise,Az,United States,"Booty's Wings, Burgers and Beer Bar and Grill",15557 W. Bell Rd. Suite 405,10.0,,,,,,
221
- ,19096849033,,,,,,,,NINER CORE,Mike,Fortunato,[email protected],Bloomington,CA,United States,Traveling chapter,18972 Grove pl,30.0,,,,,,
222
- ,9168380550,,,,,,,,Forever Faithful RGV (Rio Grande Valley),Karen,Schmidt,[email protected],McAllen,TX,United States,My Place,410 N 17th St,1.0,,,,,,
223
- ,9166065299,,,,,,,,49ers Sacramento Faithfuls,Leo,Placencia lll,[email protected],West Sacramento,CA,United States,Kick N Mule Restaurant and Sports Bar,2901 W Capitol Ave,250.0,,Instagram page 49erssacramentofaithfuls,,,,
224
- ,9098964162,,,,,,,,SO. CAL GOLDBLOOED NINERS,Louie,Gutierrez,[email protected],Industry,CA,United States,Hacienda nights pizza co.,15239 Gale ave,20.0,,,,,,
225
- ,5105867089,,,,,,,,Niner Empire Hayward chapter,Raul,Sosa,[email protected],Hayward,Ca,United States,Strawhat pizza,1163 industrial pkwy W,30.0,,,,,,
226
- ,6412033285,,,,,,,,49ers Empire Iowa Chapter,Lisa,Wertz,[email protected],Chariton,Iowa,United States,Shoemakers Steak House,2130 Court Ave,194.0,https://www.facebook.com/groups/247559578738411/,,,,,
227
- ,5598923919,,,,,,,,Niner Empire of Fresno,Luis,Lozano,[email protected],Fresno,CA,United States,Round Table Pizza,5702 N. First st,215.0,Http://facebook.com/theninerempireoffresno,,,,,
228
- ,8602057937,,,,,,,,Connecticut Spartan Niner Empire,Maria,Ortiz,[email protected],East Hartford,Connecticut,United States,Silver Lanes Lounge,748 Silverlane,13.0,,,,,,
229
- ,2814602274,,,,,,,,"Niner Empire Houston, TX Chapter",Lorenzo,Puentes,[email protected],Houston,Texas,United States,Little J's Bar,5306 Washington Ave,175.0,https://www.facebook.com/NinerEmpireHTX,,,,,
230
- ,2814085420,,,,,,,,"Niner Empire Houston, TX",lorenzo,puentes,[email protected],Houston,Texas,United States,coaches I-10,17754 Katy Fwy #1,150.0,https://m.facebook.com/NinersFaithfulHTX,,,,,
231
- ,6265396855,,,,,,,,SO. CAL GOLD BLOODED NINER'S,Louie,Gutierrez,[email protected],Industry,CA,United States,Hacienda heights Pizza Co,15239 Gale Ave,25.0,Facebook group page/instagram,,,,,
232
- ,5593597047,,,,,,,,the 559 ers,jose,Ascencio,[email protected],porterville,CA,United States,landing 13,landing 13,10.0,,,,,,
233
- ,3105705415,,,,,,,,Billings Niners Faithful,Lukas,Seely,[email protected],Billings,MT,United States,Craft B&B,2658 Grand ave,42.0,https://www.facebook.com/groups/402680873209435,,,,,
234
- ,9016909484,,,,,,,,901 9ers,Darrick,Pate,[email protected],Memphis,Tn,United States,Prohibition,4855 American Way,50.0,,,,,,
235
- ,5127738511,,,,,,,,Tulsa 49ers Faithful,Marcus,Bell,[email protected],Tulsa,OK,United States,Buffalo Wild Wings,6222 E 41st St,140.0,https://www.facebook.com/groups/313885131283800/,,,,,
236
- ,4086853231,,,,,,,,The Niner Empire - 405 Faithfuls - Oklahoma City,Maria,Ward,[email protected],Oklahoma City,OK,United States,The Side Chick 115 E. California Ave,5911 Yale Drive,50.0,https://www.facebook.com/share/FZGC9mVjz3BrHGxf/?mibextid=K35XfP,,,,,
237
- ,7605404093,,,,,,,,Niner Empire Imperial Valley,Mario,A Garcia Jr,[email protected],Brawley,Ca,United States,Waves Restaurant & Saloon,621 S Brawley Ave,7.0,,,,,,
238
- ,6234519863,,,,,,,,East Valley Faithful,Mark,Arellano,[email protected],Gilbert,AZ,United States,TBD,5106 South Almond CT,20.0,,,,,,
239
- ,(360) 970-4784,,,,,,,,360 Niner Empire,Marcus,Dela Cruz,[email protected],Lacey,WA,United States,Dela Cruz Residence,1118 Villanova St NE,20.0,,,,,,
240
- ,8042106332,,,,,,,,49ers Booster Club of Virginia,Chris,Marshall,[email protected],Mechanicsville,Virginia,United States,Sports Page Bar & Grill,8319 Bell Creek Rd,10.0,,,,,,
241
- ,3605931626,,,,,,,,Niner Empire Tampa,Matthew,Pascual,[email protected],Tampa,FL,United States,The Bad Monkey,1717 East 7th Avenue,18.0,https://www.facebook.com/NinerEmpireTampa,,,,,
242
- ,4062441820,,,,,,,,49ers Faithful Montana State,Melissa,Kirkham,[email protected],Missoula,MT,United States,Not yet determined,415 Coloma Way,40.0,https://www.facebook.com/groups/2370742863189848/,,,,,
243
- ,3615632198,,,,,,,,49ers Fan club,Jess,Mendez,[email protected],Corpus Christi,Texas,United States,Click Paradise Billiards,5141 Oakhurst Dr.,25.0,,,,,,
244
- ,6613438275,,,,,,,,Niner Empire Delano,mike,uranday,[email protected],Delano,ca,United States,Aviator casino,1225 Airport dr,20.0,,,,,,
245
- ,6159537124,,,,,,,,Mid South Niner Empire,Tyrone,J Taylor,[email protected],Nashville,TN,United States,Winners Bar and Grill,1913 Division St,12.0,,,,,,
246
- ,6465429352,,,,,,,,49ers Empire New York City,Miguel,Ramirez,[email protected],New York,New York,United States,Off The Wagon,109 MacDougal Street,15.0,,,,,,
247
- ,7605879798,,,,,,,,49er Empire High Desert,Mike,Kidwell (president),[email protected],hesperia,California,United States,Thorny's,1330 Ranchero rd.,100.0,,,,,,
248
- ,3038425017,,,,,,,,Mile High 49ers,Howard,Gibian,[email protected],Denver,Colorado,United States,IceHouse Tavern,1801 Wynkoop St,15.0,,,,,,
249
- ,(323) 440-3129,,,,,,,,NOCO 49ers,Ryan,Fregosi,[email protected],Windsor,CO,United States,The Summit Windsor,4455 N Fairgrounds Ave,677.0,,,,,,
250
- ,4142429903,,,,,,,,Milwaukee Spartans of the Niner Empire,Brandon,Rayls,[email protected],Wauwatosa,WI,United States,jacksons blue ribbon pub,11302 w bluemound rd,5.0,,,,,,
251
- ,3257165662,,,,,,,,SAN ANGELO NINER EMPIRE,pablo,barrientod,[email protected],san angelo,tx,United States,buffalo wild wings,4251 sherwoodway,15.0,,,,,,
252
- ,5802848928,,,,,,,,580 FAITHFUL,Lowell,Mitchusson,[email protected],Devol,OK,United States,APACHE LONE STAR CASUNO,"Devol, Oklahoma",10.0,,,,,,
253
- ,9373974225,,,,,,,,49ers of Ohio,Monica,Leslie,[email protected],Xenia,Ohio,United States,Cafe Ole',131 North Allison Ave,15.0,,,,,,
254
- ,3073653179,,,,,,,,307 FAITHFUL,Michael,Mason,[email protected],Cheyenne,WY,United States,"4013 Golden Ct, Cheyenne, Wyoming",4013 Golden Ct,2.0,,,,,,
255
- ,7609277246,,,,,,,,Mojave Desert 49er Faithfuls,Nicole,Ortega,[email protected],Apple Valley,CA,United States,Gator's Sports Bar and Grill - Apple Valley,21041 Bear Valley Rd,40.0,,,,,,
256
- ,9153463686,,,,,,,,The Dusty Faithful,Alejandro,Montero,[email protected],Socorro,TX,United States,The Dusty Tap Bar,10297 Socorro Rd,45.0,,,,,,
257
- ,5055451180,,,,,,,,The Duke City Faithful,David,Young,[email protected],Albuquerque,N.M.,United States,Buffalo wild wings,6001 iliff rd.,20.0,,,,,,
258
- ,5203719925,,,,,,,,Emilio,Bustos,,[email protected],Casa grande,Arizona(AZ),United States,Liquor factory bar and deli,930 E Florence,30.0,,,,,,
259
- ,5054894879,,,,,,,,New Mexico Niner Empire,Charles,Montano,[email protected],Albuquerque,New Mexico,United States,Ojos Locos Sports Cantina,"Park Square,2105 Louisiana Blvd N.E",250.0,,,,,,
260
- ,5626593944,,,,,,,,So Cal Niner Empire,Ras,Curtis Shepperd,[email protected],Long Beach,Ca,United States,Gallaghers Irish Pub and Grill,2751 E. Broadway,30.0,,,,,,
261
- ,9802000224,,,,,,,,49er Faithful of Charlotte,Ryan,Lutz,[email protected],Charlotte,North Carolina,United States,Strike City Charlotte,210 E. Trade St.,353.0,,,,,,
262
- ,6126365232,,,,,,,,MSP Niner Faithful,Xp,Lee,[email protected],Saint Paul,MN,United States,Firebox BBQ,1585 Marshall Ave,5.0,Www.fb.me/mspniners,,,,,
263
- ,6019187982,,,,,,,,Mississippi Niner Empire Chapter-Jackson,Nicholas,Jones,[email protected],Jackson,Ms.,United States,M-Bar Sports Grill,6340 Ridgewood Ct.,69.0,,,,,,
264
- ,9256982330,,,,,,,,BayArea Faithfuls,Jon,Punla,[email protected],Pleasant Hill,California,United States,Damo Sushi,508 Contra Costa Blvd,100.0,,,,,,
265
- ,4803525459,,,,,,,,AZ49erFaithful,Ignacio,Cordova,[email protected],mesa,az,United States,Boulders on Southern,1010 w Southern ave suite 1,120.0,,,,,,
266
- ,2103164674,,,,,,,,Pluckers Alamo Ranch,Naomi,Robles,[email protected],San Antonio,TX,United States,Pluckers Wong Bar,202 Meadow Bend Dr,45.0,,,,,,
267
- ,870-519-9373,,,,,,,,Natural State Niners,Denishio,Blanchett,[email protected],Jonesboro,AR,United States,Buffalo Wild Wings,1503 Red Wolf Blvd,105.0,www.facebook.com/NSNiners,,,,,
268
- ,5614050582,,,,,,,,North Carolina Gold Blooded Empire,[email protected],,[email protected],Raleigh,North Carolina,United States,Tobacco Road - Raleigh,222 Glenwood Avenue,40.0,,,,,,
269
- ,3365588525,,,,,,,,Spartan Empire of North Carolina,Karlton,Green,[email protected],Greensboro,NC,United States,World of Beer,1310 westover terr,8.0,,,,,,
270
- ,(559) 380-5061,,,,,,,,Niner Empire Kings County,Javier,Cuevas,[email protected],Hanford,CA,United States,Fatte Albert's pizza co,110 E 7th St,10.0,,,,,,
271
- ,5053216498,,,,,,,,New Mexico Gold Rush,Larry,Urbina,[email protected],Rio Rancho,NM,United States,Applebee's,4100 Ridge Rock Rd,25.0,,,,,,
272
- ,650-333-6117,,,,,,,,Niner 408 Squad,Tracey,Anthony,[email protected],San Jose,CA,United States,Personal home,3189 Apperson Ridge Court,25.0,,,,,,
273
- ,9518670172,,,,,,,,NINER ALLEY,junior,ambriz,[email protected],moreno valley,ca,United States,home,13944 grant st,15.0,,,,,,
274
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatso's,1704 Bandera Road,25.0,https://www.facebook.com/ninerempire.antonio,,,,,
275
- ,5209711614,,,,,,,,NinerEmpire520,Joseph,(Bubba) Avalos,[email protected],Tucson,AZ,United States,Maloney's,213 North 4th Ave,100.0,,,,,,
276
- ,6024594333,,,,,,,,49er Empire Desert West,Daniel,Enriquez,[email protected],Glendale,Arizona,United States,McFadden's Glendale,9425 West Coyotes Blvd,60.0,,,,,,
277
- ,9155026670,,,,,,,,Niner Empire EPT,Pete,Chavez,[email protected],el paso,tx,United States,knockout pizza,10110 mccombs,12.0,http://www.facebook.com/groups/ninerempireept,,,,,
278
- ,7027692152,,,,,,,,"Niner Empire Henderson, NV",Jay,Bryant-Chavez,[email protected],Henderson,Nevada,United States,Hi Scores Bar-Arcade,65 S Stephanie St,11.0,http://www.facebook.com/ninerempirehenderson,,,,,
279
- ,9712184734,,,,,,,,Niner Empire Salem,Timothy,Stevens,[email protected],Salem,OR,United States,IWingz,IWingz,200.0,,,,,,
280
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatsos,1704 Bandera Rd,30.0,,,,,,
281
- ,5419440558,,,,,,,,Niner Empire Southern Oregon,Patricia,Alvarez,[email protected],Medford,OR,United States,The Zone Sports Bar & Grill,1250 Biddle Rd.,12.0,,,,,,
282
- ,4199171537,,,,,,,,niner empire faithfuls of toledo,Darren,Sims,[email protected],Toledo,Ohio,United States,Legendz sports pub and grill,519 S. Reynolds RD,27.0,,,,,,
283
- ,7023033434,,,,,,,,Las Vegas Niner EmpireNorth,Susan,Larsen,[email protected],Las Vegas,NV,United States,Timbers Bar & Grill,7240 West Azure Drive,50.0,,,,,,
284
- ,7023715898,,,,,,,,NINER FRONTIER,Tyson,white,[email protected],las vegas,NV,United States,Luckys Lounge,7345 S Jones Blvd,8.0,,,,,,
285
- ,7604120919,,,,,,,,NINERS ROLLIN HARD IMPERIAL VALLEY,Juan,Vallejo,[email protected],Brawley,CA,United States,SPOT 805 Bar and Grill,550 Main St,40.0,,,,,,
286
- ,8282228545,,,,,,,,Niners Rollin Hard EL Valle C.V. Chapter,Joshua,Garcia,[email protected],La Quinta,CA,United States,The Beer Hunters,78483 Highway 111,40.0,,,,,,
287
- ,4088576983,,,,,,,,Niners United,Eli,Soque,[email protected],Santa Clara,CA,United States,"Levi's Stadium Section 201, Section 110, Section 235 (8 of the 18 members are Season Ticket Holders)",4900 Marie P DeBartolo Way,18.0,,,,,,
288
- ,3125904783,,,,,,,,San Francisco 49ers Fans of Chicago,Nathan,Israileff,[email protected],Chicago,IL,United States,"Gracie O'Malley's (Wicker Park location), 1635 N Milwaukee Ave, Chicago, IL 60647",Gracie O'Malley's,1990.0,https://www.facebook.com/Chicago49ersFans,,,,,
289
- ,2017022055,,,,,,,,NJ Niner Empire Faithful Warriors,Joe,Aguiluz,[email protected],Jersey City,New Jersey,United States,O'Haras Downtown,172 1st Street,20.0,https://m.facebook.com/njninerempire,,,,,
290
- ,2017057762,,,,,,,,NJ9ers,Arron,Rodriguez,[email protected],Bayonne,NJ,United States,Mr. Cee's Bar & Grill,17 E 21st Street,35.0,,,,,,
291
- ,2088183104,,,,,,,,North Idaho 49ers Faithful,Josh,Foshee,[email protected],Coeur d'Alene,ID,United States,Iron Horse Bar and Grille,407 Sherman Ave,700.0,,,,,,
292
- ,5093069273,,,,,,,,Northwest Niner Empire,David,Hartless,[email protected],Ellensburg,WA,United States,Armies Horseshoe Sports Bar,106 W 3rd,145.0,https://www.facebook.com/groups/northwestninerempire/,,,,,
293
- ,7039691435,,,,,,,,NOVA Niners,Matt,Gaffey,[email protected],Herndon,VA,United States,Finnegan's Sports Bar & Grill,2310 Woodland Crossing Dr,80.0,http://www.facebook.com/nova.niners1,,,,,
294
- ,8303870501,,,,,,,,Austin Niner Empire,Amber,Williams,[email protected],Austin,Texas,United States,Mister Tramps Pub & Sports Bar,8565 Research Blvd,13.0,http://www.Facebook.com/AustinNinerEmpire,,,,,
295
- ,6462677844,,,,,,,,New York 49ers Club,Joey,Greener,[email protected],new york,ny,United States,Finnerty's Sports Bar,221 2nd Avenue,300.0,,,,,,
296
- ,559-664-2446,,,,,,,,Mad-town chapter,Francisco,Velasquez,[email protected],Madera,CA,United States,Madera ranch,28423 Oregon Ave,15.0,,,,,,
297
- ,5129491183,,,,,,,,Gold Rush Army of Austin,Emmanuel,Salgado,[email protected],Austin,TX,United States,Midway Field House,2015 E Riverside Dr,180.0,https://www.facebook.com/GoldRushArmyofAustin,,,,,
298
- ,(951) 867-0172,,,,,,,,niner alley,pedro,ambriz,[email protected],MORENO VALLEY,CA,United States,papa joes sports bar,12220 frederick ave,25.0,,,,,,
299
- ,(413)361-9818,,,,,,,,413 Spartans,Ricky Pnut,Ruiz,[email protected],Chicopee,MA,United States,Bullseye,Bullseye,17.0,,,,,,
300
- ,503-550-9738,,,,,,,,Clementine's Faithful,Paula,Hylland,[email protected],Portland,OR,United States,The Mule Bar,4915 NE Fremont Street,10.0,,,,,,
301
- ,5852592796,,,,,,,,585faithful,patterson,,[email protected],dansville,NY,United States,dansville ny,108 main st,1.0,,,,,,
302
- ,5599203535,,,,,,,,Niner Empire Cen Cal 559,Pauline,Castro,[email protected],PORTERVILLE,CA,United States,BRICKHOUSE BAR AND GRILL,152 North Hockett Street,30.0,,,,,,
303
- ,9254514477,,,,,,,,Booze & Niner Football,Mike,Parker,[email protected],Solana Beach,CA,United States,Saddle Bar,123 W Plaza St,10.0,,,,,,
304
- ,6262024448,,,,,,,,Westside Niners Nation,Leo,Gonzalez,[email protected],Culver City,CA,United States,Buffalo Wings and Pizza,5571 Sepulveda Blvd.,16.0,,,,,,
305
- ,5203719925,,,,,,,,Pinal county niner empire,Emilio,Bustos,[email protected],Casa grande,Arizona(AZ),United States,Liquor factory bar and deli,930 E Florence,30.0,,,,,,
306
- ,4252561925,,,,,,,,"Prescott, AZ 49ers faithful",Pam,Marquardt,[email protected],Prescott,AZ,United States,Prescott Office Resturant,128 N. Cortez St.,28.0,,,,,,
307
- ,8082585120,,,,,,,,San Francisco 49'ers Hawaii Fan Club,Randy,Miyamoto,[email protected],Honolulu,Hawaii,United States,To be determined,To be determined,50.0,,,,,,
308
- ,(503) 544-3640,,,,,,,,Niner Empire Portland,Pedro,Urzua,[email protected],Portland,OR,United States,KingPins Portland,3550 SE 92nd ave,100.0,,,,,,
309
- ,9253054704,,,,,,,,QueensandKings Bay Area Empire Chapter,Queen,,[email protected],Antioch,Ca,United States,Tailgaters,4605 Golf Course Rd,15.0,,,,,,
310
- ,4086671847,,,,,,,,Club 49 Tailgate Crew,Alex,Chavez,[email protected],Pleasanton,California,United States,Sunshine Saloon Sports Bar,1807 Santa Rita Rd #K,15.0,,,,,,
311
- ,6465429352,,,,,,,,49ers Nyc Chapter,Miguel,Ramirez,[email protected],New York,New York,United States,Off the Wagon,"109 Macdougal St,",35.0,https://www.facebook.com/niner.nychapter,,,,,
312
- ,5093076839,,,,,,,,"49er faithfuls Yakima,Wa",Olivia,Salazar,[email protected],Yakima,Wa,United States,TheEndzone,1023 N 1st,35.0,,,,,,
313
- ,7209080304,,,,,,,,49er's Faithful Aurora Co Chapter,Fito,Cantu',[email protected],Aurora,CO,United States,17307 E Flora Place,17307 E Flora Place,10.0,,,,,,
314
- ,5626404112,,,,,,,,49er F8thfuls,Ray,Casper,[email protected],Gardena,Ca,United States,Paradise,889 w 190th,50.0,,,,,,
315
- ,562-322-8833,,,,,,,,westside9ers,Ray,Casper,[email protected],Downey,CA,United States,Bar Louie,8860 Apollo Way,75.0,,,,,,
316
- ,8609951926,,,,,,,,Spartan 9er Empire Connecticut,Raymond,Dogans,[email protected],EastHartford,CO,United States,Red Room,1543 Main St,20.0,,,,,,
317
- ,6786322673,,,,,,,,Red & Gold Empire,Stephen,Box,[email protected],Sandy Springs,GA,United States,Hudson Grille Sandy Springs,6317 Roswell Rd NE,25.0,https://www.facebook.com/RGEmpire,,,,,
318
- ,7755606361,,,,,,,,RENO NINEREMPIRE,Walter,Gudiel,[email protected],Reno,Nv,United States,Semenza's Pizzeria,4380 Neil rd.,35.0,,,,,,
319
- ,6502711535,,,,,,,,650 Niner Empire peninsula chapter,Jose,Reyes Raquel Ortiz,[email protected],South San Francisco,Ca,United States,7mile house or standby,1201 bayshore blvd,27.0,,,,,,
320
- ,6508346624,,,,,,,,Spartan Niner Empire California,Jose,Reyes,[email protected],Colma,CA,United States,Molloys Tavern,Molloys tavern,19.0,,,,,,
321
- ,(951) 390-6832,,,,,,,,Riverside county TEF (Thee Empire Faithful),Sean,Flynn,[email protected],Winchester,CA,United States,Pizza factory,30676 Bentod Rd,20.0,,,,,,
322
- ,9098153880,,,,,,,,Riverside 49ers Booster Club,Gus,Esmerio,[email protected],Riverside,California,United States,Lake Alice Trading Co Saloon &Eatery,3616 University Ave,20.0,,,,,,
323
- ,5156643526,,,,,,,,49ers Strong Iowa - Des Moines Chapter,Rob,Boehringer,[email protected],Ankeny,IA,United States,Benchwarmers,705 S Ankeny Blvd,8.0,,,,,,
324
- ,6159537124,,,,,,,,Mid South Niner Nation,Tyrone,Taylor,[email protected],Nashville,TN,United States,Kay Bob's,1602 21st Ave S,12.0,,,,,,
325
- ,8165898717,,,,,,,,Kansas City 49ers Faithful,Ronnie,Tilman,[email protected],Leavenworth,KS,United States,"Fox and hound. 10428 metcalf Ave. Overland Park, ks",22425,245.0,,,,,,
326
- ,9169965326,,,,,,,,49er Booster Club Carmichael Ca,Ramona,Hall,[email protected],Fair Oaks,Ca,United States,Fair Oaks,7587 Pineridge Lane,38.0,,,,,,
327
- ,2252419900,,,,,,,,Rouge & Gold Niner Empire,Derek,Wells,[email protected],Baton Rouge,LA,United States,Sporting News Grill,4848 Constitution Avenue,32.0,,,,,,
328
- ,5592029388,,,,,,,,Niner Empire Tulare County,Rita,Murillo,[email protected],Visalia,Ca,United States,5th Quarter,3360 S. Fairway,25.0,,,,,,
329
- ,3234403129,,,,,,,,Mile High 49ers NOCO Booster Club,Ryan,Fregosi,[email protected],Greeley,co,United States,Old Chicago Greeley,2349 W. 29th St,176.0,http://www.facebook.com/milehigh49ersnocoboosterclub,,,,,
330
- ,4086220996,,,,,,,,NINERFANS.COM,Ryan,Sakamoto,[email protected],Cupertino,California,United States,Islands Bar And Grill (Cupertino),20750 Stevens Creek Blvd.,22.0,,,,,,
331
- ,6198203631,,,,,,,,San Diego Gold Rush,Robert,Zubiate,[email protected],San Diego,CA,United States,Bootleggers,804 market st.,20.0,,,,,,
332
- ,6026264006,,,,,,,,East Valley Niner Empire,Selvin,Cardona,[email protected],Apache Junction,AZ,United States,Tumbleweed Bar & Grill,725 W Apache Trail,30.0,,,,,,
333
- ,7076949476,,,,,,,,Santa Rosa Niner Empire,Joaquin,Kingo Saucedo,[email protected],Windsor,CA,United States,Santa Rosa,140 3rd St,15.0,,,,,,
334
- ,3305180874,,,,,,,,Youngstown Faithful,Scott,West,[email protected],Canfield,OH,United States,The Cave,369 Timber Run Drive,10.0,,,,,,
335
- ,6502469641,,,,,,,,Seattle Niners Faithful,Brittany,Carpenter,[email protected],Everett,WA,United States,Great American Casino,12715 4th Ave W,300.0,,,,,,
336
- ,9194511624,,,,,,,,"San Francisco 49ers Faithful - Greater Triangle Area, NC",Lora,Edgar,[email protected],Durham,North Carolina,United States,Tobacco Road Sports Cafe,280 S. Mangum St. #100,24.0,https://www.facebook.com/groups/474297662683684/,,,,,
337
- ,5103948854,,,,,,,,South Florida Gold Blooded Empire,Michelle,"""""Meme"""" Jackson",[email protected],Boynton Beach,Florida,United States,Miller's Ale House,2212 N. Congress Avenue,23.0,,,,,,
338
- ,5305264764,,,,,,,,Red Rock's Local 49 Club,Shane,Keffer,[email protected],Red Bluff,CA,United States,Tips Bar,501 walnut St.,40.0,,,,,,
339
- ,5098451845,,,,,,,,Columbia Basin Niners Faithful,Christina,Feldman,[email protected],Finley,Washington,United States,Shooters,214711 e SR 397 314711 wa397,30.0,,,,,,
340
- ,(951) 816-8801,,,,,,,,9er Elite,Harmony,Shaw,[email protected],Lake Elsinore,CA,United States,Pins N Pockets,32250 Mission Trail,20.0,,,,,,
341
- ,6093396596,,,,,,,,Shore Faithful,Edward,Griffin Jr,[email protected],Barnegat,NJ,United States,603 East Bay Ave Barnegat NJ 08005 - Due to covid 19 we no longer have a meeting location besides my residence. I truly hope this is acceptable - Thank you,603 East Bay Ave,6.0,,,,,,
342
- ,5054708144,,,,,,,,Santa Fe Faithfuls,Anthony,Apodaca,[email protected],Santa Fe,New Mexico,United States,Blue Corn Brewery,4056 Cerrilos Rd.,10.0,,,,,,
343
- ,5204147239,,,,,,,,Sonoran Desert Niner Empire,Derek,Yubeta,[email protected],Maricopa,AZ,United States,Cold beers and cheeseburgers,20350 N John Wayne Pkwy,48.0,,,,,,
344
- ,3054953136,,,,,,,,9549ERS faithful,Nelson,Tobar,[email protected],Davie,FL,United States,Twin peaks,Twin peaks,30.0,,,,,,
345
- ,8062929172,,,,,,,,806 Niner Empire West Texas Chapter,Joe,Frank Rodriquez,[email protected],Lubbock,Texas,United States,Buffalo Wild Wings,6320 19th st,20.0,,,,,,
346
- ,8082283453,,,,,,,,Ohana Niner Empire,Nathan,Sterling,[email protected],Honolulu,HI,United States,TBD,1234 TBD,20.0,,,,,,
347
- ,9167470720,,,,,,,,Westside Portland 49er Fan Club,Steven,Englund,[email protected],Portland,OR,United States,The Cheerful Tortoise,1939 SW 6th Ave,20.0,,,,,,
348
- ,7542235678,,,,,,,,49ersGold,Tim,OCONNELL,[email protected],Oakland Park,FL,United States,stout bar and grill,Stout Bar and Grill,12.0,,,,,,
349
- ,2096409543,,,,,,,,4T9 MOB TRACY FAMILY,Jenese,Borges Soto,[email protected],Tracy,Ca,United States,Buffalo wild wings,2796 Naglee road,20.0,,,,,,
350
- ,5413015005,,,,,,,,Niner Empire Southern Oregon Chapter,Susana,Perez,[email protected],medford,or,United States,imperial event center,41 north Front Street,15.0,,,,,,
351
- ,(530) 315-9467,,,,,,,,SacFaithful,Gregory,Mcconkey,[email protected],Cameron park,CA,United States,Presidents home,3266 Cimmarron rd,20.0,,,,,,
352
- ,9374189628,,,,,,,,Niner Faithful Of Southern Ohio,Tara,Farrell,[email protected],piqua,OH,United States,My House,410 Camp St,10.0,,,,,,
353
- ,7609783736,,,,,,,,NinerGangFaithfuls,Andrew,Siliga,[email protected],Oceanside,ca,United States,my house,4020 Thomas st,20.0,,,,,,
354
- ,6099544424,,,,,,,,Jersey 49ers riders,terry,jackson,[email protected],Trenton,New Jersey,United States,sticky wecket,2465 S.broad st,30.0,,,,,,
355
- ,(703) 401-0212,,,,,,,,Life Free or Die Faithfuls,Thang,Vo,[email protected],Concord,NH,United States,Buffalo Wild Wings,8 Loudon Rd,3.0,https://www.facebook.com/groups/876812822713709/,,,,,
356
- ,3105929214,,,,,,,,The 909 Niner Faithfuls,Joe,Del Rio,[email protected],Fontana,Ca,United States,Boston's Sports Bar and Grill,16927 Sierra Lakes Pkwy.,30.0,http://www.facebook.com/The909NinerFaithfuls,,,,,
357
- ,6264459623,,,,,,,,Arcadia Chapter,Allyson,Martin,[email protected],Arcadia,CA,United States,4167 e live oak Ave,4167 e live oak Ave,25.0,,,,,,
358
- ,5592897293,,,,,,,,Thee Empire Faithful,Joe,Rocha,[email protected],Fresno,California,United States,Buffalo Wild Wings,3065 E Shaw Ave,50.0,,,,,,
359
- ,5412063142,,,,,,,,The Oregon Faithful,Jeff,Sutton,[email protected],Eugene,OR,United States,The Side Bar,Side Bar,12.0,,,oregonfaithful on Twitter,,,
360
- ,9082475788,,,,,,,,The ORIGINAL Niner Empire-New Jersey Chapter,Charlie,Murphy,[email protected],Linden,NJ,United States,Nuno's Pavilion,300 Roselle ave,35.0,,,,,,
361
- ,5852788246,,,,,,,,What a Rush (gold),Paul,Smith,[email protected],Rochester,NY,United States,The Scotch House Pub,373 south Goodman street,15.0,,,,,,
362
- ,9519029955,,,,,,,,Moreno Valley 49er Empire,Tibor,Belt,[email protected],Moreno Vallay,CA,United States,S Bar and Grill,23579 Sunnymead Ranch Pkwy,15.0,https://www.facebook.com/pages/Moreno-Valley-49er-Empire/220528134738022,,,,,
363
- ,14054370161,,,,,,,,"The Niner Empire, 405 Faithfuls, Oklahoma City",Maria,Ward,[email protected],Oklahoma city,OK,United States,Hooters NW Expressway OKC,3025 NW EXPRESSWAY,25.0,https://www.facebook.com/share/g/4RVmqumg1MQNtMSi/?mibextid=K35XfP,,,,,
364
- ,7072971945,,,,,,,,707 EMPIRE VALLEY,Tony,Ruiz,[email protected],napa,California,United States,Ruiz Home,696a stonehouse drive,10.0,,,,,,
365
- ,208-964-2981,,,,,,,,Treasure Valley 49er Faithful,Curt,Starz,[email protected],Star,ID,United States,The Beer Guys Saloon,10937 W. State Street,100.0,https://www.facebook.com/TV49erFaithful,,,,,
366
- ,(804) 313-1137,,,,,,,,Hampton Roads Niner Empire,Nick,Farmer,[email protected],Newport news,VA,United States,Boathouse Live,11800 Merchants Walk #100,300.0,https://m.facebook.com/groups/441340355910833?ref=bookmarks,,,,,
367
- ,(971) 218-4734,,,,,,,,Niner Empire Salem,Timothy,Stevens,[email protected],Salem,OR,United States,AMF Firebird Lanes,4303 Center St NE,218.0,,,,,,
368
- ,3234590567,,,,,,,,Forty Niners LA chapter,Tony,,[email protected],Bell,Ca,United States,Krazy Wings,7016 Atlantic Blvd,15.0,,,,,,
369
- ,(318) 268-9657,,,,,,,,Red River Niner Empire,Tyra,Kinsey,[email protected],Bossier City,LA,United States,Walk On's Bossier City,3010 Airline Dr,15.0,www.facebook.com/RedRiverNinerEmpire,,,,,
370
- ,3058965471,,,,,,,,Ultimate 49er Empire,Nadieshda,Nadie Lizabe,[email protected],Pembroke pines,Florida,United States,Pines alehouse,11795 pine island blvd,14.0,,,,,,
371
- ,8014140109,,,,,,,,Utah Niner Empire,Travis,Vallejo,[email protected],Salt Lake City,UT,United States,Legends Sports Pub,677 South 200 West,25.0,https://www.facebook.com/UtahNinerEmpire,,,,,
372
- ,(480) 493-9526,,,,,,,,Phoenix602Faithful,Vincent,Price,[email protected],Phoenix,AZ,United States,Galaghers,3220 E Baseline Rd,20.0,,,,,,
373
- ,3108979404,,,,,,,,WESTSIDE 9ERS,Naimah,Williams,[email protected],Carson,CA,United States,Buffalo Wild Wings,736 E Del Amo Blvd,20.0,,,,,,
374
- ,4696009701,,,,,,,,Addison Point 49ner's Fans,William,Kuhn,[email protected],Addison,Texas,United States,Addison Point Sports Grill,4578 Beltline Road,288.0,,,,,,
375
- ,3605679487,,,,,,,,49er Forever Faithfuls,Wayne,Yelloweyes-Ripoyla,[email protected],Vancouver,Wa,United States,Hooligans bar and grill,"8220 NE Vancouver Plaza Dr, Vancouver, WA 98662",11.0,,,,,,
376
- ,5309086004,,,,,,,,Woodland Faithful,Oscar,Ruiz,[email protected],Woodland,CA,United States,Mountain Mikes Pizza,171 W. Main St,30.0,,,,,,
377
- ,3159448662,,,,,,,,Niner Empire Central New York,Michal,,[email protected],Cicero,New York,United States,Tully's Good Times,7838 Brewerton Rd,6.0,,,,,,
378
- ,(970) 442-1932,,,,,,,,4 Corners Faithful,Anthony,Green,[email protected],Durango,CO,United States,Sporting News Grill,21636 Highway 160,10.0,https://www.facebook.com/groups/363488474141493/,,,,,
379
- ,(480) 708-0838,,,,,,,,480 Gilbert Niner Empire,Elle,Lopez,[email protected],Gilbert,AZ,United States,Panda Libre,748 N Gilbert Rd,30.0,,,,,,
380
- ,(331) 387-0752,,,,,,,,Niner Empire Jalisco 49ers Guadalajara,Sergio,Hernandez,[email protected],Guadalajara,TX,United States,Bar Cheleros,Bar CHELEROS,190.0,https://www.facebook.com/NinerEmpireJalisco49ersGuadalajara/?modal=admin_todo_tour,,,,,
381
- ,3045457327,,,,,,,,49ERS Faithful of West Virginia,Zachary,Meadows,[email protected],Charleston,WV,United States,The Pitch,5711 MacCorkle Ave SE,12.0,,,,,,
382
- ,2016971994,,,,,,,,49 Migos Chapter,Manny,Duarte,[email protected],Saddle Brook,NJ,United States,Midland Brewhouse,374 N Midland Ave,10.0,,,,,,
383
- ,408-892-5315,,,,,,,,49ers Bay Area Faithful Social Club,Sarah,Wallace,[email protected],Sunnyvale,CA,United States,Giovanni's New York Pizzeria,1127 Lawrence Expy,65.0,,,,,,
384
- ,5404245114,,,,,,,,Niner Empire Of Indy,Jay,Balthrop,[email protected],Indianapolis,IN,United States,The Bulldog Bar and Lounge,5380 N College Ave,30.0,,,,,,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/49ers_2024_column_definitions.csv DELETED
@@ -1,62 +0,0 @@
1
- column_name,definition
2
- game_id,Unique identifier for each game (format: YYYY_WK_HOME_AWAY)
3
- player_id,Unique identifier for each player
4
- player_name,Player name (Last.First format)
5
- posteam,Team the player was on for this play
6
- position,"Player position (QB, RB, WR, TE, OL, DL, LB, DB, etc.)"
7
- team,Team the player was on for the season
8
- passing_yards,Total passing yards
9
- passing_tds,Total passing touchdowns
10
- air_yards,Total air yards (distance ball traveled in the air)
11
- yards_after_catch,Total yards after catch (YAC)
12
- cpoe,Completion Percentage Over Expected (average)
13
- qb_epa,Expected Points Added by quarterback
14
- pass_attempts,Number of pass attempts
15
- complete_passes,Number of completed passes
16
- avg_air_yards,Average air yards per pass attempt
17
- avg_yac,Average yards after catch per reception
18
- pass_location_left,Number of passes thrown to the left side of the field
19
- pass_location_middle,Number of passes thrown to the middle of the field
20
- pass_location_right,Number of passes thrown to the right side of the field
21
- pass_length_short,Number of short passes (0-9 yards)
22
- pass_length_medium,Number of medium passes (10-19 yards)
23
- pass_length_deep,Number of deep passes (20+ yards)
24
- rushing_yards,Total rushing yards
25
- rushing_tds,Total rushing touchdowns
26
- rush_attempts,Number of rush attempts
27
- first_downs_rush,Number of first downs achieved by rushing
28
- xyac_mean,Expected Yards After Contact (mean)
29
- xyac_median,Expected Yards After Contact (median)
30
- xyac_success_rate,Expected Yards After Contact success rate
31
- rush_epa,Expected Points Added by rushing plays
32
- run_location_left,Number of rushes to the left side of the field
33
- run_location_middle,Number of rushes to the middle of the field
34
- run_location_right,Number of rushes to the right side of the field
35
- run_gap_guard,Number of rushes through the guard gap
36
- run_gap_tackle,Number of rushes through the tackle gap
37
- run_gap_end,Number of rushes through the end gap
38
- receiving_yards,Total receiving yards
39
- receiving_tds,Total receiving touchdowns
40
- receiving_attempts,Number of pass attempts targeting this player
41
- first_downs_receiving,Number of first downs achieved by receiving
42
- receiving_epa,Expected Points Added by receiving plays
43
- avg_yac_y,Average yards after catch per reception
44
- avg_air_yards_y,Average air yards per target
45
- solo_tackles,Number of solo tackles
46
- assisted_tackles,Number of assisted tackles
47
- tackles_for_loss,Number of tackles for loss
48
- qb_hits,Number of quarterback hits
49
- sacks,Number of sacks (including half sacks)
50
- interceptions,Number of interceptions
51
- forced_fumbles,Number of forced fumbles
52
- fumble_recoveries,Number of fumble recoveries
53
- pass_defenses,Number of pass defenses (passes defended)
54
- total_plays,Total number of plays
55
- third_down_attempts,Number of third down attempts
56
- third_down_conversions,Number of third down conversions
57
- fourth_down_attempts,Number of fourth down attempts
58
- fourth_down_conversions,Number of fourth down conversions
59
- red_zone_attempts,Number of plays in the red zone (inside 20-yard line)
60
- red_zone_touchdowns,Number of touchdowns scored in the red zone
61
- avg_field_position,Average field position (yard line)
62
- total_epa,Total Expected Points Added
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/49ers_2024_enhanced_stats.csv DELETED
The diff for this file is too large to render. See raw diff
 
data/april_11_multimedia_data_collect/game_stats.py DELETED
@@ -1,392 +0,0 @@
1
- import pandas as pd
2
- import nfl_data_py as nfl
3
- import warnings
4
- warnings.filterwarnings("ignore")
5
-
6
- # =============================================
7
- # SECTION 1: BASIC STATS (ORIGINAL CODE)
8
- # =============================================
9
-
10
- # 1. Setup
11
- season = 2024
12
- team_abbr = "SF"
13
-
14
- # 2. Load play-by-play data for the 2024 season
15
- print("Loading play-by-play data...")
16
- pbp_df = nfl.import_pbp_data(years=[season], downcast=True)
17
-
18
- # 3. Filter for games involving the San Francisco 49ers
19
- sf_games = pbp_df[(pbp_df['home_team'] == team_abbr) | (pbp_df['away_team'] == team_abbr)]
20
-
21
- # 4. Get unique game IDs
22
- game_ids = sf_games['game_id'].unique()
23
-
24
- # 5. Create separate dataframes for passing, rushing, and receiving stats
25
- # Passing stats
26
- passing_stats = sf_games[sf_games['passer_player_id'].notna()].groupby(['game_id', 'passer_player_id', 'passer_player_name', 'posteam']).agg(
27
- passing_yards=('passing_yards', 'sum'),
28
- passing_tds=('pass_touchdown', 'sum'),
29
- interceptions=('interception', 'sum')
30
- ).reset_index()
31
-
32
- # Rushing stats
33
- rushing_stats = sf_games[sf_games['rusher_player_id'].notna()].groupby(['game_id', 'rusher_player_id', 'rusher_player_name', 'posteam']).agg(
34
- rushing_yards=('rushing_yards', 'sum'),
35
- rushing_tds=('rush_touchdown', 'sum')
36
- ).reset_index()
37
-
38
- # Receiving stats - we need to identify receiving touchdowns from the touchdown column
39
- # First, create a flag for receiving touchdowns
40
- sf_games['receiving_td'] = (sf_games['touchdown'] == 1) & (sf_games['play_type'] == 'pass') & (sf_games['receiver_player_id'].notna())
41
-
42
- # Then group by receiver
43
- receiving_stats = sf_games[sf_games['receiver_player_id'].notna()].groupby(['game_id', 'receiver_player_id', 'receiver_player_name', 'posteam']).agg(
44
- receiving_yards=('receiving_yards', 'sum'),
45
- receiving_tds=('receiving_td', 'sum')
46
- ).reset_index()
47
-
48
- # 6. Rename columns for consistency
49
- passing_stats = passing_stats.rename(columns={'passer_player_id': 'player_id', 'passer_player_name': 'player_name'})
50
- rushing_stats = rushing_stats.rename(columns={'rusher_player_id': 'player_id', 'rusher_player_name': 'player_name'})
51
- receiving_stats = receiving_stats.rename(columns={'receiver_player_id': 'player_id', 'receiver_player_name': 'player_name'})
52
-
53
- # 7. Merge all stats together
54
- player_stats = pd.merge(passing_stats, rushing_stats, on=['game_id', 'player_id', 'player_name', 'posteam'], how='outer')
55
- player_stats = pd.merge(player_stats, receiving_stats, on=['game_id', 'player_id', 'player_name', 'posteam'], how='outer')
56
-
57
- # 8. Fill NaN values with 0
58
- player_stats = player_stats.fillna(0)
59
-
60
- # 9. Filter to only San Francisco 49ers players (on offense)
61
- player_stats = player_stats[player_stats['posteam'] == team_abbr]
62
-
63
- # 10. Load roster info to enrich with player position
64
- roster_df = nfl.import_seasonal_rosters(years=[season])
65
- player_stats = player_stats.merge(
66
- roster_df[['player_id', 'position', 'team']],
67
- on='player_id',
68
- how='left'
69
- )
70
-
71
- # 11. Export to CSV
72
- output_path = "49ers_2024_player_box_scores.csv"
73
- player_stats.to_csv(output_path, index=False)
74
- print(f"Saved basic player box scores to {output_path}")
75
-
76
- # 12. Preview results
77
- print("\nBasic Stats Preview:")
78
- print(player_stats.head())
79
-
80
- # =============================================
81
- # SECTION 2: ENHANCED STATS
82
- # =============================================
83
-
84
- print("\nGenerating enhanced statistics...")
85
-
86
- # 1. Advanced Passing Stats
87
- advanced_passing = sf_games[sf_games['passer_player_id'].notna()].groupby(['game_id', 'passer_player_id', 'passer_player_name', 'posteam']).agg(
88
- air_yards=('air_yards', 'sum'),
89
- yards_after_catch=('yards_after_catch', 'sum'),
90
- cpoe=('cpoe', 'mean'), # Completion Percentage Over Expected
91
- qb_epa=('qb_epa', 'sum'), # QB-specific EPA
92
- pass_attempts=('pass_attempt', 'sum'),
93
- complete_passes=('complete_pass', 'sum'),
94
- avg_air_yards=('air_yards', 'mean'),
95
- avg_yac=('yards_after_catch', 'mean'),
96
- pass_location_left=('pass_location', lambda x: (x == 'left').sum()),
97
- pass_location_middle=('pass_location', lambda x: (x == 'middle').sum()),
98
- pass_location_right=('pass_location', lambda x: (x == 'right').sum()),
99
- pass_length_short=('pass_length', lambda x: (x == 'short').sum()),
100
- pass_length_medium=('pass_length', lambda x: (x == 'medium').sum()),
101
- pass_length_deep=('pass_length', lambda x: (x == 'deep').sum())
102
- ).reset_index()
103
-
104
- # 2. Advanced Rushing/Receiving Stats
105
- advanced_rushing = sf_games[sf_games['rusher_player_id'].notna()].groupby(['game_id', 'rusher_player_id', 'rusher_player_name', 'posteam']).agg(
106
- rush_attempts=('rush_attempt', 'sum'),
107
- first_downs_rush=('first_down_rush', 'sum'),
108
- xyac_mean=('xyac_mean_yardage', 'mean'),
109
- xyac_median=('xyac_median_yardage', 'mean'),
110
- xyac_success_rate=('xyac_success', 'mean'),
111
- rush_epa=('epa', 'sum'),
112
- run_location_left=('run_location', lambda x: (x == 'left').sum()),
113
- run_location_middle=('run_location', lambda x: (x == 'middle').sum()),
114
- run_location_right=('run_location', lambda x: (x == 'right').sum()),
115
- run_gap_guard=('run_gap', lambda x: (x == 'guard').sum()),
116
- run_gap_tackle=('run_gap', lambda x: (x == 'tackle').sum()),
117
- run_gap_end=('run_gap', lambda x: (x == 'end').sum())
118
- ).reset_index()
119
-
120
- advanced_receiving = sf_games[sf_games['receiver_player_id'].notna()].groupby(['game_id', 'receiver_player_id', 'receiver_player_name', 'posteam']).agg(
121
- receiving_attempts=('pass_attempt', 'sum'),
122
- first_downs_receiving=('first_down_pass', 'sum'),
123
- receiving_epa=('epa', 'sum'),
124
- avg_yac=('yards_after_catch', 'mean'),
125
- avg_air_yards=('air_yards', 'mean')
126
- ).reset_index()
127
-
128
- # 3. Defensive Player Stats
129
- # Create a list of all defensive player IDs from various defensive play columns
130
- defensive_player_ids = []
131
- defensive_player_names = []
132
-
133
- # Solo tackles
134
- solo_tackle_players = sf_games[sf_games['solo_tackle_1_player_id'].notna()][['game_id', 'solo_tackle_1_player_id', 'solo_tackle_1_player_name', 'defteam']]
135
- solo_tackle_players = solo_tackle_players.rename(columns={'solo_tackle_1_player_id': 'player_id', 'solo_tackle_1_player_name': 'player_name'})
136
- defensive_player_ids.append(solo_tackle_players)
137
-
138
- # Assisted tackles
139
- assist_tackle_players = sf_games[sf_games['assist_tackle_1_player_id'].notna()][['game_id', 'assist_tackle_1_player_id', 'assist_tackle_1_player_name', 'defteam']]
140
- assist_tackle_players = assist_tackle_players.rename(columns={'assist_tackle_1_player_id': 'player_id', 'assist_tackle_1_player_name': 'player_name'})
141
- defensive_player_ids.append(assist_tackle_players)
142
-
143
- # Sacks
144
- sack_players = sf_games[sf_games['sack_player_id'].notna()][['game_id', 'sack_player_id', 'sack_player_name', 'defteam']]
145
- sack_players = sack_players.rename(columns={'sack_player_id': 'player_id', 'sack_player_name': 'player_name'})
146
- defensive_player_ids.append(sack_players)
147
-
148
- # Interceptions
149
- int_players = sf_games[sf_games['interception_player_id'].notna()][['game_id', 'interception_player_id', 'interception_player_name', 'defteam']]
150
- int_players = int_players.rename(columns={'interception_player_id': 'player_id', 'interception_player_name': 'player_name'})
151
- defensive_player_ids.append(int_players)
152
-
153
- # Forced fumbles
154
- ff_players = sf_games[sf_games['forced_fumble_player_1_player_id'].notna()][['game_id', 'forced_fumble_player_1_player_id', 'forced_fumble_player_1_player_name', 'forced_fumble_player_1_team']]
155
- ff_players = ff_players.rename(columns={'forced_fumble_player_1_player_id': 'player_id', 'forced_fumble_player_1_player_name': 'player_name', 'forced_fumble_player_1_team': 'defteam'})
156
- defensive_player_ids.append(ff_players)
157
-
158
- # Fumble recoveries
159
- fr_players = sf_games[sf_games['fumble_recovery_1_player_id'].notna()][['game_id', 'fumble_recovery_1_player_id', 'fumble_recovery_1_player_name', 'fumble_recovery_1_team']]
160
- fr_players = fr_players.rename(columns={'fumble_recovery_1_player_id': 'player_id', 'fumble_recovery_1_player_name': 'player_name', 'fumble_recovery_1_team': 'defteam'})
161
- defensive_player_ids.append(fr_players)
162
-
163
- # Pass defenses
164
- pd_players = sf_games[sf_games['pass_defense_1_player_id'].notna()][['game_id', 'pass_defense_1_player_id', 'pass_defense_1_player_name', 'defteam']]
165
- pd_players = pd_players.rename(columns={'pass_defense_1_player_id': 'player_id', 'pass_defense_1_player_name': 'player_name'})
166
- defensive_player_ids.append(pd_players)
167
-
168
- # Combine all defensive player dataframes
169
- defensive_players = pd.concat(defensive_player_ids, ignore_index=True)
170
- defensive_players = defensive_players.drop_duplicates()
171
-
172
- # Now calculate defensive stats for each player
173
- defensive_stats = sf_games.groupby(['game_id', 'defteam']).agg(
174
- solo_tackles=('solo_tackle', 'sum'),
175
- assisted_tackles=('assist_tackle', 'sum'),
176
- tackles_for_loss=('tackled_for_loss', 'sum'),
177
- qb_hits=('qb_hit', 'sum'),
178
- sacks=('sack', 'sum'),
179
- interceptions=('interception', 'sum'),
180
- forced_fumbles=('fumble_forced', 'sum'),
181
- fumble_recoveries=('fumble_recovery_1_yards', lambda x: (x > 0).sum()),
182
- pass_defenses=('pass_defense_1_player_id', lambda x: x.notna().sum())
183
- ).reset_index()
184
-
185
- # Create a function to calculate individual defensive player stats
186
- def calculate_defensive_player_stats(player_id, player_name, game_id, team):
187
- player_games = sf_games[sf_games['game_id'] == game_id]
188
-
189
- # Solo tackles
190
- solo_tackles = player_games[player_games['solo_tackle_1_player_id'] == player_id].shape[0]
191
- solo_tackles += player_games[player_games['solo_tackle_2_player_id'] == player_id].shape[0]
192
-
193
- # Assisted tackles
194
- assist_tackles = player_games[player_games['assist_tackle_1_player_id'] == player_id].shape[0]
195
- assist_tackles += player_games[player_games['assist_tackle_2_player_id'] == player_id].shape[0]
196
- assist_tackles += player_games[player_games['assist_tackle_3_player_id'] == player_id].shape[0]
197
- assist_tackles += player_games[player_games['assist_tackle_4_player_id'] == player_id].shape[0]
198
-
199
- # Sacks
200
- sacks = player_games[player_games['sack_player_id'] == player_id].shape[0]
201
- sacks += player_games[player_games['half_sack_1_player_id'] == player_id].shape[0] * 0.5
202
- sacks += player_games[player_games['half_sack_2_player_id'] == player_id].shape[0] * 0.5
203
-
204
- # Interceptions
205
- interceptions = player_games[player_games['interception_player_id'] == player_id].shape[0]
206
-
207
- # Forced fumbles
208
- forced_fumbles = player_games[player_games['forced_fumble_player_1_player_id'] == player_id].shape[0]
209
- forced_fumbles += player_games[player_games['forced_fumble_player_2_player_id'] == player_id].shape[0]
210
-
211
- # Fumble recoveries
212
- fumble_recoveries = player_games[player_games['fumble_recovery_1_player_id'] == player_id].shape[0]
213
- fumble_recoveries += player_games[player_games['fumble_recovery_2_player_id'] == player_id].shape[0]
214
-
215
- # Pass defenses
216
- pass_defenses = player_games[player_games['pass_defense_1_player_id'] == player_id].shape[0]
217
- pass_defenses += player_games[player_games['pass_defense_2_player_id'] == player_id].shape[0]
218
-
219
- # Tackles for loss
220
- tackles_for_loss = player_games[player_games['tackle_for_loss_1_player_id'] == player_id].shape[0]
221
- tackles_for_loss += player_games[player_games['tackle_for_loss_2_player_id'] == player_id].shape[0]
222
-
223
- # QB hits
224
- qb_hits = player_games[player_games['qb_hit_1_player_id'] == player_id].shape[0]
225
- qb_hits += player_games[player_games['qb_hit_2_player_id'] == player_id].shape[0]
226
-
227
- return pd.Series({
228
- 'solo_tackles': solo_tackles,
229
- 'assisted_tackles': assist_tackles,
230
- 'tackles_for_loss': tackles_for_loss,
231
- 'qb_hits': qb_hits,
232
- 'sacks': sacks,
233
- 'interceptions': interceptions,
234
- 'forced_fumbles': forced_fumbles,
235
- 'fumble_recoveries': fumble_recoveries,
236
- 'pass_defenses': pass_defenses
237
- })
238
-
239
- # Apply the function to each defensive player
240
- defensive_player_stats = []
241
- for _, row in defensive_players.iterrows():
242
- stats = calculate_defensive_player_stats(row['player_id'], row['player_name'], row['game_id'], row['defteam'])
243
- stats['game_id'] = row['game_id']
244
- stats['player_id'] = row['player_id']
245
- stats['player_name'] = row['player_name']
246
- stats['posteam'] = row['defteam'] # Use defteam as posteam for consistency
247
- defensive_player_stats.append(stats)
248
-
249
- # Convert to DataFrame
250
- defensive_player_stats_df = pd.DataFrame(defensive_player_stats)
251
-
252
- # 4. Additional Context Stats
253
- context_stats = sf_games.groupby(['game_id', 'posteam']).agg(
254
- total_plays=('play_id', 'count'),
255
- third_down_attempts=('down', lambda x: (x == 3).sum()),
256
- third_down_conversions=('third_down_converted', 'sum'),
257
- fourth_down_attempts=('down', lambda x: (x == 4).sum()),
258
- fourth_down_conversions=('fourth_down_converted', 'sum'),
259
- red_zone_attempts=('yardline_100', lambda x: (x <= 20).sum()),
260
- red_zone_touchdowns=('touchdown', lambda x: ((x == 1) & (sf_games['yardline_100'] <= 20)).sum()),
261
- avg_field_position=('yardline_100', 'mean'),
262
- total_epa=('epa', 'sum')
263
- ).reset_index()
264
-
265
- # Rename columns for consistency
266
- advanced_passing = advanced_passing.rename(columns={'passer_player_id': 'player_id', 'passer_player_name': 'player_name'})
267
- advanced_rushing = advanced_rushing.rename(columns={'rusher_player_id': 'player_id', 'rusher_player_name': 'player_name'})
268
- advanced_receiving = advanced_receiving.rename(columns={'receiver_player_id': 'player_id', 'receiver_player_name': 'player_name'})
269
-
270
- # Merge all enhanced stats
271
- enhanced_stats = pd.merge(advanced_passing, advanced_rushing, on=['game_id', 'player_id', 'player_name', 'posteam'], how='outer')
272
- enhanced_stats = pd.merge(enhanced_stats, advanced_receiving, on=['game_id', 'player_id', 'player_name', 'posteam'], how='outer')
273
-
274
- # Add defensive player stats
275
- enhanced_stats = pd.merge(enhanced_stats, defensive_player_stats_df, on=['game_id', 'player_id', 'player_name', 'posteam'], how='outer')
276
-
277
- # Add roster information
278
- enhanced_stats = enhanced_stats.merge(
279
- roster_df[['player_id', 'position', 'team']],
280
- on='player_id',
281
- how='left'
282
- )
283
-
284
- # Fill NaN values with 0
285
- enhanced_stats = enhanced_stats.fillna(0)
286
-
287
- # Filter to only San Francisco 49ers players
288
- enhanced_stats = enhanced_stats[enhanced_stats['posteam'] == team_abbr]
289
-
290
- # Export enhanced stats
291
- enhanced_output_path = "49ers_2024_enhanced_stats.csv"
292
- enhanced_stats.to_csv(enhanced_output_path, index=False)
293
- print(f"Saved enhanced player statistics to {enhanced_output_path}")
294
-
295
- # Preview enhanced stats
296
- print("\nEnhanced Stats Preview:")
297
- print(enhanced_stats.head())
298
-
299
- # =============================================
300
- # SECTION 3: COLUMN DEFINITIONS
301
- # =============================================
302
-
303
- print("\nGenerating column definitions...")
304
-
305
- # Create a dictionary of column definitions
306
- column_definitions = {
307
- # Basic identifiers
308
- 'game_id': 'Unique identifier for each game (format: YYYY_WK_HOME_AWAY)',
309
- 'player_id': 'Unique identifier for each player',
310
- 'player_name': 'Player name (Last.First format)',
311
- 'posteam': 'Team the player was on for this play',
312
- 'position': 'Player position (QB, RB, WR, TE, OL, DL, LB, DB, etc.)',
313
- 'team': 'Team the player was on for the season',
314
-
315
- # Passing stats
316
- 'passing_yards': 'Total passing yards',
317
- 'passing_tds': 'Total passing touchdowns',
318
- 'air_yards': 'Total air yards (distance ball traveled in the air)',
319
- 'yards_after_catch': 'Total yards after catch (YAC)',
320
- 'cpoe': 'Completion Percentage Over Expected (average)',
321
- 'qb_epa': 'Expected Points Added by quarterback',
322
- 'pass_attempts': 'Number of pass attempts',
323
- 'complete_passes': 'Number of completed passes',
324
- 'avg_air_yards': 'Average air yards per pass attempt',
325
- 'avg_yac': 'Average yards after catch per reception',
326
- 'pass_location_left': 'Number of passes thrown to the left side of the field',
327
- 'pass_location_middle': 'Number of passes thrown to the middle of the field',
328
- 'pass_location_right': 'Number of passes thrown to the right side of the field',
329
- 'pass_length_short': 'Number of short passes (0-9 yards)',
330
- 'pass_length_medium': 'Number of medium passes (10-19 yards)',
331
- 'pass_length_deep': 'Number of deep passes (20+ yards)',
332
-
333
- # Rushing stats
334
- 'rushing_yards': 'Total rushing yards',
335
- 'rushing_tds': 'Total rushing touchdowns',
336
- 'rush_attempts': 'Number of rush attempts',
337
- 'first_downs_rush': 'Number of first downs achieved by rushing',
338
- 'xyac_mean': 'Expected Yards After Contact (mean)',
339
- 'xyac_median': 'Expected Yards After Contact (median)',
340
- 'xyac_success_rate': 'Expected Yards After Contact success rate',
341
- 'rush_epa': 'Expected Points Added by rushing plays',
342
- 'run_location_left': 'Number of rushes to the left side of the field',
343
- 'run_location_middle': 'Number of rushes to the middle of the field',
344
- 'run_location_right': 'Number of rushes to the right side of the field',
345
- 'run_gap_guard': 'Number of rushes through the guard gap',
346
- 'run_gap_tackle': 'Number of rushes through the tackle gap',
347
- 'run_gap_end': 'Number of rushes through the end gap',
348
-
349
- # Receiving stats
350
- 'receiving_yards': 'Total receiving yards',
351
- 'receiving_tds': 'Total receiving touchdowns',
352
- 'receiving_attempts': 'Number of pass attempts targeting this player',
353
- 'first_downs_receiving': 'Number of first downs achieved by receiving',
354
- 'receiving_epa': 'Expected Points Added by receiving plays',
355
- 'avg_yac_y': 'Average yards after catch per reception',
356
- 'avg_air_yards_y': 'Average air yards per target',
357
-
358
- # Defensive stats
359
- 'solo_tackles': 'Number of solo tackles',
360
- 'assisted_tackles': 'Number of assisted tackles',
361
- 'tackles_for_loss': 'Number of tackles for loss',
362
- 'qb_hits': 'Number of quarterback hits',
363
- 'sacks': 'Number of sacks (including half sacks)',
364
- 'interceptions': 'Number of interceptions',
365
- 'forced_fumbles': 'Number of forced fumbles',
366
- 'fumble_recoveries': 'Number of fumble recoveries',
367
- 'pass_defenses': 'Number of pass defenses (passes defended)',
368
-
369
- # Context stats
370
- 'total_plays': 'Total number of plays',
371
- 'third_down_attempts': 'Number of third down attempts',
372
- 'third_down_conversions': 'Number of third down conversions',
373
- 'fourth_down_attempts': 'Number of fourth down attempts',
374
- 'fourth_down_conversions': 'Number of fourth down conversions',
375
- 'red_zone_attempts': 'Number of plays in the red zone (inside 20-yard line)',
376
- 'red_zone_touchdowns': 'Number of touchdowns scored in the red zone',
377
- 'avg_field_position': 'Average field position (yard line)',
378
- 'total_epa': 'Total Expected Points Added'
379
- }
380
-
381
- # Create a DataFrame from the dictionary
382
- column_definitions_df = pd.DataFrame({
383
- 'column_name': list(column_definitions.keys()),
384
- 'definition': list(column_definitions.values())
385
- })
386
-
387
- # Export column definitions
388
- column_definitions_path = "49ers_2024_column_definitions.csv"
389
- column_definitions_df.to_csv(column_definitions_path, index=False)
390
- print(f"Saved column definitions to {column_definitions_path}")
391
-
392
- print("\nScript completed successfully!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/get_player_socials.py DELETED
@@ -1,239 +0,0 @@
1
- import requests
2
- import csv
3
- import os
4
- import time
5
- import sys
6
- from dotenv import load_dotenv
7
- from pathlib import Path
8
-
9
- # Load environment variables from .env file (for API key)
10
- load_dotenv()
11
-
12
- # Get the directory where this script is located
13
- SCRIPT_DIR = Path(os.path.dirname(os.path.abspath(__file__)))
14
-
15
- SERP_API_KEY = os.getenv("SERP_API_KEY") # Or just hardcode for testing, not recommended
16
-
17
- def get_instagram_handle(query, timeout=10, retries=3, delay_between_retries=2):
18
- """
19
- Uses SerpAPI to search for query: e.g. 'Brock Purdy Instagram'
20
- Returns the best guess at Instagram handle/page URL if found, else empty string.
21
-
22
- Args:
23
- query: Search query string
24
- timeout: Request timeout in seconds
25
- retries: Number of retries if request fails
26
- delay_between_retries: Seconds to wait between retries
27
- """
28
- if not SERP_API_KEY:
29
- raise ValueError("SERP_API_KEY environment variable not set or provided!")
30
-
31
- url = "https://serpapi.com/search"
32
- params = {
33
- "engine": "google",
34
- "q": query,
35
- "api_key": SERP_API_KEY,
36
- }
37
-
38
- for attempt in range(retries):
39
- try:
40
- print(f"[DEBUG] Sending API request for: {query}")
41
- response = requests.get(url, params=params, timeout=timeout)
42
- response.raise_for_status()
43
- data = response.json()
44
-
45
- # Check if we have organic results
46
- if "organic_results" not in data:
47
- print(f"[WARNING] No organic_results found in API response for {query}")
48
- print(f"[DEBUG] Response keys: {list(data.keys())}")
49
- return ""
50
-
51
- # Typical structure: data['organic_results'] - parse each for relevant domain
52
- results = data.get("organic_results", [])
53
- print(f"[DEBUG] Found {len(results)} organic results")
54
-
55
- for r in results:
56
- link = r.get("link", "")
57
- # If it has 'instagram.com', let's assume it's correct
58
- if "instagram.com" in link.lower():
59
- print(f"[DEBUG] Found Instagram link: {link}")
60
- return link
61
-
62
- print(f"[WARNING] No Instagram links found for {query}")
63
- return ""
64
-
65
- except requests.exceptions.Timeout:
66
- print(f"[ERROR] Request timed out for {query} (attempt {attempt+1}/{retries})")
67
- if attempt < retries - 1:
68
- print(f"[INFO] Retrying in {delay_between_retries} seconds...")
69
- time.sleep(delay_between_retries)
70
- else:
71
- print(f"[ERROR] All retries failed for {query}")
72
- return ""
73
-
74
- except requests.exceptions.RequestException as e:
75
- print(f"[ERROR] Request failed for {query}: {str(e)} (attempt {attempt+1}/{retries})")
76
- if attempt < retries - 1:
77
- print(f"[INFO] Retrying in {delay_between_retries} seconds...")
78
- time.sleep(delay_between_retries)
79
- else:
80
- print(f"[ERROR] All retries failed for {query}")
81
- return ""
82
-
83
- except Exception as e:
84
- print(f"[ERROR] Unexpected error for {query}: {str(e)}")
85
- return ""
86
-
87
- def enrich_niners_socials(input_csv='niners_players_headshots.csv',
88
- output_csv='niners_players_headshots_with_socials.csv',
89
- delay_between_requests=1,
90
- start_player=None,
91
- max_players=None):
92
- """
93
- Reads the roster CSV, queries Instagram for each player's best match,
94
- then writes the results to a new CSV.
95
-
96
- Args:
97
- input_csv: Path to input CSV file
98
- output_csv: Path to output CSV file
99
- delay_between_requests: Seconds to wait between API requests to avoid rate limiting
100
- start_player: Player number to start processing from (1-indexed)
101
- max_players: Maximum number of players to process (None for all)
102
- """
103
- # Convert relative paths to absolute paths based on script directory
104
- if not os.path.isabs(input_csv):
105
- input_csv = os.path.join(SCRIPT_DIR, input_csv)
106
- if not os.path.isabs(output_csv):
107
- output_csv = os.path.join(SCRIPT_DIR, output_csv)
108
-
109
- print(f"[INFO] Input CSV path: {input_csv}")
110
- print(f"[INFO] Output CSV path: {output_csv}")
111
- if not SERP_API_KEY:
112
- print("[ERROR] SERP_API_KEY not set. Please set your environment variable or update the script.")
113
- return
114
-
115
- # Check if input file exists
116
- if not os.path.exists(input_csv):
117
- print(f"[ERROR] Input file not found: {input_csv}")
118
- return
119
-
120
- try:
121
- # Read existing output CSV if it exists to continue from where we left off
122
- existing_data = []
123
- if os.path.exists(output_csv):
124
- with open(output_csv, 'r', encoding='utf-8') as f_existing:
125
- existing_reader = csv.DictReader(f_existing)
126
- existing_data = list(existing_reader)
127
- print(f"[INFO] Loaded {len(existing_data)} existing entries")
128
-
129
- # Count total players for progress reporting
130
- with open(input_csv, 'r', encoding='utf-8') as f:
131
- total_players = sum(1 for _ in csv.DictReader(f))
132
-
133
- print(f"[INFO] Total players: {total_players}")
134
-
135
- # Determine start and end points
136
- start_index = start_player - 1 if start_player is not None else len(existing_data)
137
- end_index = min(total_players, start_index + (max_players or total_players))
138
-
139
- print(f"[INFO] Will process players from {start_index + 1} to {end_index}")
140
-
141
- # Reopen input CSV to start processing
142
- with open(input_csv, 'r', encoding='utf-8') as f:
143
- reader = csv.DictReader(f)
144
- input_fieldnames = reader.fieldnames
145
-
146
- # Skip to the start player
147
- for _ in range(start_index):
148
- next(reader)
149
-
150
- # Process remaining players
151
- for i, row in enumerate(reader, start_index + 1):
152
- if i > end_index:
153
- print(f"[INFO] Reached maximum number of players. Stopping.")
154
- break
155
-
156
- player_name = row['name']
157
- print(f"[INFO] Processing player {i}/{end_index}: {player_name}")
158
-
159
- # Skip if already processed
160
- if any(existing_row['name'] == player_name for existing_row in existing_data):
161
- print(f"[INFO] {player_name} already processed. Skipping.")
162
- continue
163
-
164
- # Construct a query like 'PLAYER NAME instagram'
165
- query = f"{player_name} NFL 49ers instagram"
166
-
167
- try:
168
- insta_url = get_instagram_handle(query)
169
- row['instagram_url'] = insta_url
170
-
171
- # Print result
172
- if insta_url:
173
- print(f"[SUCCESS] Found Instagram for {player_name}: {insta_url}")
174
- else:
175
- print(f"[WARNING] No Instagram found for {player_name}")
176
-
177
- # Append new data
178
- existing_data.append(row)
179
-
180
- # Save progress after each player
181
- with open(output_csv, 'w', newline='', encoding='utf-8') as f_out:
182
- output_fieldnames = input_fieldnames + ['instagram_url']
183
- writer = csv.DictWriter(f_out, fieldnames=output_fieldnames)
184
- writer.writeheader()
185
- writer.writerows(existing_data)
186
-
187
- # Add delay between requests to avoid rate limiting
188
- if i < end_index:
189
- print(f"[INFO] Waiting {delay_between_requests} seconds before next request...")
190
- time.sleep(delay_between_requests)
191
-
192
- except KeyboardInterrupt:
193
- print("\n[INFO] Process interrupted by user. Saving progress...")
194
- break
195
-
196
- print(f"[INFO] Social data saved to {output_csv}")
197
- print(f"[INFO] Processed {len(existing_data)}/{total_players} players")
198
-
199
- except Exception as e:
200
- print(f"[ERROR] An unexpected error occurred: {str(e)}")
201
- # Try to save any data collected so far
202
- if existing_data:
203
- try:
204
- with open(output_csv, 'w', newline='', encoding='utf-8') as f_out:
205
- output_fieldnames = input_fieldnames + ['instagram_url']
206
- writer = csv.DictWriter(f_out, fieldnames=output_fieldnames)
207
- writer.writeheader()
208
- writer.writerows(existing_data)
209
- print(f"[INFO] Partial data saved to {output_csv}")
210
- except Exception:
211
- print("[ERROR] Failed to save partial data")
212
-
213
- if __name__ == "__main__":
214
- print("[INFO] Starting player social media enrichment script")
215
-
216
- # Parse command line arguments
217
- delay = 1 # Default delay
218
- start_player = 51 # Default to start from 51st player
219
- max_players = None # Process all remaining players
220
-
221
- if len(sys.argv) > 1:
222
- try:
223
- delay = float(sys.argv[1])
224
- print(f"[INFO] Using custom delay between requests: {delay} seconds")
225
- except ValueError:
226
- print(f"[WARNING] Invalid delay value: {sys.argv[1]}. Using default: 1 second")
227
-
228
- if len(sys.argv) > 2:
229
- try:
230
- start_player = int(sys.argv[2])
231
- print(f"[INFO] Will start processing from player {start_player}")
232
- except ValueError:
233
- print(f"[WARNING] Invalid start_player value: {sys.argv[2]}. Using default: 51")
234
-
235
- enrich_niners_socials(
236
- delay_between_requests=delay,
237
- start_player=start_player,
238
- max_players=max_players
239
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/get_youtube_playlist_videos.py DELETED
@@ -1,65 +0,0 @@
1
- import os
2
- import csv
3
- from googleapiclient.discovery import build
4
- from dotenv import load_dotenv
5
- from pathlib import Path
6
-
7
- # Load environment variables from .env file (for API key)
8
- load_dotenv()
9
-
10
- API_KEY = os.getenv("YOUTUBE_API_KEY") # Or replace with your key in code
11
- # Example 49ers highlights playlist:
12
- PLAYLIST_ID = "PLBB205pkCsyvZ6tjCh_m5s21D0eeYJ8Ly"
13
-
14
- def get_youtube_videos(playlist_id=PLAYLIST_ID, output_csv='youtube_highlights.csv'):
15
- """
16
- Fetches videos from a YouTube playlist (title, video ID, published date, etc.)
17
- Writes output to CSV.
18
- """
19
- if not API_KEY:
20
- raise ValueError("YOUTUBE_API_KEY environment variable not set or provided!")
21
-
22
- youtube = build('youtube', 'v3', developerKey=API_KEY)
23
-
24
- video_data = []
25
- page_token = None
26
-
27
- while True:
28
- playlist_req = youtube.playlistItems().list(
29
- part="snippet",
30
- playlistId=playlist_id,
31
- maxResults=50,
32
- pageToken=page_token
33
- )
34
- playlist_res = playlist_req.execute()
35
-
36
- for item in playlist_res['items']:
37
- snippet = item['snippet']
38
- title = snippet['title']
39
- description = snippet['description']
40
- video_id = snippet['resourceId']['videoId']
41
- published_at = snippet['publishedAt']
42
-
43
- video_data.append({
44
- "video_id": video_id,
45
- "title": title,
46
- "description": description,
47
- "published_at": published_at,
48
- "video_url": f"https://www.youtube.com/watch?v={video_id}"
49
- })
50
-
51
- page_token = playlist_res.get('nextPageToken')
52
- if not page_token:
53
- break
54
-
55
- # Write to CSV
56
- with open(output_csv, 'w', newline='', encoding='utf-8') as f:
57
- fieldnames = ["video_id", "title", "description", "published_at", "video_url"]
58
- writer = csv.DictWriter(f, fieldnames=fieldnames)
59
- writer.writeheader()
60
- writer.writerows(video_data)
61
-
62
- print(f"[INFO] YouTube playlist data saved to {output_csv}")
63
-
64
- if __name__ == "__main__":
65
- get_youtube_videos()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/match_highlights.py DELETED
@@ -1,196 +0,0 @@
1
- import csv
2
- import re
3
- import os
4
- from pathlib import Path
5
- from collections import defaultdict
6
-
7
-
8
- # Define file paths
9
- YOUTUBE_HIGHLIGHTS_PATH = "youtube_highlights.csv"
10
- PLAYERS_ROSTER_PATH = "niners_players_headshots_with_socials_merged.csv"
11
- GAMES_SCHEDULE_PATH = "nfl-2024-san-francisco-49ers-with-results.csv"
12
- OUTPUT_PLAYERS_PATH = "new_niners_players_with_highlights.csv"
13
- OUTPUT_GAMES_PATH = "new_games_with_highlights.csv"
14
- OUTPUT_TEAM_VIDEOS_PATH = "new_team_highlights.csv"
15
-
16
- def load_youtube_highlights():
17
- """Load YouTube highlights data from CSV file."""
18
- highlights = []
19
- with open(YOUTUBE_HIGHLIGHTS_PATH, 'r', encoding='utf-8') as file:
20
- reader = csv.DictReader(file)
21
- for row in reader:
22
- highlights.append({
23
- 'video_id': row['video_id'],
24
- 'title': row['title'],
25
- 'description': row['description'],
26
- 'published_at': row['published_at'],
27
- 'video_url': row['video_url']
28
- })
29
- return highlights
30
-
31
- def load_players():
32
- """Load player roster data from CSV file."""
33
- players = []
34
- with open(PLAYERS_ROSTER_PATH, 'r', encoding='utf-8') as file:
35
- reader = csv.DictReader(file)
36
- for row in reader:
37
- players.append({
38
- 'name': row['name'],
39
- 'headshot_url': row['headshot_url'],
40
- 'instagram_url': row['instagram_url'],
41
- 'highlight_video_url': '' # Initialize with empty string
42
- })
43
- return players
44
-
45
- def load_games():
46
- """Load game schedule data from CSV file."""
47
- games = []
48
- with open(GAMES_SCHEDULE_PATH, 'r', encoding='utf-8') as file:
49
- reader = csv.DictReader(file)
50
- for row in reader:
51
- opponent = row['Away Team'] if row['Home Team'] == 'San Francisco 49ers' else row['Home Team']
52
- opponent = opponent.replace('San Francisco 49ers', '').strip()
53
-
54
- games.append({
55
- 'match_number': row['Match Number'],
56
- 'round_number': row['Round Number'],
57
- 'date': row['Date'],
58
- 'location': row['Location'],
59
- 'home_team': row['Home Team'],
60
- 'away_team': row['Away Team'],
61
- 'result': row['Result'],
62
- 'game_result': row['game_result'],
63
- 'opponent': opponent,
64
- 'highlight_video_url': '' # Initialize with empty string
65
- })
66
- return games
67
-
68
- def match_highlights_to_players_and_games(highlights, players, games):
69
- """Match YouTube highlights to players and games."""
70
- # Create a copy of highlights to track which ones are assigned
71
- unassigned_highlights = highlights.copy()
72
-
73
- # Track assigned videos
74
- assigned_video_ids = set()
75
-
76
- # Match players first
77
- for player in players:
78
- player_name = player['name']
79
- first_name = player_name.split()[0]
80
- last_name = player_name.split()[-1]
81
-
82
- # Create patterns to match player names
83
- full_name_pattern = re.compile(r'\b' + re.escape(player_name) + r'\b', re.IGNORECASE)
84
- last_name_pattern = re.compile(r'\b' + re.escape(last_name) + r'\b', re.IGNORECASE)
85
-
86
- # Try to find a match in the unassigned highlights
87
- for highlight in unassigned_highlights:
88
- if highlight['video_id'] in assigned_video_ids:
89
- continue
90
-
91
- title = highlight['title']
92
- description = highlight['description']
93
-
94
- # Check for full name match in title first (most specific)
95
- if full_name_pattern.search(title):
96
- player['highlight_video_url'] = highlight['video_url']
97
- assigned_video_ids.add(highlight['video_id'])
98
- break
99
-
100
- # Then check for last name match in title
101
- elif last_name_pattern.search(title):
102
- player['highlight_video_url'] = highlight['video_url']
103
- assigned_video_ids.add(highlight['video_id'])
104
- break
105
-
106
- # Match games next
107
- for game in games:
108
- opponent = game['opponent']
109
- week_pattern = re.compile(r'\bWeek\s+' + re.escape(game['round_number']) + r'\b', re.IGNORECASE)
110
- opponent_pattern = re.compile(r'\b' + re.escape(opponent) + r'\b', re.IGNORECASE)
111
-
112
- # Try to find a match in the unassigned highlights
113
- for highlight in unassigned_highlights:
114
- if highlight['video_id'] in assigned_video_ids:
115
- continue
116
-
117
- title = highlight['title']
118
- description = highlight['description']
119
-
120
- # Check for both week and opponent match in title (most specific)
121
- if week_pattern.search(title) and opponent_pattern.search(title):
122
- game['highlight_video_url'] = highlight['video_url']
123
- assigned_video_ids.add(highlight['video_id'])
124
- break
125
-
126
- # Then check for opponent match in title
127
- elif opponent_pattern.search(title):
128
- game['highlight_video_url'] = highlight['video_url']
129
- assigned_video_ids.add(highlight['video_id'])
130
- break
131
-
132
- # Collect team videos (unassigned highlights)
133
- team_videos = []
134
- for highlight in highlights:
135
- if highlight['video_id'] not in assigned_video_ids:
136
- team_videos.append(highlight)
137
-
138
- return team_videos
139
-
140
- def save_players_with_highlights(players):
141
- """Save players with highlight videos to CSV file."""
142
- with open(OUTPUT_PLAYERS_PATH, 'w', newline='', encoding='utf-8') as file:
143
- fieldnames = ['name', 'headshot_url', 'instagram_url', 'highlight_video_url']
144
- writer = csv.DictWriter(file, fieldnames=fieldnames)
145
- writer.writeheader()
146
- for player in players:
147
- writer.writerow(player)
148
-
149
- def save_games_with_highlights(games):
150
- """Save games with highlight videos to CSV file."""
151
- with open(OUTPUT_GAMES_PATH, 'w', newline='', encoding='utf-8') as file:
152
- fieldnames = ['match_number', 'round_number', 'date', 'location', 'home_team', 'away_team',
153
- 'result', 'game_result', 'opponent', 'highlight_video_url']
154
- writer = csv.DictWriter(file, fieldnames=fieldnames)
155
- writer.writeheader()
156
- for game in games:
157
- writer.writerow(game)
158
-
159
- def save_team_videos(team_videos):
160
- """Save team videos to CSV file."""
161
- with open(OUTPUT_TEAM_VIDEOS_PATH, 'w', newline='', encoding='utf-8') as file:
162
- fieldnames = ['video_id', 'title', 'description', 'published_at', 'video_url']
163
- writer = csv.DictWriter(file, fieldnames=fieldnames)
164
- writer.writeheader()
165
- for video in team_videos:
166
- writer.writerow(video)
167
-
168
- def main():
169
- # Load data
170
- highlights = load_youtube_highlights()
171
- players = load_players()
172
- games = load_games()
173
-
174
- # Match highlights to players and games
175
- team_videos = match_highlights_to_players_and_games(highlights, players, games)
176
-
177
- # Save results
178
- save_players_with_highlights(players)
179
- save_games_with_highlights(games)
180
- save_team_videos(team_videos)
181
-
182
- # Print summary
183
- player_matches = sum(1 for player in players if player['highlight_video_url'])
184
- game_matches = sum(1 for game in games if game['highlight_video_url'])
185
-
186
- print(f"Total YouTube highlights: {len(highlights)}")
187
- print(f"Players with highlight videos: {player_matches}/{len(players)}")
188
- print(f"Games with highlight videos: {game_matches}/{len(games)}")
189
- print(f"Team videos (unassigned): {len(team_videos)}")
190
- print(f"\nOutput files created:")
191
- print(f"- {OUTPUT_PLAYERS_PATH}")
192
- print(f"- {OUTPUT_GAMES_PATH}")
193
- print(f"- {OUTPUT_TEAM_VIDEOS_PATH}")
194
-
195
- if __name__ == "__main__":
196
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/merge_schedule_logos.py DELETED
@@ -1,24 +0,0 @@
1
- import pandas as pd
2
- import os
3
-
4
- # Read the CSV files
5
- schedule_df = pd.read_csv('data/april_11_multimedia_data_collect/nfl-2024-san-francisco-49ers-with-results.csv')
6
- logos_df = pd.read_csv('data/april_11_multimedia_data_collect/nfl_team_logos_revised.csv')
7
-
8
- # Create dictionaries to map team names to logo URLs
9
- home_logos = {}
10
- away_logos = {}
11
-
12
- for _, row in logos_df.iterrows():
13
- home_logos[row['team_name']] = row['logo_url']
14
- away_logos[row['team_name']] = row['logo_url']
15
-
16
- # Add logo URL columns to the schedule dataframe
17
- schedule_df['home_team_logo_url'] = schedule_df['Home Team'].map(home_logos)
18
- schedule_df['away_team_logo_url'] = schedule_df['Away Team'].map(away_logos)
19
-
20
- # Save the merged dataframe to a new CSV file
21
- output_path = 'data/april_11_multimedia_data_collect/schedule_with_result_and_logo_urls.csv'
22
- schedule_df.to_csv(output_path, index=False)
23
-
24
- print(f'CSV file created successfully at {output_path}!')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/neo4j_article_uploader.py DELETED
@@ -1,146 +0,0 @@
1
- #!/usr/bin/env python
2
- """
3
- Script to upload structured and summarized team news articles from a CSV file to Neo4j.
4
- """
5
-
6
- import os
7
- import sys
8
- import csv
9
- from datetime import datetime
10
- from dotenv import load_dotenv
11
-
12
- # Adjust path to import graph object from the parent directory
13
- parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
14
- if parent_dir not in sys.path:
15
- sys.path.append(parent_dir)
16
-
17
- try:
18
- from gradio_graph import graph # Import the configured graph instance
19
- except ImportError as e:
20
- print(f"Error importing gradio_graph: {e}")
21
- print("Please ensure gradio_graph.py exists and is configured correctly.")
22
- sys.exit(1)
23
-
24
- # Load environment variables (though graph should already be configured)
25
- load_dotenv()
26
-
27
- # Configuration
28
- # Update path to reflect moved CSV file location
29
- # CSV_FILEPATH = os.path.join(os.path.dirname(__file__), "team_news_articles.csv") # Old path
30
- CSV_FILEPATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data", "april_11_multimedia_data_collect", "team_news_articles.csv") # New path
31
- TEAM_NAME = "San Francisco 49ers"
32
-
33
- def upload_articles_to_neo4j(csv_filepath):
34
- """Reads the CSV and uploads article data to Neo4j."""
35
- print(f"Starting Neo4j upload process for {csv_filepath}...")
36
-
37
- if not os.path.exists(csv_filepath):
38
- print(f"Error: CSV file not found at {csv_filepath}")
39
- return
40
-
41
- # 1. Ensure the :Team node exists with correct properties
42
- print(f"Ensuring :Team node exists for '{TEAM_NAME}'...")
43
- team_merge_query = """
44
- MERGE (t:Team {name: $team_name})
45
- SET t.season_record_2024 = $record,
46
- t.city = $city,
47
- t.conference = $conference,
48
- t.division = $division
49
- RETURN t.name
50
- """
51
- team_params = {
52
- "team_name": TEAM_NAME,
53
- "record": "6-11", # As specified in instructions
54
- "city": "San Francisco",
55
- "conference": "NFC",
56
- "division": "West"
57
- }
58
- try:
59
- result = graph.query(team_merge_query, params=team_params)
60
- if result and result[0]['t.name'] == TEAM_NAME:
61
- print(f":Team node '{TEAM_NAME}' ensured/updated successfully.")
62
- else:
63
- print(f"Warning: Problem ensuring :Team node '{TEAM_NAME}'. Result: {result}")
64
- # Decide whether to proceed or stop
65
- # return
66
- except Exception as e:
67
- print(f"Error executing team merge query: {e}")
68
- return # Stop if we can't ensure the team node
69
-
70
- # 2. Read CSV and upload articles
71
- print("Reading CSV and uploading :Team_Story nodes...")
72
- article_merge_query = """
73
- MERGE (s:Team_Story {link_to_article: $link_to_article})
74
- SET s.teamName = $Team_name,
75
- s.season = toInteger($season), // Ensure season is integer
76
- s.summary = $summary,
77
- s.topic = $topic,
78
- s.city = $city,
79
- s.conference = $conference,
80
- s.division = $division
81
- // Add other properties from CSV if needed, like raw_title, raw_date?
82
- WITH s
83
- MATCH (t:Team {name: $Team_name})
84
- MERGE (s)-[:STORY_ABOUT]->(t)
85
- RETURN s.link_to_article AS article_link, t.name AS team_name
86
- """
87
-
88
- upload_count = 0
89
- error_count = 0
90
- try:
91
- with open(csv_filepath, 'r', encoding='utf-8') as csvfile:
92
- reader = csv.DictReader(csvfile)
93
- for row in reader:
94
- try:
95
- # Prepare parameters for the query
96
- # Ensure all expected keys from the query are present in the row or provide defaults
97
- params = {
98
- "link_to_article": row.get("link_to_article", ""),
99
- "Team_name": row.get("Team_name", TEAM_NAME), # Use team name from row or default
100
- "season": row.get("season", datetime.now().year), # Default season if missing
101
- "summary": row.get("summary", ""),
102
- "topic": row.get("topic", ""),
103
- "city": row.get("city", "San Francisco"), # Use city from row or default
104
- "conference": row.get("conference", "NFC"),
105
- "division": row.get("division", "West"),
106
- }
107
-
108
- # Basic validation before sending to Neo4j
109
- if not params["link_to_article"]:
110
- print(f"Skipping row due to missing link_to_article: {row}")
111
- error_count += 1
112
- continue
113
- if not params["Team_name"]:
114
- print(f"Skipping row due to missing Team_name: {row}")
115
- error_count += 1
116
- continue
117
-
118
- # Execute the query for the current article
119
- graph.query(article_merge_query, params=params)
120
- upload_count += 1
121
- if upload_count % 20 == 0: # Print progress every 20 articles
122
- print(f"Uploaded {upload_count} articles...")
123
-
124
- except Exception as e:
125
- print(f"Error processing/uploading row: {row}")
126
- print(f"Error details: {e}")
127
- error_count += 1
128
- # Continue to next row even if one fails?
129
- # Or break? For now, let's continue.
130
-
131
- except FileNotFoundError:
132
- print(f"Error: CSV file not found at {csv_filepath}")
133
- return
134
- except Exception as e:
135
- print(f"An unexpected error occurred while reading CSV or uploading: {e}")
136
- return
137
-
138
- print(f"\nNeo4j upload process finished.")
139
- print(f"Successfully uploaded/merged: {upload_count} articles.")
140
- print(f"Rows skipped due to errors/missing data: {error_count}.")
141
-
142
-
143
- if __name__ == "__main__":
144
- print("Running Neo4j Article Uploader script...")
145
- upload_articles_to_neo4j(CSV_FILEPATH)
146
- print("Script execution complete.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_final_april 11/neo4j_game_update/SCHEMA.md DELETED
@@ -1,44 +0,0 @@
1
- # Updated Neo4j Game Node Schema
2
-
3
- ## Game Node
4
-
5
- After running the `update_game_nodes.py` script, Game nodes in the Neo4j database will have the following attributes:
6
-
7
- | Attribute | Type | Description |
8
- |---------------------|--------|-----------------------------------------------|
9
- | game_id | String | Primary key for the game |
10
- | date | String | Game date |
11
- | location | String | Game location |
12
- | home_team | String | Home team name |
13
- | away_team | String | Away team name |
14
- | result | String | Game result (score) |
15
- | summary | String | Brief game summary |
16
- | home_team_logo_url | String | URL to the home team's logo image |
17
- | away_team_logo_url | String | URL to the away team's logo image |
18
- | highlight_video_url | String | URL to the game's highlight video |
19
- | embedding | Vector | Vector embedding of the game summary (if any) |
20
-
21
- ## Assumptions and Implementation Notes
22
-
23
- 1. The update script uses `game_id` as the primary key to match existing Game nodes.
24
- 2. The script only updates the following attributes:
25
- - home_team_logo_url
26
- - away_team_logo_url
27
- - highlight_video_url
28
- 3. The script does not modify existing attributes or create new Game nodes.
29
- 4. The data source for updates is the `schedule_with_result_april_11.csv` file.
30
-
31
- ## Usage
32
-
33
- To update the Game nodes, run the following command from the project root:
34
-
35
- ```bash
36
- python ifx-sandbox/data/april_11_multimedia_data_collect/new_final_april\ 11/neo4j_update/update_game_nodes.py
37
- ```
38
-
39
- The script will:
40
- 1. Prompt for confirmation before making any changes
41
- 2. Connect to Neo4j using credentials from the .env file
42
- 3. Update Game nodes with the new attributes
43
- 4. Report on the success/failure of the updates
44
- 5. Verify that the updates were applied correctly
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_final_april 11/neo4j_game_update/update_game_nodes.py DELETED
@@ -1,205 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- update_game_nodes.py - Updates existing Game nodes in Neo4j with additional attributes
4
-
5
- This script reads game data from the schedule_with_result_april_11.csv file and updates
6
- existing Game nodes in Neo4j with the following attributes:
7
- - home_team_logo_url
8
- - away_team_logo_url
9
- - game_id
10
- - highlight_video_url
11
-
12
- The script uses game_id as the primary key for matching and updating nodes.
13
- """
14
-
15
- import os
16
- import sys
17
- import pandas as pd
18
- from neo4j import GraphDatabase
19
- from dotenv import load_dotenv
20
-
21
- # Add parent directory to path to access neo4j_ingestion.py
22
- parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../../.."))
23
- sys.path.append(parent_dir)
24
-
25
- # Set up paths
26
- SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
27
- PROJECT_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "../../../../.."))
28
- DATA_DIR = os.path.join(PROJECT_DIR, "ifx-sandbox/data")
29
- SCHEDULE_DIR = os.path.join(DATA_DIR, "april_11_multimedia_data_collect", "new_final_april 11")
30
- SCHEDULE_FILE = os.path.join(SCHEDULE_DIR, "schedule_with_result_april_11.csv")
31
-
32
- # Load environment variables from ifx-sandbox/.env
33
- ENV_FILE = os.path.join(PROJECT_DIR, "ifx-sandbox/.env")
34
- load_dotenv(ENV_FILE)
35
- print(f"Loading environment variables from: {ENV_FILE}")
36
-
37
- # Neo4j connection credentials
38
- NEO4J_URI = os.getenv('AURA_CONNECTION_URI')
39
- NEO4J_USER = os.getenv('AURA_USERNAME')
40
- NEO4J_PASS = os.getenv('AURA_PASSWORD')
41
-
42
- if not all([NEO4J_URI, NEO4J_USER, NEO4J_PASS]):
43
- print(f"Error: Missing required Neo4j credentials in {ENV_FILE}")
44
- print(f"Required variables: AURA_CONNECTION_URI, AURA_USERNAME, AURA_PASSWORD")
45
- raise ValueError("Missing required Neo4j credentials in .env file")
46
-
47
- def clean_row_dict(row):
48
- """Convert pandas row to dict and replace NaN with None"""
49
- return {k: None if pd.isna(v) else v for k, v in row.items()}
50
-
51
- def update_game_nodes():
52
- """
53
- Updates existing Game nodes with additional attributes from the schedule CSV.
54
- Uses game_id as the primary key for matching.
55
- """
56
- print(f"Loading schedule data from: {SCHEDULE_FILE}")
57
-
58
- # Check if the file exists
59
- if not os.path.exists(SCHEDULE_FILE):
60
- print(f"Error: Schedule file not found at {SCHEDULE_FILE}")
61
- return False
62
-
63
- # Load the schedule data
64
- try:
65
- schedule_df = pd.read_csv(SCHEDULE_FILE)
66
- print(f"Loaded {len(schedule_df)} games from CSV")
67
- except Exception as e:
68
- print(f"Error loading schedule CSV: {str(e)}")
69
- return False
70
-
71
- # Verify required columns exist
72
- required_columns = ['game_id', 'home_team_logo_url', 'away_team_logo_url', 'highlight_video_url']
73
- missing_columns = [col for col in required_columns if col not in schedule_df.columns]
74
-
75
- if missing_columns:
76
- print(f"Error: Missing required columns in CSV: {', '.join(missing_columns)}")
77
- return False
78
-
79
- # Connect to Neo4j
80
- print(f"Connecting to Neo4j at {NEO4J_URI}")
81
- driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
82
-
83
- # Check connection
84
- try:
85
- with driver.session() as session:
86
- result = session.run("MATCH (g:Game) RETURN count(g) as count")
87
- game_count = result.single()["count"]
88
- print(f"Found {game_count} Game nodes in Neo4j")
89
- except Exception as e:
90
- print(f"Error connecting to Neo4j: {str(e)}")
91
- driver.close()
92
- return False
93
-
94
- # Update game nodes
95
- success_count = 0
96
- error_count = 0
97
-
98
- with driver.session() as session:
99
- for _, row in schedule_df.iterrows():
100
- params = clean_row_dict(row)
101
-
102
- # Skip if game_id is missing
103
- if not params.get('game_id'):
104
- error_count += 1
105
- print(f"Skipping row {_ + 1}: Missing game_id")
106
- continue
107
-
108
- # Update query
109
- query = """
110
- MATCH (g:Game {game_id: $game_id})
111
- SET g.home_team_logo_url = $home_team_logo_url,
112
- g.away_team_logo_url = $away_team_logo_url,
113
- g.highlight_video_url = $highlight_video_url
114
- RETURN g.game_id as game_id
115
- """
116
-
117
- try:
118
- result = session.run(query, params)
119
- updated_game = result.single()
120
-
121
- if updated_game:
122
- success_count += 1
123
- if success_count % 5 == 0 or success_count == 1:
124
- print(f"Updated {success_count} games...")
125
- else:
126
- error_count += 1
127
- print(f"Warning: Game with ID {params['game_id']} not found in Neo4j")
128
- except Exception as e:
129
- error_count += 1
130
- print(f"Error updating game {params.get('game_id')}: {str(e)}")
131
-
132
- # Close the driver
133
- driver.close()
134
-
135
- # Print summary
136
- print("\nUpdate Summary:")
137
- print(f"Total games in CSV: {len(schedule_df)}")
138
- print(f"Successfully updated: {success_count}")
139
- print(f"Errors/not found: {error_count}")
140
-
141
- # Verify updates
142
- if success_count > 0:
143
- print("\nVerifying updates...")
144
- verify_updates()
145
-
146
- return success_count > 0
147
-
148
- def verify_updates():
149
- """Verify that game nodes were updated with the new attributes"""
150
- driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
151
-
152
- with driver.session() as session:
153
- # Check for games with logo URLs
154
- logo_query = """
155
- MATCH (g:Game)
156
- WHERE g.home_team_logo_url IS NOT NULL AND g.away_team_logo_url IS NOT NULL
157
- RETURN count(g) as count
158
- """
159
-
160
- logo_result = session.run(logo_query)
161
- logo_count = logo_result.single()["count"]
162
-
163
- # Check for games with highlight URLs
164
- highlight_query = """
165
- MATCH (g:Game)
166
- WHERE g.highlight_video_url IS NOT NULL
167
- RETURN count(g) as count
168
- """
169
-
170
- highlight_result = session.run(highlight_query)
171
- highlight_count = highlight_result.single()["count"]
172
-
173
- print(f"Games with logo URLs: {logo_count}")
174
- print(f"Games with highlight URLs: {highlight_count}")
175
-
176
- driver.close()
177
-
178
- def main():
179
- print("=== Game Node Update Tool ===")
180
- print("This script will update existing Game nodes in Neo4j with additional attributes")
181
- print("from the schedule_with_result_april_11.csv file.")
182
-
183
- # Check for --yes flag
184
- if len(sys.argv) > 1 and sys.argv[1] == '--yes':
185
- print("Automatic confirmation enabled. Proceeding with update...")
186
- confirmed = True
187
- else:
188
- # Confirm with user
189
- user_input = input("\nDo you want to proceed with the update? (y/n): ")
190
- confirmed = user_input.lower() == 'y'
191
-
192
- if not confirmed:
193
- print("Update cancelled.")
194
- return
195
-
196
- # Run the update
197
- success = update_game_nodes()
198
-
199
- if success:
200
- print("\n✅ Game nodes updated successfully!")
201
- else:
202
- print("\n❌ Game node update failed. Please check the errors above.")
203
-
204
- if __name__ == "__main__":
205
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_final_april 11/neo4j_player_update/update_player_nodes.py DELETED
@@ -1,230 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- update_player_nodes.py - Updates existing Player nodes in Neo4j with additional attributes
4
-
5
- This script reads player data from the roster_april_11.csv file and updates
6
- existing Player nodes in Neo4j with the following attributes:
7
- - headshot_url
8
- - instagram_url
9
- - highlight_video_url
10
-
11
- The script uses Player_id as the primary key for matching and updating nodes.
12
- """
13
-
14
- import os
15
- import sys
16
- import pandas as pd
17
- from neo4j import GraphDatabase
18
- from dotenv import load_dotenv
19
-
20
- # Define base project directory relative to script location
21
- SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
22
- # Construct absolute path to project root (ifx-sandbox) based on known workspace structure
23
- # This assumes the script is always located at the same relative depth
24
- WORKSPACE_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, "../../../../..")) # Goes up 5 levels to workspace root
25
- PROJECT_DIR = os.path.join(WORKSPACE_ROOT, "ifx-sandbox") # Specify ifx-sandbox within workspace
26
-
27
- # Add parent directory (ifx-sandbox) to path if needed for imports, though unlikely needed here
28
- # sys.path.append(PROJECT_DIR)
29
-
30
- # Set up paths using PROJECT_DIR
31
- DATA_DIR = os.path.join(PROJECT_DIR, "data")
32
- ROSTER_DATA_DIR = os.path.join(DATA_DIR, "april_11_multimedia_data_collect", "new_final_april 11")
33
- ROSTER_FILE = os.path.join(ROSTER_DATA_DIR, "roster_april_11.csv")
34
-
35
- # Load environment variables from ifx-sandbox/.env
36
- ENV_FILE = os.path.join(PROJECT_DIR, ".env")
37
-
38
- if not os.path.exists(ENV_FILE):
39
- print(f"Error: .env file not found at {ENV_FILE}")
40
- # Attempt fallback if PROJECT_DIR might be wrong
41
- alt_project_dir = os.path.join(os.path.abspath(os.path.join(SCRIPT_DIR, "../../../../../")), "ifx-sandbox") # Go up 6 and specify
42
- alt_env_file = os.path.join(alt_project_dir, ".env")
43
- if os.path.exists(alt_env_file):
44
- print("Fallback: Found .env using alternative path calculation.")
45
- ENV_FILE = alt_env_file
46
- else:
47
- sys.exit(1)
48
-
49
- # Explicitly pass the path to load_dotenv
50
- load_dotenv(dotenv_path=ENV_FILE)
51
- print(f"Loading environment variables from: {ENV_FILE}")
52
-
53
- # Neo4j connection credentials
54
- NEO4J_URI = os.getenv('AURA_CONNECTION_URI')
55
- NEO4J_USER = os.getenv('AURA_USERNAME')
56
- NEO4J_PASS = os.getenv('AURA_PASSWORD')
57
-
58
- if not all([NEO4J_URI, NEO4J_USER, NEO4J_PASS]):
59
- print(f"Error: Missing required Neo4j credentials in {ENV_FILE}")
60
- print(f"Required variables: AURA_CONNECTION_URI, AURA_USERNAME, AURA_PASSWORD")
61
- sys.exit(1)
62
-
63
- def clean_row_dict(row):
64
- """Convert pandas row to dict and replace NaN or empty strings with None"""
65
- return {k: None if pd.isna(v) or v == '' else v for k, v in row.items()}
66
-
67
- def update_player_nodes():
68
- """
69
- Updates existing Player nodes with additional attributes from the roster CSV.
70
- Uses Player_id as the primary key for matching.
71
- """
72
- print(f"Loading player roster data from: {ROSTER_FILE}")
73
-
74
- # Check if the file exists
75
- if not os.path.exists(ROSTER_FILE):
76
- print(f"Error: Roster file not found at {ROSTER_FILE}")
77
- return False
78
-
79
- # Load the roster data
80
- try:
81
- roster_df = pd.read_csv(ROSTER_FILE)
82
- print(f"Loaded {len(roster_df)} players from CSV")
83
- except Exception as e:
84
- print(f"Error loading roster CSV: {str(e)}")
85
- return False
86
-
87
- # Verify required columns exist
88
- required_columns = ['player_id', 'headshot_url', 'instagram_url', 'highlight_video_url']
89
- missing_columns = [col for col in required_columns if col not in roster_df.columns]
90
-
91
- if missing_columns:
92
- print(f"Error: Missing required columns in CSV: {', '.join(missing_columns)}")
93
- return False
94
-
95
- # Connect to Neo4j
96
- print(f"Connecting to Neo4j at {NEO4J_URI}")
97
- driver = None # Initialize driver to None
98
- try:
99
- driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
100
- driver.verify_connectivity()
101
- print("Neo4j connection successful.")
102
- with driver.session() as session:
103
- result = session.run("MATCH (p:Player) RETURN count(p) as count")
104
- player_count = result.single()["count"]
105
- print(f"Found {player_count} Player nodes in Neo4j")
106
- except Exception as e:
107
- print(f"Error connecting to or querying Neo4j: {str(e)}")
108
- if driver:
109
- driver.close()
110
- return False
111
-
112
- # Update player nodes
113
- success_count = 0
114
- error_count = 0
115
-
116
- with driver.session() as session:
117
- for index, row in roster_df.iterrows():
118
- # Use player_id (lowercase) which is the correct column name
119
- player_id_val = row.get('player_id')
120
-
121
- if not player_id_val:
122
- error_count += 1
123
- print(f"Skipping row {index + 1}: Missing player_id")
124
- continue
125
-
126
- params = clean_row_dict(row)
127
- # Ensure the key used for matching exists in params for the query
128
- params['match_player_id'] = player_id_val
129
-
130
- # Update query - Use correct case for property key and parameter name
131
- query = """
132
- MATCH (p:Player {player_id: $match_player_id})
133
- SET p.headshot_url = $headshot_url,
134
- p.instagram_url = $instagram_url,
135
- p.highlight_video_url = $highlight_video_url
136
- RETURN p.player_id as player_id
137
- """
138
-
139
- try:
140
- result = session.run(query, params)
141
- updated_player = result.single()
142
-
143
- if updated_player:
144
- success_count += 1
145
- if success_count % 10 == 0 or success_count == 1:
146
- print(f"Updated {success_count} players...")
147
- else:
148
- error_count += 1
149
- print(f"Warning: Player with ID {player_id_val} not found in Neo4j")
150
- except Exception as e:
151
- error_count += 1
152
- print(f"Error updating player {player_id_val}: {str(e)}")
153
-
154
- # Close the driver
155
- driver.close()
156
-
157
- # Print summary
158
- print("\nUpdate Summary:")
159
- print(f"Total players in CSV: {len(roster_df)}")
160
- print(f"Successfully updated: {success_count}")
161
- print(f"Errors/not found: {error_count}")
162
-
163
- # Verify updates
164
- if success_count > 0:
165
- print("\nVerifying updates...")
166
- verify_updates()
167
-
168
- return success_count > 0
169
-
170
- def verify_updates():
171
- """Verify that Player nodes were updated with the new attributes"""
172
- driver = None
173
- try:
174
- driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
175
- driver.verify_connectivity()
176
- with driver.session() as session:
177
- # Check for players with headshot & instagram URLs
178
- query1 = """
179
- MATCH (p:Player)
180
- WHERE p.headshot_url IS NOT NULL AND p.instagram_url IS NOT NULL
181
- RETURN count(p) as count
182
- """
183
- result1 = session.run(query1)
184
- count1 = result1.single()["count"]
185
-
186
- # Check for players with highlight URLs
187
- query2 = """
188
- MATCH (p:Player)
189
- WHERE p.highlight_video_url IS NOT NULL
190
- RETURN count(p) as count
191
- """
192
- result2 = session.run(query2)
193
- count2 = result2.single()["count"]
194
-
195
- print(f"Players with headshot & Instagram URLs: {count1}")
196
- print(f"Players with highlight URLs: {count2}")
197
- except Exception as e:
198
- print(f"Error during verification: {str(e)}")
199
- finally:
200
- if driver:
201
- driver.close()
202
-
203
- def main():
204
- print("=== Player Node Update Tool ===")
205
- print("This script will update existing Player nodes in Neo4j with additional attributes")
206
- print(f"from the {ROSTER_FILE} file.")
207
-
208
- # Check for --yes flag
209
- if len(sys.argv) > 1 and sys.argv[1] == '--yes':
210
- print("Automatic confirmation enabled. Proceeding with update...")
211
- confirmed = True
212
- else:
213
- # Confirm with user
214
- user_input = input("\nDo you want to proceed with the update? (y/n): ")
215
- confirmed = user_input.lower() == 'y'
216
-
217
- if not confirmed:
218
- print("Update cancelled.")
219
- return
220
-
221
- # Run the update
222
- success = update_player_nodes()
223
-
224
- if success:
225
- print("\n✅ Player nodes updated successfully!")
226
- else:
227
- print("\n❌ Player node update failed. Please check the errors above.")
228
-
229
- if __name__ == "__main__":
230
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_final_april 11/roster_april_11.csv DELETED
@@ -1,74 +0,0 @@
1
- Player,Number,Pos,HT,WT,Age,Exp,College,status,player_id,headshot_url,instagram_url,highlight_video_url
2
- Israel Abanikanda,20,RB,5-10,216,22,2,Pittsburgh,Active,c1f595b7-9043-4569-9ff6-97e0f31a5ba5,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png,https://www.instagram.com/izzygetsbusy__/?hl=en,
3
- Brandon Allen,17,QB,6-2,209,32,8,Arkansas,Active,86f109ac-c967-4c17-af5c-97395270c489,#N/A,#N/A,#N/A
4
- Evan Anderson,69,DL,6-3,326,23,R,Florida Atlantic,Active,7774475d-ab11-4247-a631-9c7d29ba9745,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png,https://www.instagram.com/klamps8/?hl=en,
5
- Tre Avery,36,CB,5-11,181,28,3,Rutgers,Active,59e3afa0-cb40-4f8e-9052-88b9af20e074,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg,https://www.instagram.com/t.avery21/?hl=en,
6
- Robert Beal Jr.,51,DL,6-4,250,25,2,Georgia,Active,dcecbaa2-2803-4716-a729-45e1c80d6ab8,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg,https://www.instagram.com/oursf49ers/reel/C_CVQxxp2ti/,
7
- Tatum Bethune,48,LB,6-0,299,24,R,Florida State,Active,f51beff4-e90c-4b73-9253-8699c46a94ff,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png,https://www.instagram.com/tatumx15/?hl=en,
8
- Nick Bosa,97,DL,6-4,266,27,6,Ohio State,Active,9cf4b059-d05c-4d22-9ca3-c5aee41ebfdc,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg,https://www.instagram.com/nbsmallerbear/?hl=en,https://www.youtube.com/watch?v=URvcwUEQYMw
9
- Jake Brendel,64,OL,6-4,299,32,7,UCLA,Active,b7c1b4e2-4d9c-47cc-8ac2-b6e0d2493157,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg,https://www.instagram.com/jake.brendel/?hl=en,
10
- Ji'Ayir Brown,27,S,5-11,202,25,2,Penn State,Active,e5950f0d-0d24-4e2f-b96a-36ebedb604a9,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg,https://www.instagram.com/_tiig/?hl=en,
11
- Chris Conley,18,WR,6-3,205,32,10,Georgia,Active,f35d154a-0a53-476e-b0c2-49ae5d33b7eb,#N/A,#N/A,#N/A
12
- Jacob Cowing,19,WR,5-9,171,24,R,Arizona,Active,564daa89-38f8-4c8a-8760-de1923f9a681,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png,https://www.instagram.com/jaycowing_/?hl=en,
13
- Kalia Davis,93,DL,6-2,310,26,3,Central Florida,Active,9ecde51b-8b49-40a3-ba42-e8c5787c279c,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg,https://www.instagram.com/ucf.football/p/C3No6rTugDe/,https://www.youtube.com/watch?v=xE4jfmV7kGg
14
- Khalil Davis,50,DL,6-2,315,28,4,Nebraska,Active,5162b93a-4f44-45fd-8d6b-f5714f4c7e91,#N/A,#N/A,#N/A
15
- Joshua Dobbs,5,QB,6-3,220,30,8,Tennessee,Active,44b1d8d5-663c-485b-94d3-c72540441aa0,#N/A,#N/A,#N/A
16
- Jordan Elliott,92,DL,6-4,303,27,5,Missouri,Active,f037f86a-6952-49a5-b6d3-6ce43b8e1d3d,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg,https://www.instagram.com/jordanelliott_nbcs/,
17
- Luke Farrell,89,TE,6-5,250,27,4,Ohio State,Active,ba2cf281-cffa-4de5-9db9-2109331e455d,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla,https://www.instagram.com/lukefarrell89/?hl=en,
18
- Tashaun Gipson Sr.,43,S,6-1,212,34,13,Wyoming,Active,14026aa2-5f8c-45bf-9b92-0971d92127e6,#N/A,#N/A,#N/A
19
- Jalen Graham,41,LB,6-3,220,25,2,Purdue,Active,00d1db69-8b43-4d34-bbf8-17d4f00a8b71,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg,https://www.instagram.com/thexniners/p/CruR8IPrSV7/,
20
- Richie Grant,27,S,6-0,200,27,4,UCF,Active,c737a041-c713-43f6-8205-f409b349e2b6,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd,https://www.instagram.com/richiegrant_/?hl=en,
21
- Renardo Green,0,CB,6-0,186,24,R,Florida State,Active,21d23c5c-28c0-4b66-8d17-2f5c76de48ed,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png,https://www.instagram.com/dondada.8/?hl=en,https://www.youtube.com/watch?v=iIooO2pTjt4
22
- Yetur Gross-Matos,94,DL,6-5,265,27,5,Penn State,Active,cde0a59d-19ab-44c9-ba02-476b0762e4a8,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg,https://www.instagram.com/__lobo99/?hl=en,
23
- Isaac Guerendo,31,RB,6-0,221,24,R,Louisville,Active,4ca8e082-d358-46bf-af14-9eaab40f4fe9,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png,https://www.instagram.com/isaac_guerendo/?hl=en,
24
- Charlie Heck,75,OL,6-8,311,28,5,North Carolina,Active,7d809297-6d2f-4515-ab3c-1ce3eb47e7a6,#N/A,#N/A,#N/A
25
- Matt Hennessy,61,OL,6-3,315,27,4,Temple,Active,2f95e3de-03de-4827-a4a7-aaed42817861,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23,https://www.instagram.com/matt___hennessy/?hl=en,
26
- Jauan Jennings,15,WR,6-3,212,27,4,Tennessee,Active,16794171-c7a0-4a0e-9790-6ab3b2cd3380,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg,https://www.instagram.com/u_aintjj/?hl=en,https://www.youtube.com/watch?v=kFkNlmUQVu0
27
- Mac Jones,10,QB,6-3,200,26,4,Alabama,Active,18df1544-69a6-460c-802e-7d262e83111d,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko,https://www.instagram.com/macjones_10/?hl=en,https://www.youtube.com/watch?v=TylWJVa84VE
28
- George Kittle,85,TE,6-4,250,31,8,Iowa,Active,3fe4cd72-43e3-40ea-8016-abb2b01503c7,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg,https://www.instagram.com/gkittle/?hl=en,https://www.youtube.com/watch?v=RzMVbATV95w
29
- Deommodore Lenoir,2,DB,5-10,200,25,4,Oregon,Active,79a00b55-fa24-45d8-a43f-772694b7776d,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg,https://www.instagram.com/deommo.lenoir/?hl=en,https://www.youtube.com/watch?v=h-uvula5tNo
30
- Nick McCloud,35,CB,6-1,193,26,4,Notre Dame,Active,c3b8f82b-92c0-4a5d-85ef-7ddaec7d3a87,#N/A,#N/A,#N/A
31
- Colton McKivitz,68,OL,6-6,301,28,5,West Virginia,Active,63b288c1-4434-4120-867c-cee4dadd8c8a,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg,https://www.instagram.com/cmckivitz53/?hl=en,
32
- Jake Moody,4,K,6-1,210,25,2,Michigan,Active,9328e072-e82e-41ef-a132-ed54b649a5ca,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg,https://www.instagram.com/jmoods_/?hl=en,
33
- Malik Mustapha,6,S,5-10,206,22,R,Wake Forest,Active,6cb2d19f-f0a4-4ece-9190-76345d1abc54,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png,https://www.instagram.com/stapha/,
34
- Pat O'Donnell,40,P,6-4,220,34,10,Miami,Active,61a0a607-be7b-429d-b492-59523fad023e,#N/A,#N/A,#N/A
35
- Sam Okuayinonu,91,DL,6-1,269,26,2,Maryland,Active,c81b6283-b1aa-40d6-a825-f01410912435,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg,https://www.instagram.com/sam.ok97/?hl=en,
36
- Ricky Pearsall,14,WR,6-3,192,24,R,Florida,Active,27bf8c9c-7193-4f43-9533-32f1293d1bf0,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png,https://www.instagram.com/ricky.pearsall/?hl=en,
37
- Jason Pinnock,41,CB,6-0,205,25,4,Pittsburgh,Active,57f29e6b-9082-4637-af4b-0d123ef4542d,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt,https://www.instagram.com/jpinny15/?hl=en,
38
- Austen Pleasants,62,OT,6-7,328,27,1,Ohio,Active,d000d0a3-a7ba-442d-92af-0d407340aa2f,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png,https://www.instagram.com/oursf49ers/p/DDr48a4PdcO/?hl=en,
39
- Dominick Puni,77,OL,6-5,313,25,R,Kansas,Active,aeb5a55c-4554-4116-9de0-76910e66e154,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png,https://www.instagram.com/dompuni/?hl=en,
40
- Brock Purdy,13,QB,6-1,220,25,3,Iowa State,Active,787758c9-4e9a-44f2-af68-c58165d0bc03,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png,https://www.instagram.com/brock.purdy13/?hl=en,https://www.youtube.com/watch?v=O-ft3FPYwiA
41
- Demarcus Robinson,14,WR,6-1,203,30,9,Florida,Active,c97d60e5-8c92-4d2e-b782-542ca7aa7799,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge,https://www.instagram.com/demarcusrobinson/?hl=en,https://www.youtube.com/watch?v=1vwP8vs-mXI
42
- Eric Saubert,82,TE,6-5,248,30,7,Drake,Active,67214339-8a36-45b9-8b25-439d97b06703,#N/A,#N/A,#N/A
43
- Patrick Taylor Jr.,32,RB,6-2,217,26,4,Memphis,Active,4bf9f546-d80c-4cb4-8692-73d8ac68d1f1,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg,https://www.instagram.com/patricktaylor/?hl=en,
44
- Tre Tomlinson,,CB,5-9,177,25,2,TCU,Active,ad3e3f2e-ee06-4406-8874-ea1921c52328,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz,https://www.instagram.com/trevius/?hl=en,
45
- Jake Tonges,88,TE,6-4,240,25,2,California,Active,ad391cbf-b874-4b1e-905b-2736f2b69332,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg,https://www.instagram.com/jaketonges/?hl=en,
46
- Fred Warner,54,LB,6-3,230,28,7,Brigham Young,Active,cdd0eadc-19e2-4ca1-bba5-6846c9ac642b,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg,https://www.instagram.com/fred_warner/?hl=en,https://www.youtube.com/watch?v=IwBlFktlNwY
47
- Jon Weeks,46,LS,5-10,245,39,15,Baylor,Active,587c7609-ba56-4d22-b1e6-c12576c428fd,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf,https://www.instagram.com/jonweeks46/?hl=en,https://www.youtube.com/watch?v=FO_iJ1IEOQU
48
- Brayden Willis,9,TE,6-4,240,25,2,Oklahoma,Active,d1b16c10-c5b3-4157-bd9d-7f289f17df81,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg,https://www.instagram.com/brayden_willis/?hl=en,https://www.youtube.com/watch?v=3KNc8s3Xwos
49
- Dee Winters,53,LB,5-11,227,24,2,TCU,Active,514f3569-5435-48bb-bc74-6b08d3d78ca9,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg,https://www.instagram.com/dwints_/?hl=en,
50
- Rock Ya-Sin,33,CB,5-11,195,28,6,Temple,Active,cb00e672-232a-4137-a259-f3cf0382d466,#N/A,#N/A,#N/A
51
- Isaac Yiadom,22,CB,6-1,232,29,7,Boston College,Active,3227c040-7d18-4803-b4b4-799667344a6d,#N/A,#N/A,#N/A
52
- Nick Zakelj,63,OL,6-6,316,25,3,Fordham,Active,59845c40-7efc-4514-9ed6-c29d983fba31,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg,https://www.instagram.com/nickzakelj/?hl=en,
53
- Player,#,Pos,HT,WT,Age,Exp,College,Reserve/Future,724825a5-7a0b-422d-946e-ce9512ad7add,#N/A,#N/A,#N/A
54
- Isaac Alarcon,67,OL,6-7,320,26,1,Tecnológico de Monterrey,Reserve/Future,262ea245-93dc-4c61-aa41-868bc4cc5dcf,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg,https://www.instagram.com/isaac_algar/?hl=en,
55
- Russell Gage,84,WR,6-0,184,29,7,LSU,Reserve/Future,1537733f-8218-4c45-9a0a-e00ff349a9d1,#N/A,#N/A,#N/A
56
- Isaiah Hodgins,87,WR,6-3,200,26,4,Oregon State,Reserve/Future,f4c2cec2-d0b4-45a9-ac1b-478ce1a32b2c,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg,https://www.instagram.com/isaiahhodgins/?hl=en,
57
- Quindell Johnson,,S,6-2,208,25,2,Memphis,Reserve/Future,7bee6f18-bd56-4920-a132-107c8af22bef,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb,https://www.instagram.com/p/DFGnwNlymc9/,https://www.youtube.com/watch?v=VU2gRl8rgqw
58
- Jalen McKenzie,76,OT,6-5,315,25,1,USC,Reserve/Future,473d4c85-cc2c-4020-9381-c49a7236ad68,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg,https://www.instagram.com/jay_peez70/?hl=en,
59
- Brandon Aiyuk,11,WR,6-0,200,27,5,Arizona State,Reserve/Injured,577eb875-f886-400d-8b14-ec28a2cc5eae,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png,https://www.instagram.com/brandonaiyuk/?hl=en,https://www.youtube.com/watch?v=TlAgJDpoOYk
60
- Aaron Banks,65,OL,6-5,325,27,4,Notre Dame,Reserve/Injured,e665afb5-904a-4e86-a6da-1d859cc81f90,#N/A,#N/A,#N/A
61
- Ben Bartch,78,OL,6-6,315,26,5,St. John's (MN),Reserve/Injured,6a1545de-63fd-4c04-bc27-58ba334e7a91,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg,https://www.instagram.com/bartchben/,
62
- Tre Brown,22,CB,5-10,185,27,4,Oklahoma,Reserve/Injured,839c425d-d9b0-4b60-8c68-80d14ae382f7,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb,https://www.instagram.com/tre_brown25/?hl=en,
63
- Spencer Burford,74,OL,6-4,300,24,3,Texas-San Antonio,Reserve/Injured,31da633a-a7f1-4ec4-a715-b04bb85e0b5f,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg,https://www.instagram.com/spence__74/?hl=en,
64
- Luke Gifford,57,LB,6-3,243,29,6,Nebraska,Reserve/Injured,069b6392-804b-4fcb-8654-d67afad1fd91,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn,https://www.instagram.com/luke_gifford/?hl=en,
65
- Kevin Givens,90,DL,6-1,285,28,5,Penn State,Reserve/Injured,a9f79e66-ff50-49eb-ae50-c442d23955fc,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg,https://www.instagram.com/49ers/p/DAg_Pvpz1vV/,
66
- Darrell Luter Jr.,28,CB,6-0,190,24,2,South Alabama,Reserve/Injured,741c6fa0-0254-4f85-9066-6d46fcc1026e,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg,https://www.instagram.com/_d.ray4k/?hl=en,
67
- Jordan Mason,24,RB,5-11,223,25,3,Georgia Tech,Reserve/Injured,89531f13-baf0-43d6-b9f4-42a95482753a,#N/A,#N/A,#N/A
68
- Christian McCaffrey,23,RB,5-11,210,28,8,Stanford,Reserve/Injured,052ec36c-e430-4698-9270-d925fe5bcaf4,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg,https://www.instagram.com/christianmccaffrey/?hl=en,https://www.youtube.com/watch?v=cu78Okf6VSo
69
- Elijah Mitchell,25,RB,5-10,200,26,4,Louisiana,Reserve/Injured,7dfc6f25-07a8-4618-954b-b9dd96cee86e,#N/A,#N/A,#N/A
70
- Jaylon Moore,76,OL,6-4,311,27,4,Western Michigan,Reserve/Injured,c800d89e-031f-4180-b824-8fd307cf6d2b,#N/A,#N/A,#N/A
71
- George Odum,30,S,6-1,202,31,7,Central Arkansas,Reserve/Injured,26e72658-4503-47c4-ad74-628545e2402a,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg,https://www.instagram.com/george.w.odum/?hl=en,
72
- Curtis Robinson,36,LB,6-3,235,26,3,Stanford,Reserve/Injured,072a3483-b063-48fd-bc9c-5faa9b845425,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg,https://www.instagram.com/curtis_robinsonn/?hl=en,https://www.youtube.com/watch?v=8wyHHbXoFZI
73
- Trent Williams,71,T,6-5,320,36,15,Oklahoma,Reserve/Injured,bb8b42ad-6042-40cd-b08c-2dc3a5cfc737,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg,https://www.instagram.com/trentwilliams71/?hl=en,https://www.youtube.com/watch?v=k7FDcmcawL0
74
- Mitch Wishnowsky,3,P,6-2,220,33,6,Utah,Reserve/Injured,fe86f2c6-8576-4e77-b1df-a3df995eccf8,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg,https://www.instagram.com/mitchwish3/?hl=en,https://www.youtube.com/watch?v=ZkH6eWs5Yd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_final_april 11/schedule_with_result_april_11.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,Home Team,Away Team,Result,game_result,home_team_logo_url,away_team_logo_url,game_id,Summary,highlight_video_url
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/nyj.png,7d5492b7-6372-4ab6-b878-a6ad10936f3b,"Quarterback Brock Purdy threw for 231 yards, with running back Jordan Mason rushing for 147 yards.",https://www.youtube.com/watch?v=igOb4mfV7To
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/min.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,9c37ef4a-8887-4e16-a0e9-53dd21d0ed1c,"Purdy passed for 319 yards; Mason added 100 rushing yards, but the 49ers fell short.",https://www.youtube.com/watch?v=jTJw2uf-Pdg
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,b8c3e7f7-81ed-48c4-9a49-0897cac450e5,Purdy threw for 292 yards; Jauan Jennings had 175 receiving yards in a close loss.,https://www.youtube.com/watch?v=Y1dnhN-1ryU
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/ne.png,b4b49323-c84d-4414-bbd4-de399145db28,Brock Purdy threw for 288 yards and a touchdown; Fred Warner returned an interception for a touchdown.,https://www.youtube.com/watch?v=NCUjGFJILLo
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png,efe67377-f218-4629-94d6-b0a28dae81b4,"Kyler Murray led a comeback, including a 50-yard touchdown run; Chad Ryland kicked the game-winning field goal.",https://www.youtube.com/watch?v=v62sybG_3Lk
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,be924e35-6c00-470a-a82e-f77e89f2fca9,Geno Smith's late 13-yard touchdown run secured the Seahawks' victory.,https://www.youtube.com/watch?v=LaDE1QBC3Cc
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/kc.png,c0efcedb-e8a0-4058-8ae8-df418a829c22,Specific game details are not available.,https://www.youtube.com/watch?v=4_xM1tOK-28
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/dal.png,9d3c8085-3864-4c86-9a47-6d91f9561e68,Specific game details are not available.,https://www.youtube.com/watch?v=7nTBwPljD-Q
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,https://a.espncdn.com/i/teamlogos/nfl/500/tb.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,8c117905-4d53-4bfb-a85e-d4d0a52262a8,"The 49ers narrowly avoided a collapse, with Jake Moody's game-winning field goal.",https://www.youtube.com/watch?v=607mv01G8UU
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png,6ee0f83e-d738-43c7-95e2-472bdaa9c2e8,Geno Smith's last-minute touchdown run ended the Seahawks' losing streak against the 49ers.,https://www.youtube.com/watch?v=VMPRSGk7bUg
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/gb.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,89aeb6ec-c102-442f-a2b2-862a58f08c72,"Despite losing Deebo Samuel early, the 49ers secured a narrow victory.",https://www.youtube.com/watch?v=rtBtGh02HvA
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/buf.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,051a9bbd-41b1-4946-b366-2202b9b84646,"Josh Allen scored touchdowns passing, rushing, and receiving, leading the Bills to victory.",
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/chi.png,2bfc3060-5975-4c60-8cf2-cd359c318bcb,Specific game details are not available.,https://www.youtube.com/watch?v=qmzSVmVNaFg
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png,07182afe-36bf-44e4-a464-52a56e9e325d,"In a rainy defensive battle, the Rams secured victory with four field goals.",https://www.youtube.com/watch?v=3JfiboQ6ZC8
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/mia.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,0be9a14c-0017-46b8-96e8-7c446e78ea84,A high-scoring game marked by a scuffle involving Jauan Jennings; the 49ers fell short.,
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/det.png,a6af1ef1-eece-43c2-b98f-c20494003cfe,Specific game details are not available.,https://www.youtube.com/watch?v=AooNLyum7Ng
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,2c95b37b-b32d-4b30-a582-f04b8cbf12e4,Specific game details are not available.,https://www.youtube.com/watch?v=HfqGFWVdf9w
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_games_with_highlights.csv DELETED
@@ -1,18 +0,0 @@
1
- match_number,round_number,date,location,home_team,away_team,result,game_result,opponent,highlight_video_url
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,New York Jets,https://www.youtube.com/watch?v=igOb4mfV7To
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,Minnesota Vikings,https://www.youtube.com/watch?v=jTJw2uf-Pdg
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,Los Angeles Rams,https://www.youtube.com/watch?v=Y1dnhN-1ryU
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,New England Patriots,https://www.youtube.com/watch?v=NCUjGFJILLo
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,Arizona Cardinals,https://www.youtube.com/watch?v=v62sybG_3Lk
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,Seattle Seahawks,https://www.youtube.com/watch?v=LaDE1QBC3Cc
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,Kansas City Chiefs,https://www.youtube.com/watch?v=4_xM1tOK-28
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,Dallas Cowboys,https://www.youtube.com/watch?v=7nTBwPljD-Q
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,Tampa Bay Buccaneers,https://www.youtube.com/watch?v=607mv01G8UU
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,Seattle Seahawks,https://www.youtube.com/watch?v=VMPRSGk7bUg
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,Green Bay Packers,https://www.youtube.com/watch?v=rtBtGh02HvA
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,Buffalo Bills,
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,Chicago Bears,https://www.youtube.com/watch?v=qmzSVmVNaFg
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,Los Angeles Rams,https://www.youtube.com/watch?v=3JfiboQ6ZC8
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,Miami Dolphins,
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,Detroit Lions,https://www.youtube.com/watch?v=AooNLyum7Ng
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,Arizona Cardinals,https://www.youtube.com/watch?v=HfqGFWVdf9w
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_niners_players_with_highlights.csv DELETED
@@ -1,74 +0,0 @@
1
- name,headshot_url,instagram_url,highlight_video_url
2
- Israel Abanikanda,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png,https://www.instagram.com/izzygetsbusy__/?hl=en,
3
- Brandon Aiyuk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png,https://www.instagram.com/brandonaiyuk/?hl=en,https://www.youtube.com/watch?v=TlAgJDpoOYk
4
- Isaac Alarcon,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg,https://www.instagram.com/isaac_algar/?hl=en,
5
- Evan Anderson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png,https://www.instagram.com/klamps8/?hl=en,
6
- Tre Avery,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg,https://www.instagram.com/t.avery21/?hl=en,
7
- Alex Barrett,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/bm0ay22de39d1enrxwiq.jpg,https://www.instagram.com/alex.barrett/?hl=en,
8
- Ben Bartch,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg,https://www.instagram.com/bartchben/,
9
- Robert Beal Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg,https://www.instagram.com/oursf49ers/reel/C_CVQxxp2ti/,
10
- Tatum Bethune,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png,https://www.instagram.com/tatumx15/?hl=en,
11
- Nick Bosa,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg,https://www.instagram.com/nbsmallerbear/?hl=en,https://www.youtube.com/watch?v=URvcwUEQYMw
12
- Jake Brendel,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg,https://www.instagram.com/jake.brendel/?hl=en,
13
- Ji'Ayir Brown,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg,https://www.instagram.com/_tiig/?hl=en,
14
- Tre Brown,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb,https://www.instagram.com/tre_brown25/?hl=en,
15
- Spencer Burford,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg,https://www.instagram.com/spence__74/?hl=en,
16
- Jacob Cowing,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png,https://www.instagram.com/jaycowing_/?hl=en,
17
- Kalia Davis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg,https://www.instagram.com/ucf.football/p/C3No6rTugDe/,https://www.youtube.com/watch?v=xE4jfmV7kGg
18
- Jordan Elliott,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg,https://www.instagram.com/jordanelliott_nbcs/,
19
- Luke Farrell,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla,https://www.instagram.com/lukefarrell89/?hl=en,
20
- Russell Gage Jr.,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/lkqhshv0dss1b9c6mdnj,https://www.instagram.com/w8k3mupruss/?hl=en,
21
- Jonathan Garvin,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/rapfcxut6vu50vcevswe.png,https://www.instagram.com/thesfniners/p/DCmgF8KSw2A/?hl=en,
22
- Luke Gifford,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn,https://www.instagram.com/luke_gifford/?hl=en,
23
- Kevin Givens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg,https://www.instagram.com/49ers/p/DAg_Pvpz1vV/,
24
- Jalen Graham,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg,https://www.instagram.com/thexniners/p/CruR8IPrSV7/,
25
- Richie Grant,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd,https://www.instagram.com/richiegrant_/?hl=en,
26
- Renardo Green,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png,https://www.instagram.com/dondada.8/?hl=en,https://www.youtube.com/watch?v=iIooO2pTjt4
27
- Yetur Gross-Matos,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg,https://www.instagram.com/__lobo99/?hl=en,
28
- Isaac Guerendo,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png,https://www.instagram.com/isaac_guerendo/?hl=en,
29
- Sebastian Gutierrez,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/am9sywgkga6jq65hvboe.jpg,https://www.instagram.com/sebastiandev1/?hl=en,
30
- Matt Hennessy,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23,https://www.instagram.com/matt___hennessy/?hl=en,
31
- Isaiah Hodgins,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg,https://www.instagram.com/isaiahhodgins/?hl=en,
32
- Drake Jackson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/y2luyplzpvbzokyfbmla.jpg,https://www.instagram.com/thefreak/?hl=en,
33
- Tarron Jackson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pnqrjp76bgpkmacxma3r,https://www.instagram.com/tarron_jackson/?hl=en,
34
- Jauan Jennings,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg,https://www.instagram.com/u_aintjj/?hl=en,https://www.youtube.com/watch?v=kFkNlmUQVu0
35
- Quindell Johnson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb,https://www.instagram.com/p/DFGnwNlymc9/,https://www.youtube.com/watch?v=VU2gRl8rgqw
36
- Zack Johnson,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/n4hy8uzhcl5cl0ricwoa,https://www.instagram.com/zack.johnson.68/,https://www.youtube.com/watch?v=yDAcyWJi6qQ
37
- Mac Jones,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko,https://www.instagram.com/macjones_10/?hl=en,https://www.youtube.com/watch?v=TylWJVa84VE
38
- Kyle Juszczyk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ywdz6y2pfzndqgmxxfbj.jpg,https://www.instagram.com/juicecheck44/?hl=en,https://www.youtube.com/watch?v=PZCVP0l8uVk
39
- George Kittle,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg,https://www.instagram.com/gkittle/?hl=en,https://www.youtube.com/watch?v=RzMVbATV95w
40
- Deommodore Lenoir,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg,https://www.instagram.com/deommo.lenoir/?hl=en,https://www.youtube.com/watch?v=h-uvula5tNo
41
- Chase Lucas,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gjeejt5pbagnipodhdz4.jpg,https://www.instagram.com/chase_lucas24/?hl=en,
42
- Darrell Luter Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg,https://www.instagram.com/_d.ray4k/?hl=en,
43
- Jaylen Mahoney,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/yv9inbia05nyxppuajv0.png,https://www.instagram.com/jaylenmahoney_/,
44
- Christian McCaffrey,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg,https://www.instagram.com/christianmccaffrey/?hl=en,https://www.youtube.com/watch?v=cu78Okf6VSo
45
- Jalen McKenzie,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg,https://www.instagram.com/jay_peez70/?hl=en,
46
- Colton McKivitz,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg,https://www.instagram.com/cmckivitz53/?hl=en,
47
- Jake Moody,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg,https://www.instagram.com/jmoods_/?hl=en,
48
- Tanner Mordecai,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/y8gipodnkeapgmegnxs1.png,https://www.instagram.com/t_mordecai/?hl=en,
49
- Malik Mustapha,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png,https://www.instagram.com/stapha/,
50
- Siran Neal,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/muhthfs6owkkpsyop1e6,https://www.instagram.com/siranneal/?hl=en,
51
- Drake Nugent,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/qyb4kurtbv9uflmupfnc.png,https://www.instagram.com/drakenugent9/?hl=en,
52
- George Odum,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg,https://www.instagram.com/george.w.odum/?hl=en,
53
- Sam Okuayinonu,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg,https://www.instagram.com/sam.ok97/?hl=en,
54
- Terique Owens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/okhin0uwdon2nimvbtwd.png,https://www.instagram.com/terique_owens/?hl=en,
55
- Ricky Pearsall,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png,https://www.instagram.com/ricky.pearsall/?hl=en,
56
- Jason Pinnock,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt,https://www.instagram.com/jpinny15/?hl=en,
57
- Austen Pleasants,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png,https://www.instagram.com/oursf49ers/p/DDr48a4PdcO/?hl=en,
58
- Mason Pline,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/mvjlaxpu8bu33ohspqot.png,https://www.instagram.com/mpline12/?hl=en,
59
- Dominick Puni,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png,https://www.instagram.com/dompuni/?hl=en,
60
- Brock Purdy,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png,https://www.instagram.com/brock.purdy13/?hl=en,https://www.youtube.com/watch?v=O-ft3FPYwiA
61
- Curtis Robinson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg,https://www.instagram.com/curtis_robinsonn/?hl=en,https://www.youtube.com/watch?v=8wyHHbXoFZI
62
- Demarcus Robinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge,https://www.instagram.com/demarcusrobinson/?hl=en,https://www.youtube.com/watch?v=1vwP8vs-mXI
63
- Patrick Taylor Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg,https://www.instagram.com/patricktaylor/?hl=en,
64
- Trent Taylor,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/j8lom4fnsveujt8hykef.jpg,https://www.instagram.com/trent5taylor/?hl=en,https://www.youtube.com/watch?v=kiEy31sL0co
65
- Tre Tomlinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz,https://www.instagram.com/trevius/?hl=en,
66
- Jake Tonges,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg,https://www.instagram.com/jaketonges/?hl=en,
67
- Fred Warner,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg,https://www.instagram.com/fred_warner/?hl=en,https://www.youtube.com/watch?v=IwBlFktlNwY
68
- Jon Weeks,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf,https://www.instagram.com/jonweeks46/?hl=en,https://www.youtube.com/watch?v=FO_iJ1IEOQU
69
- DaShaun White,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/mjnpmkw3ar6zcj2hxxzd,https://www.instagram.com/demoeto/?hl=en,https://www.youtube.com/watch?v=mk4aHkdYaUQ
70
- Trent Williams,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg,https://www.instagram.com/trentwilliams71/?hl=en,https://www.youtube.com/watch?v=k7FDcmcawL0
71
- Brayden Willis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg,https://www.instagram.com/brayden_willis/?hl=en,https://www.youtube.com/watch?v=3KNc8s3Xwos
72
- Dee Winters,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg,https://www.instagram.com/dwints_/?hl=en,
73
- Mitch Wishnowsky,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg,https://www.instagram.com/mitchwish3/?hl=en,https://www.youtube.com/watch?v=ZkH6eWs5Yd8
74
- Nick Zakelj,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg,https://www.instagram.com/nickzakelj/?hl=en,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/new_team_highlights.csv DELETED
The diff for this file is too large to render. See raw diff
 
data/april_11_multimedia_data_collect/nfl-2024-san-francisco-49ers-with-results.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,Home Team,Away Team,Result,game_result
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/nfl_team_logos.csv DELETED
@@ -1,63 +0,0 @@
1
- team_name,logo_url,local_path
2
- "Arizona Cardinals News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/ARI,"team_logos/arizona_cardinals_news,_scores,_stats,_schedule.png"
3
- "Atlanta Falcons News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/ATL,"team_logos/atlanta_falcons_news,_scores,_stats,_schedule.png"
4
- "Carolina Panthers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/CAR,"team_logos/carolina_panthers_news,_scores,_stats,_schedule.png"
5
- "Chicago Bears News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/CHI,"team_logos/chicago_bears_news,_scores,_stats,_schedule.png"
6
- "Dallas Cowboys News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/DAL,"team_logos/dallas_cowboys_news,_scores,_stats,_schedule.png"
7
- "Detroit Lions News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/DET,"team_logos/detroit_lions_news,_scores,_stats,_schedule.png"
8
- "Green Bay Packers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/GB,"team_logos/green_bay_packers_news,_scores,_stats,_schedule.png"
9
- "Los Angeles Rams News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/LA,"team_logos/los_angeles_rams_news,_scores,_stats,_schedule.png"
10
- "Minnesota Vikings News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/MIN,"team_logos/minnesota_vikings_news,_scores,_stats,_schedule.png"
11
- "New Orleans Saints News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/NO,"team_logos/new_orleans_saints_news,_scores,_stats,_schedule.png"
12
- "New York Giants News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/NYG,"team_logos/new_york_giants_news,_scores,_stats,_schedule.png"
13
- "Philadelphia Eagles News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/PHI,"team_logos/philadelphia_eagles_news,_scores,_stats,_schedule.png"
14
- "San Francisco 49ers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/SF,"team_logos/san_francisco_49ers_news,_scores,_stats,_schedule.png"
15
- "Seattle Seahawks News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/SEA,"team_logos/seattle_seahawks_news,_scores,_stats,_schedule.png"
16
- "Tampa Bay Buccaneers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/TB,"team_logos/tampa_bay_buccaneers_news,_scores,_stats,_schedule.png"
17
- "Washington Commanders News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/WAS,"team_logos/washington_commanders_news,_scores,_stats,_schedule.png"
18
- "Baltimore Ravens News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/BAL,"team_logos/baltimore_ravens_news,_scores,_stats,_schedule.png"
19
- "Buffalo Bills News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/BUF,"team_logos/buffalo_bills_news,_scores,_stats,_schedule.png"
20
- "Cincinnati Bengals News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/CIN,"team_logos/cincinnati_bengals_news,_scores,_stats,_schedule.png"
21
- "Cleveland Browns News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/CLE,"team_logos/cleveland_browns_news,_scores,_stats,_schedule.png"
22
- "Denver Broncos News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/DEN,"team_logos/denver_broncos_news,_scores,_stats,_schedule.png"
23
- "Jacksonville Jaguars News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/JAX,"team_logos/jacksonville_jaguars_news,_scores,_stats,_schedule.png"
24
- "Kansas City Chiefs News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/KC,"team_logos/kansas_city_chiefs_news,_scores,_stats,_schedule.png"
25
- "Las Vegas Raiders News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/LV,"team_logos/las_vegas_raiders_news,_scores,_stats,_schedule.png"
26
- "Los Angeles Chargers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/LAC,"team_logos/los_angeles_chargers_news,_scores,_stats,_schedule.png"
27
- "Miami Dolphins News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/MIA,"team_logos/miami_dolphins_news,_scores,_stats,_schedule.png"
28
- "New England Patriots News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/NE,"team_logos/new_england_patriots_news,_scores,_stats,_schedule.png"
29
- "New York Jets News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/NYJ,"team_logos/new_york_jets_news,_scores,_stats,_schedule.png"
30
- "Pittsburgh Steelers News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/PIT,"team_logos/pittsburgh_steelers_news,_scores,_stats,_schedule.png"
31
- "Tennessee Titans News, Scores, Stats, Schedule",https://static.www.nfl.com/t_headshot_desktop/league/api/clubs/logos/TEN,"team_logos/tennessee_titans_news,_scores,_stats,_schedule.png"
32
- Arizona Cardinals,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png,team_logos/arizona_cardinals.png
33
- Atlanta Falcons,https://a.espncdn.com/i/teamlogos/nfl/500/atl.png,team_logos/atlanta_falcons.png
34
- Baltimore Ravens,https://a.espncdn.com/i/teamlogos/nfl/500/bal.png,team_logos/baltimore_ravens.png
35
- Buffalo Bills,https://a.espncdn.com/i/teamlogos/nfl/500/buf.png,team_logos/buffalo_bills.png
36
- Carolina Panthers,https://a.espncdn.com/i/teamlogos/nfl/500/car.png,team_logos/carolina_panthers.png
37
- Chicago Bears,https://a.espncdn.com/i/teamlogos/nfl/500/chi.png,team_logos/chicago_bears.png
38
- Cincinnati Bengals,https://a.espncdn.com/i/teamlogos/nfl/500/cin.png,team_logos/cincinnati_bengals.png
39
- Cleveland Browns,https://a.espncdn.com/i/teamlogos/nfl/500/cle.png,team_logos/cleveland_browns.png
40
- Dallas Cowboys,https://a.espncdn.com/i/teamlogos/nfl/500/dal.png,team_logos/dallas_cowboys.png
41
- Denver Broncos,https://a.espncdn.com/i/teamlogos/nfl/500/den.png,team_logos/denver_broncos.png
42
- Detroit Lions,https://a.espncdn.com/i/teamlogos/nfl/500/det.png,team_logos/detroit_lions.png
43
- Green Bay Packers,https://a.espncdn.com/i/teamlogos/nfl/500/gb.png,team_logos/green_bay_packers.png
44
- Houston Texans,https://a.espncdn.com/i/teamlogos/nfl/500/hou.png,team_logos/houston_texans.png
45
- Indianapolis Colts,https://a.espncdn.com/i/teamlogos/nfl/500/ind.png,team_logos/indianapolis_colts.png
46
- Jacksonville Jaguars,https://a.espncdn.com/i/teamlogos/nfl/500/jax.png,team_logos/jacksonville_jaguars.png
47
- Kansas City Chiefs,https://a.espncdn.com/i/teamlogos/nfl/500/kc.png,team_logos/kansas_city_chiefs.png
48
- Las Vegas Raiders,https://a.espncdn.com/i/teamlogos/nfl/500/lv.png,team_logos/las_vegas_raiders.png
49
- Los Angeles Chargers,https://a.espncdn.com/i/teamlogos/nfl/500/lac.png,team_logos/los_angeles_chargers.png
50
- Los Angeles Rams,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png,team_logos/los_angeles_rams.png
51
- Miami Dolphins,https://a.espncdn.com/i/teamlogos/nfl/500/mia.png,team_logos/miami_dolphins.png
52
- Minnesota Vikings,https://a.espncdn.com/i/teamlogos/nfl/500/min.png,team_logos/minnesota_vikings.png
53
- New England Patriots,https://a.espncdn.com/i/teamlogos/nfl/500/ne.png,team_logos/new_england_patriots.png
54
- New Orleans Saints,https://a.espncdn.com/i/teamlogos/nfl/500/no.png,team_logos/new_orleans_saints.png
55
- New York Giants,https://a.espncdn.com/i/teamlogos/nfl/500/nyg.png,team_logos/new_york_giants.png
56
- New York Jets,https://a.espncdn.com/i/teamlogos/nfl/500/nyj.png,team_logos/new_york_jets.png
57
- Philadelphia Eagles,https://a.espncdn.com/i/teamlogos/nfl/500/phi.png,team_logos/philadelphia_eagles.png
58
- Pittsburgh Steelers,https://a.espncdn.com/i/teamlogos/nfl/500/pit.png,team_logos/pittsburgh_steelers.png
59
- San Francisco 49ers,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,team_logos/san_francisco_49ers.png
60
- Seattle Seahawks,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png,team_logos/seattle_seahawks.png
61
- Tampa Bay Buccaneers,https://a.espncdn.com/i/teamlogos/nfl/500/tb.png,team_logos/tampa_bay_buccaneers.png
62
- Tennessee Titans,https://a.espncdn.com/i/teamlogos/nfl/500/ten.png,team_logos/tennessee_titans.png
63
- Washington Commanders,https://a.espncdn.com/i/teamlogos/nfl/500/wsh.png,team_logos/washington_commanders.png
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/nfl_team_logos_revised.csv DELETED
@@ -1,33 +0,0 @@
1
- team_name,logo_url,local_path
2
- Arizona Cardinals,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png,team_logos/arizona_cardinals.png
3
- Atlanta Falcons,https://a.espncdn.com/i/teamlogos/nfl/500/atl.png,team_logos/atlanta_falcons.png
4
- Baltimore Ravens,https://a.espncdn.com/i/teamlogos/nfl/500/bal.png,team_logos/baltimore_ravens.png
5
- Buffalo Bills,https://a.espncdn.com/i/teamlogos/nfl/500/buf.png,team_logos/buffalo_bills.png
6
- Carolina Panthers,https://a.espncdn.com/i/teamlogos/nfl/500/car.png,team_logos/carolina_panthers.png
7
- Chicago Bears,https://a.espncdn.com/i/teamlogos/nfl/500/chi.png,team_logos/chicago_bears.png
8
- Cincinnati Bengals,https://a.espncdn.com/i/teamlogos/nfl/500/cin.png,team_logos/cincinnati_bengals.png
9
- Cleveland Browns,https://a.espncdn.com/i/teamlogos/nfl/500/cle.png,team_logos/cleveland_browns.png
10
- Dallas Cowboys,https://a.espncdn.com/i/teamlogos/nfl/500/dal.png,team_logos/dallas_cowboys.png
11
- Denver Broncos,https://a.espncdn.com/i/teamlogos/nfl/500/den.png,team_logos/denver_broncos.png
12
- Detroit Lions,https://a.espncdn.com/i/teamlogos/nfl/500/det.png,team_logos/detroit_lions.png
13
- Green Bay Packers,https://a.espncdn.com/i/teamlogos/nfl/500/gb.png,team_logos/green_bay_packers.png
14
- Houston Texans,https://a.espncdn.com/i/teamlogos/nfl/500/hou.png,team_logos/houston_texans.png
15
- Indianapolis Colts,https://a.espncdn.com/i/teamlogos/nfl/500/ind.png,team_logos/indianapolis_colts.png
16
- Jacksonville Jaguars,https://a.espncdn.com/i/teamlogos/nfl/500/jax.png,team_logos/jacksonville_jaguars.png
17
- Kansas City Chiefs,https://a.espncdn.com/i/teamlogos/nfl/500/kc.png,team_logos/kansas_city_chiefs.png
18
- Las Vegas Raiders,https://a.espncdn.com/i/teamlogos/nfl/500/lv.png,team_logos/las_vegas_raiders.png
19
- Los Angeles Chargers,https://a.espncdn.com/i/teamlogos/nfl/500/lac.png,team_logos/los_angeles_chargers.png
20
- Los Angeles Rams,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png,team_logos/los_angeles_rams.png
21
- Miami Dolphins,https://a.espncdn.com/i/teamlogos/nfl/500/mia.png,team_logos/miami_dolphins.png
22
- Minnesota Vikings,https://a.espncdn.com/i/teamlogos/nfl/500/min.png,team_logos/minnesota_vikings.png
23
- New England Patriots,https://a.espncdn.com/i/teamlogos/nfl/500/ne.png,team_logos/new_england_patriots.png
24
- New Orleans Saints,https://a.espncdn.com/i/teamlogos/nfl/500/no.png,team_logos/new_orleans_saints.png
25
- New York Giants,https://a.espncdn.com/i/teamlogos/nfl/500/nyg.png,team_logos/new_york_giants.png
26
- New York Jets,https://a.espncdn.com/i/teamlogos/nfl/500/nyj.png,team_logos/new_york_jets.png
27
- Philadelphia Eagles,https://a.espncdn.com/i/teamlogos/nfl/500/phi.png,team_logos/philadelphia_eagles.png
28
- Pittsburgh Steelers,https://a.espncdn.com/i/teamlogos/nfl/500/pit.png,team_logos/pittsburgh_steelers.png
29
- San Francisco 49ers,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,team_logos/san_francisco_49ers.png
30
- Seattle Seahawks,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png,team_logos/seattle_seahawks.png
31
- Tampa Bay Buccaneers,https://a.espncdn.com/i/teamlogos/nfl/500/tb.png,team_logos/tampa_bay_buccaneers.png
32
- Tennessee Titans,https://a.espncdn.com/i/teamlogos/nfl/500/ten.png,team_logos/tennessee_titans.png
33
- Washington Commanders,https://a.espncdn.com/i/teamlogos/nfl/500/wsh.png,team_logos/washington_commanders.png
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/niners_players_headshots.csv DELETED
@@ -1,74 +0,0 @@
1
- name,headshot_url
2
- Israel Abanikanda,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png
3
- Brandon Aiyuk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png
4
- Isaac Alarcon,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg
5
- Evan Anderson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png
6
- Tre Avery,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg
7
- Alex Barrett,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/bm0ay22de39d1enrxwiq.jpg
8
- Ben Bartch,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg
9
- Robert Beal Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg
10
- Tatum Bethune,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png
11
- Nick Bosa,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg
12
- Jake Brendel,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg
13
- Ji'Ayir Brown,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg
14
- Tre Brown,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb
15
- Spencer Burford,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg
16
- Jacob Cowing,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png
17
- Kalia Davis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg
18
- Jordan Elliott,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg
19
- Luke Farrell,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla
20
- Russell Gage Jr.,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/lkqhshv0dss1b9c6mdnj
21
- Jonathan Garvin,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/rapfcxut6vu50vcevswe.png
22
- Luke Gifford,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn
23
- Kevin Givens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg
24
- Jalen Graham,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg
25
- Richie Grant,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd
26
- Renardo Green,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png
27
- Yetur Gross-Matos,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg
28
- Isaac Guerendo,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png
29
- Sebastian Gutierrez,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/am9sywgkga6jq65hvboe.jpg
30
- Matt Hennessy,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23
31
- Isaiah Hodgins,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg
32
- Drake Jackson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/y2luyplzpvbzokyfbmla.jpg
33
- Tarron Jackson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pnqrjp76bgpkmacxma3r
34
- Jauan Jennings,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg
35
- Quindell Johnson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb
36
- Zack Johnson,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/n4hy8uzhcl5cl0ricwoa
37
- Mac Jones,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko
38
- Kyle Juszczyk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ywdz6y2pfzndqgmxxfbj.jpg
39
- George Kittle,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg
40
- Deommodore Lenoir,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg
41
- Chase Lucas,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gjeejt5pbagnipodhdz4.jpg
42
- Darrell Luter Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg
43
- Jaylen Mahoney,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/yv9inbia05nyxppuajv0.png
44
- Christian McCaffrey,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg
45
- Jalen McKenzie,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg
46
- Colton McKivitz,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg
47
- Jake Moody,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg
48
- Tanner Mordecai,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/y8gipodnkeapgmegnxs1.png
49
- Malik Mustapha,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png
50
- Siran Neal,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/muhthfs6owkkpsyop1e6
51
- Drake Nugent,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/qyb4kurtbv9uflmupfnc.png
52
- George Odum,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg
53
- Sam Okuayinonu,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg
54
- Terique Owens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/okhin0uwdon2nimvbtwd.png
55
- Ricky Pearsall,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png
56
- Jason Pinnock,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt
57
- Austen Pleasants,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png
58
- Mason Pline,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/mvjlaxpu8bu33ohspqot.png
59
- Dominick Puni,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png
60
- Brock Purdy,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png
61
- Curtis Robinson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg
62
- Demarcus Robinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge
63
- Patrick Taylor Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg
64
- Trent Taylor,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/j8lom4fnsveujt8hykef.jpg
65
- Tre Tomlinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz
66
- Jake Tonges,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg
67
- Fred Warner,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg
68
- Jon Weeks,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf
69
- DaShaun White,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/mjnpmkw3ar6zcj2hxxzd
70
- Trent Williams,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg
71
- Brayden Willis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg
72
- Dee Winters,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg
73
- Mitch Wishnowsky,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg
74
- Nick Zakelj,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/niners_players_headshots_with_socials_merged.csv DELETED
@@ -1,74 +0,0 @@
1
- name,headshot_url,instagram_url,
2
- Israel Abanikanda,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png,https://www.instagram.com/izzygetsbusy__/?hl=en,
3
- Brandon Aiyuk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png,https://www.instagram.com/brandonaiyuk/?hl=en,
4
- Isaac Alarcon,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg,https://www.instagram.com/isaac_algar/?hl=en,
5
- Evan Anderson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png,https://www.instagram.com/klamps8/?hl=en,
6
- Tre Avery,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg,https://www.instagram.com/t.avery21/?hl=en,
7
- Alex Barrett,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/bm0ay22de39d1enrxwiq.jpg,https://www.instagram.com/alex.barrett/?hl=en,
8
- Ben Bartch,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg,https://www.instagram.com/bartchben/,
9
- Robert Beal Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg,https://www.instagram.com/oursf49ers/reel/C_CVQxxp2ti/,
10
- Tatum Bethune,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png,https://www.instagram.com/tatumx15/?hl=en,
11
- Nick Bosa,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg,https://www.instagram.com/nbsmallerbear/?hl=en,
12
- Jake Brendel,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg,https://www.instagram.com/jake.brendel/?hl=en,
13
- Ji'Ayir Brown,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg,https://www.instagram.com/_tiig/?hl=en,
14
- Tre Brown,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb,https://www.instagram.com/tre_brown25/?hl=en,
15
- Spencer Burford,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg,https://www.instagram.com/spence__74/?hl=en,
16
- Jacob Cowing,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png,https://www.instagram.com/jaycowing_/?hl=en,
17
- Kalia Davis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg,https://www.instagram.com/ucf.football/p/C3No6rTugDe/,
18
- Jordan Elliott,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg,https://www.instagram.com/jordanelliott_nbcs/,
19
- Luke Farrell,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla,https://www.instagram.com/lukefarrell89/?hl=en,
20
- Russell Gage Jr.,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/lkqhshv0dss1b9c6mdnj,https://www.instagram.com/w8k3mupruss/?hl=en,
21
- Jonathan Garvin,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/rapfcxut6vu50vcevswe.png,https://www.instagram.com/thesfniners/p/DCmgF8KSw2A/?hl=en,
22
- Luke Gifford,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn,https://www.instagram.com/luke_gifford/?hl=en,
23
- Kevin Givens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg,https://www.instagram.com/49ers/p/DAg_Pvpz1vV/,
24
- Jalen Graham,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg,https://www.instagram.com/thexniners/p/CruR8IPrSV7/,
25
- Richie Grant,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd,https://www.instagram.com/richiegrant_/?hl=en,
26
- Renardo Green,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png,https://www.instagram.com/dondada.8/?hl=en,
27
- Yetur Gross-Matos,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg,https://www.instagram.com/__lobo99/?hl=en,
28
- Isaac Guerendo,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png,https://www.instagram.com/isaac_guerendo/?hl=en,
29
- Sebastian Gutierrez,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/am9sywgkga6jq65hvboe.jpg,https://www.instagram.com/sebastiandev1/?hl=en,
30
- Matt Hennessy,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23,https://www.instagram.com/matt___hennessy/?hl=en,
31
- Isaiah Hodgins,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg,https://www.instagram.com/isaiahhodgins/?hl=en,
32
- Drake Jackson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/y2luyplzpvbzokyfbmla.jpg,https://www.instagram.com/thefreak/?hl=en,
33
- Tarron Jackson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pnqrjp76bgpkmacxma3r,https://www.instagram.com/tarron_jackson/?hl=en,
34
- Jauan Jennings,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg,https://www.instagram.com/u_aintjj/?hl=en,
35
- Quindell Johnson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb,https://www.instagram.com/p/DFGnwNlymc9/,
36
- Zack Johnson,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/n4hy8uzhcl5cl0ricwoa,https://www.instagram.com/zack.johnson.68/,
37
- Mac Jones,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko,https://www.instagram.com/macjones_10/?hl=en,
38
- Kyle Juszczyk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ywdz6y2pfzndqgmxxfbj.jpg,https://www.instagram.com/juicecheck44/?hl=en,
39
- George Kittle,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg,https://www.instagram.com/gkittle/?hl=en,
40
- Deommodore Lenoir,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg,https://www.instagram.com/deommo.lenoir/?hl=en,
41
- Chase Lucas,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gjeejt5pbagnipodhdz4.jpg,https://www.instagram.com/chase_lucas24/?hl=en,
42
- Darrell Luter Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg,https://www.instagram.com/_d.ray4k/?hl=en,
43
- Jaylen Mahoney,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/yv9inbia05nyxppuajv0.png,https://www.instagram.com/jaylenmahoney_/,
44
- Christian McCaffrey,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg,https://www.instagram.com/christianmccaffrey/?hl=en,
45
- Jalen McKenzie,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg,https://www.instagram.com/jay_peez70/?hl=en,
46
- Colton McKivitz,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg,https://www.instagram.com/cmckivitz53/?hl=en,
47
- Jake Moody,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg,https://www.instagram.com/jmoods_/?hl=en,
48
- Tanner Mordecai,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/y8gipodnkeapgmegnxs1.png,https://www.instagram.com/t_mordecai/?hl=en,
49
- Malik Mustapha,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png,https://www.instagram.com/stapha/,
50
- Siran Neal,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/muhthfs6owkkpsyop1e6,https://www.instagram.com/siranneal/?hl=en,
51
- Drake Nugent,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/qyb4kurtbv9uflmupfnc.png,https://www.instagram.com/drakenugent9/?hl=en,
52
- George Odum,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg,https://www.instagram.com/george.w.odum/?hl=en,
53
- Sam Okuayinonu,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg,https://www.instagram.com/sam.ok97/?hl=en,
54
- Terique Owens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/okhin0uwdon2nimvbtwd.png,https://www.instagram.com/terique_owens/?hl=en,
55
- Ricky Pearsall,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png,https://www.instagram.com/ricky.pearsall/?hl=en,
56
- Jason Pinnock,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt,https://www.instagram.com/jpinny15/?hl=en,
57
- Austen Pleasants,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png,https://www.instagram.com/oursf49ers/p/DDr48a4PdcO/?hl=en,
58
- Mason Pline,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/mvjlaxpu8bu33ohspqot.png,https://www.instagram.com/mpline12/?hl=en,
59
- Dominick Puni,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png,https://www.instagram.com/dompuni/?hl=en,
60
- Brock Purdy,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png,https://www.instagram.com/brock.purdy13/?hl=en,
61
- Curtis Robinson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg,https://www.instagram.com/curtis_robinsonn/?hl=en,
62
- Demarcus Robinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge,https://www.instagram.com/demarcusrobinson/?hl=en,
63
- Patrick Taylor Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg,https://www.instagram.com/patricktaylor/?hl=en,
64
- Trent Taylor,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/j8lom4fnsveujt8hykef.jpg,https://www.instagram.com/trent5taylor/?hl=en,
65
- Tre Tomlinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz,https://www.instagram.com/trevius/?hl=en,
66
- Jake Tonges,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg,https://www.instagram.com/jaketonges/?hl=en,
67
- Fred Warner,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg,https://www.instagram.com/fred_warner/?hl=en,
68
- Jon Weeks,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf,https://www.instagram.com/jonweeks46/?hl=en,
69
- DaShaun White,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/mjnpmkw3ar6zcj2hxxzd,https://www.instagram.com/demoeto/?hl=en,
70
- Trent Williams,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg,https://www.instagram.com/trentwilliams71/?hl=en,
71
- Brayden Willis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg,https://www.instagram.com/brayden_willis/?hl=en,
72
- Dee Winters,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg,https://www.instagram.com/dwints_/?hl=en,
73
- Mitch Wishnowsky,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg,https://www.instagram.com/mitchwish3/?hl=en,
74
- Nick Zakelj,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg,https://www.instagram.com/nickzakelj/?hl=en,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/niners_players_with_highlights.csv DELETED
@@ -1,74 +0,0 @@
1
- name,headshot_url,instagram_url,highlight_video_url
2
- Israel Abanikanda,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png,https://www.instagram.com/izzygetsbusy__/?hl=en,
3
- Brandon Aiyuk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png,https://www.instagram.com/brandonaiyuk/?hl=en,https://www.youtube.com/watch?v=TlAgJDpoOYk
4
- Isaac Alarcon,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg,https://www.instagram.com/isaac_algar/?hl=en,
5
- Evan Anderson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png,https://www.instagram.com/klamps8/?hl=en,
6
- Tre Avery,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg,https://www.instagram.com/t.avery21/?hl=en,
7
- Alex Barrett,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/bm0ay22de39d1enrxwiq.jpg,https://www.instagram.com/alex.barrett/?hl=en,
8
- Ben Bartch,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg,https://www.instagram.com/bartchben/,
9
- Robert Beal Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg,https://www.instagram.com/oursf49ers/reel/C_CVQxxp2ti/,
10
- Tatum Bethune,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png,https://www.instagram.com/tatumx15/?hl=en,
11
- Nick Bosa,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg,https://www.instagram.com/nbsmallerbear/?hl=en,https://www.youtube.com/watch?v=URvcwUEQYMw
12
- Jake Brendel,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg,https://www.instagram.com/jake.brendel/?hl=en,
13
- Ji'Ayir Brown,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg,https://www.instagram.com/_tiig/?hl=en,
14
- Tre Brown,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb,https://www.instagram.com/tre_brown25/?hl=en,
15
- Spencer Burford,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg,https://www.instagram.com/spence__74/?hl=en,
16
- Jacob Cowing,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png,https://www.instagram.com/jaycowing_/?hl=en,
17
- Kalia Davis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg,https://www.instagram.com/ucf.football/p/C3No6rTugDe/,https://www.youtube.com/watch?v=xE4jfmV7kGg
18
- Jordan Elliott,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg,https://www.instagram.com/jordanelliott_nbcs/,
19
- Luke Farrell,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla,https://www.instagram.com/lukefarrell89/?hl=en,
20
- Russell Gage Jr.,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/lkqhshv0dss1b9c6mdnj,https://www.instagram.com/w8k3mupruss/?hl=en,
21
- Jonathan Garvin,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/rapfcxut6vu50vcevswe.png,https://www.instagram.com/thesfniners/p/DCmgF8KSw2A/?hl=en,
22
- Luke Gifford,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn,https://www.instagram.com/luke_gifford/?hl=en,
23
- Kevin Givens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg,https://www.instagram.com/49ers/p/DAg_Pvpz1vV/,
24
- Jalen Graham,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg,https://www.instagram.com/thexniners/p/CruR8IPrSV7/,
25
- Richie Grant,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd,https://www.instagram.com/richiegrant_/?hl=en,
26
- Renardo Green,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png,https://www.instagram.com/dondada.8/?hl=en,https://www.youtube.com/watch?v=iIooO2pTjt4
27
- Yetur Gross-Matos,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg,https://www.instagram.com/__lobo99/?hl=en,
28
- Isaac Guerendo,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png,https://www.instagram.com/isaac_guerendo/?hl=en,
29
- Sebastian Gutierrez,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/am9sywgkga6jq65hvboe.jpg,https://www.instagram.com/sebastiandev1/?hl=en,
30
- Matt Hennessy,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23,https://www.instagram.com/matt___hennessy/?hl=en,
31
- Isaiah Hodgins,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg,https://www.instagram.com/isaiahhodgins/?hl=en,
32
- Drake Jackson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/y2luyplzpvbzokyfbmla.jpg,https://www.instagram.com/thefreak/?hl=en,
33
- Tarron Jackson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pnqrjp76bgpkmacxma3r,https://www.instagram.com/tarron_jackson/?hl=en,
34
- Jauan Jennings,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg,https://www.instagram.com/u_aintjj/?hl=en,https://www.youtube.com/watch?v=kFkNlmUQVu0
35
- Quindell Johnson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb,https://www.instagram.com/p/DFGnwNlymc9/,https://www.youtube.com/watch?v=VU2gRl8rgqw
36
- Zack Johnson,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/n4hy8uzhcl5cl0ricwoa,https://www.instagram.com/zack.johnson.68/,https://www.youtube.com/watch?v=yDAcyWJi6qQ
37
- Mac Jones,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko,https://www.instagram.com/macjones_10/?hl=en,https://www.youtube.com/watch?v=TylWJVa84VE
38
- Kyle Juszczyk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ywdz6y2pfzndqgmxxfbj.jpg,https://www.instagram.com/juicecheck44/?hl=en,https://www.youtube.com/watch?v=PZCVP0l8uVk
39
- George Kittle,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg,https://www.instagram.com/gkittle/?hl=en,https://www.youtube.com/watch?v=RzMVbATV95w
40
- Deommodore Lenoir,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg,https://www.instagram.com/deommo.lenoir/?hl=en,https://www.youtube.com/watch?v=h-uvula5tNo
41
- Chase Lucas,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gjeejt5pbagnipodhdz4.jpg,https://www.instagram.com/chase_lucas24/?hl=en,
42
- Darrell Luter Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg,https://www.instagram.com/_d.ray4k/?hl=en,
43
- Jaylen Mahoney,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/yv9inbia05nyxppuajv0.png,https://www.instagram.com/jaylenmahoney_/,
44
- Christian McCaffrey,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg,https://www.instagram.com/christianmccaffrey/?hl=en,https://www.youtube.com/watch?v=cu78Okf6VSo
45
- Jalen McKenzie,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg,https://www.instagram.com/jay_peez70/?hl=en,
46
- Colton McKivitz,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg,https://www.instagram.com/cmckivitz53/?hl=en,
47
- Jake Moody,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg,https://www.instagram.com/jmoods_/?hl=en,
48
- Tanner Mordecai,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/y8gipodnkeapgmegnxs1.png,https://www.instagram.com/t_mordecai/?hl=en,
49
- Malik Mustapha,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png,https://www.instagram.com/stapha/,
50
- Siran Neal,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/muhthfs6owkkpsyop1e6,https://www.instagram.com/siranneal/?hl=en,
51
- Drake Nugent,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/qyb4kurtbv9uflmupfnc.png,https://www.instagram.com/drakenugent9/?hl=en,
52
- George Odum,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg,https://www.instagram.com/george.w.odum/?hl=en,
53
- Sam Okuayinonu,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg,https://www.instagram.com/sam.ok97/?hl=en,
54
- Terique Owens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/okhin0uwdon2nimvbtwd.png,https://www.instagram.com/terique_owens/?hl=en,
55
- Ricky Pearsall,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png,https://www.instagram.com/ricky.pearsall/?hl=en,
56
- Jason Pinnock,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt,https://www.instagram.com/jpinny15/?hl=en,
57
- Austen Pleasants,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png,https://www.instagram.com/oursf49ers/p/DDr48a4PdcO/?hl=en,
58
- Mason Pline,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/mvjlaxpu8bu33ohspqot.png,https://www.instagram.com/mpline12/?hl=en,
59
- Dominick Puni,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png,https://www.instagram.com/dompuni/?hl=en,
60
- Brock Purdy,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png,https://www.instagram.com/brock.purdy13/?hl=en,https://www.youtube.com/watch?v=O-ft3FPYwiA
61
- Curtis Robinson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg,https://www.instagram.com/curtis_robinsonn/?hl=en,https://www.youtube.com/watch?v=8wyHHbXoFZI
62
- Demarcus Robinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge,https://www.instagram.com/demarcusrobinson/?hl=en,https://www.youtube.com/watch?v=1vwP8vs-mXI
63
- Patrick Taylor Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg,https://www.instagram.com/patricktaylor/?hl=en,
64
- Trent Taylor,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/j8lom4fnsveujt8hykef.jpg,https://www.instagram.com/trent5taylor/?hl=en,https://www.youtube.com/watch?v=kiEy31sL0co
65
- Tre Tomlinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz,https://www.instagram.com/trevius/?hl=en,
66
- Jake Tonges,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg,https://www.instagram.com/jaketonges/?hl=en,
67
- Fred Warner,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg,https://www.instagram.com/fred_warner/?hl=en,https://www.youtube.com/watch?v=IwBlFktlNwY
68
- Jon Weeks,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf,https://www.instagram.com/jonweeks46/?hl=en,https://www.youtube.com/watch?v=FO_iJ1IEOQU
69
- DaShaun White,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/mjnpmkw3ar6zcj2hxxzd,https://www.instagram.com/demoeto/?hl=en,https://www.youtube.com/watch?v=mk4aHkdYaUQ
70
- Trent Williams,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg,https://www.instagram.com/trentwilliams71/?hl=en,https://www.youtube.com/watch?v=k7FDcmcawL0
71
- Brayden Willis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg,https://www.instagram.com/brayden_willis/?hl=en,https://www.youtube.com/watch?v=3KNc8s3Xwos
72
- Dee Winters,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg,https://www.instagram.com/dwints_/?hl=en,
73
- Mitch Wishnowsky,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg,https://www.instagram.com/mitchwish3/?hl=en,https://www.youtube.com/watch?v=ZkH6eWs5Yd8
74
- Nick Zakelj,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg,https://www.instagram.com/nickzakelj/?hl=en,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/player_headshots.py DELETED
@@ -1,73 +0,0 @@
1
- import requests
2
- from bs4 import BeautifulSoup
3
- import csv
4
-
5
- ROSTER_URL = "https://www.49ers.com/team/players-roster/"
6
-
7
- def scrape_49ers_roster(output_csv='niners_players_headshots.csv'):
8
- """
9
- Scrapes the 49ers roster page for player data and saves to CSV.
10
- Extracts:
11
- - Name
12
- - Headshot Image URL
13
- """
14
- response = requests.get(ROSTER_URL)
15
- response.raise_for_status()
16
- soup = BeautifulSoup(response.text, 'html.parser')
17
-
18
- player_rows = soup.select('div.d3-o-table--horizontal-scroll tbody tr')
19
- if not player_rows:
20
- raise ValueError("No player rows found. The page structure may have changed.")
21
-
22
- roster_data = []
23
- for row in player_rows:
24
- try:
25
- # Extract player name and headshot
26
- player_cell = row.find('td')
27
- name_tag = player_cell.select_one('.nfl-o-roster__player-name')
28
- name = name_tag.get_text(strip=True) if name_tag else ""
29
-
30
- img_tag = player_cell.find('img')
31
- headshot_url = img_tag['src'] if img_tag and img_tag.get('src') else ""
32
-
33
- # Fix the URL by replacing t_lazy with t_thumb_squared_2x
34
- if headshot_url:
35
- headshot_url = headshot_url.replace('/t_thumb_squared/t_lazy/', '/t_thumb_squared_2x/')
36
-
37
- # Other stats (in order of table columns)
38
- # cells = row.find_all('td')
39
- # jersey_number = cells[1].get_text(strip=True) if len(cells) > 1 else ""
40
- # position = cells[2].get_text(strip=True) if len(cells) > 2 else ""
41
- # height = cells[3].get_text(strip=True) if len(cells) > 3 else ""
42
- # weight = cells[4].get_text(strip=True) if len(cells) > 4 else ""
43
- # age = cells[5].get_text(strip=True) if len(cells) > 5 else ""
44
- # experience = cells[6].get_text(strip=True) if len(cells) > 6 else ""
45
- # college = cells[7].get_text(strip=True) if len(cells) > 7 else ""
46
-
47
- roster_data.append({
48
- 'name': name,
49
- # 'jersey_number': jersey_number,
50
- # 'position': position,
51
- # 'height': height,
52
- # 'weight': weight,
53
- # 'age': age,
54
- # 'experience': experience,
55
- # 'college': college,
56
- 'headshot_url': headshot_url
57
- })
58
-
59
- except Exception as e:
60
- print(f"[WARNING] Skipping row due to error: {e}")
61
- continue
62
-
63
- # Save to CSV
64
- with open(output_csv, 'w', newline='', encoding='utf-8') as f:
65
- fieldnames = ['name', 'headshot_url']
66
- writer = csv.DictWriter(f, fieldnames=fieldnames)
67
- writer.writeheader()
68
- writer.writerows(roster_data)
69
-
70
- print(f"[INFO] Successfully saved {len(roster_data)} players to '{output_csv}'.")
71
-
72
- if __name__ == "__main__":
73
- scrape_49ers_roster()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/schedule_with_result_and_logo_urls.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,Home Team,Away Team,Result,game_result,home_team_logo_url,away_team_logo_url
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/nyj.png
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/min.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/ne.png
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/kc.png
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/dal.png
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,https://a.espncdn.com/i/teamlogos/nfl/500/tb.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/sea.png
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/gb.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/buf.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/chi.png
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/lar.png
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/mia.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png,https://a.espncdn.com/i/teamlogos/nfl/500/det.png
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,https://a.espncdn.com/i/teamlogos/nfl/500/ari.png,https://a.espncdn.com/i/teamlogos/nfl/500/sf.png
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/team_logos.py DELETED
@@ -1,298 +0,0 @@
1
- import requests
2
- from bs4 import BeautifulSoup
3
- import csv
4
- import os
5
- import time
6
- import re
7
- import json
8
- import logging
9
-
10
- # Set up logging
11
- logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
12
- logger = logging.getLogger(__name__)
13
-
14
- # Constants
15
- NFL_TEAMS_URL = "https://www.nfl.com/teams/"
16
- OUTPUT_DIR = "team_logos"
17
- CSV_OUTPUT = "nfl_team_logos.csv"
18
- EXPECTED_TEAM_COUNT = 32
19
-
20
- def ensure_output_dir(dir_path):
21
- """Ensure output directory exists"""
22
- if not os.path.exists(dir_path):
23
- os.makedirs(dir_path)
24
- logger.info(f"Created directory: {dir_path}")
25
-
26
- def download_image(url, file_path):
27
- """Download image from URL and save to file_path"""
28
- try:
29
- headers = {
30
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
31
- }
32
- response = requests.get(url, headers=headers, stream=True)
33
- response.raise_for_status()
34
-
35
- with open(file_path, 'wb') as f:
36
- for chunk in response.iter_content(chunk_size=8192):
37
- f.write(chunk)
38
-
39
- return True
40
- except Exception as e:
41
- logger.error(f"Failed to download image from {url}: {e}")
42
- return False
43
-
44
- def get_team_logo_urls():
45
- """
46
- Get team logo URLs directly from team pages.
47
- Returns a dictionary mapping team names to their logo URLs.
48
- """
49
- logger.info(f"Fetching team information from {NFL_TEAMS_URL}")
50
-
51
- headers = {
52
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
53
- }
54
-
55
- try:
56
- response = requests.get(NFL_TEAMS_URL, headers=headers)
57
- response.raise_for_status()
58
- except Exception as e:
59
- logger.error(f"Failed to fetch NFL teams page: {e}")
60
- return {}
61
-
62
- soup = BeautifulSoup(response.text, 'html.parser')
63
-
64
- # Find all team links
65
- team_links = []
66
- for a_tag in soup.find_all('a', href=True):
67
- if '/teams/' in a_tag['href'] and a_tag['href'].count('/') >= 3:
68
- # This looks like a team-specific link
69
- team_links.append(a_tag['href'])
70
-
71
- # Get unique team URLs
72
- team_urls = {}
73
- for link in team_links:
74
- # Extract team slug (e.g., 'cardinals', '49ers')
75
- match = re.search(r'/teams/([a-z0-9-]+)/?$', link)
76
- if match:
77
- team_slug = match.group(1)
78
- if team_slug not in team_urls:
79
- full_url = f"https://www.nfl.com{link}" if not link.startswith('http') else link
80
- team_urls[team_slug] = full_url
81
-
82
- logger.info(f"Found {len(team_urls)} unique team URLs")
83
-
84
- # Visit each team page to get the official logo
85
- team_logos = {}
86
- for slug, url in team_urls.items():
87
- try:
88
- logger.info(f"Visiting team page: {url}")
89
- team_response = requests.get(url, headers=headers)
90
- team_response.raise_for_status()
91
-
92
- team_soup = BeautifulSoup(team_response.text, 'html.parser')
93
-
94
- # Get team name from title
95
- title_tag = team_soup.find('title')
96
- if title_tag:
97
- title_text = title_tag.text
98
- team_name = title_text.split('|')[0].strip()
99
- if not team_name:
100
- team_name = slug.replace('-', ' ').title() # Fallback to slug
101
- else:
102
- team_name = slug.replace('-', ' ').title() # Fallback to slug
103
-
104
- # Look for team logo in various places
105
- logo_url = None
106
-
107
- # Method 1: Look for logo in meta tags (most reliable)
108
- og_image = team_soup.find('meta', property='og:image')
109
- if og_image and og_image.get('content'):
110
- logo_url = og_image.get('content')
111
-
112
- # Method 2: Look for team logos in certain image tags or SVGs
113
- if not logo_url:
114
- team_header = team_soup.find('div', class_=lambda c: c and ('team-header' in c or 'logo' in c))
115
- if team_header:
116
- img = team_header.find('img')
117
- if img and img.get('src'):
118
- logo_url = img.get('src')
119
-
120
- # Method 3: JavaScript data
121
- if not logo_url:
122
- scripts = team_soup.find_all('script')
123
- for script in scripts:
124
- if script.string and ('logo' in script.string.lower() or 'image' in script.string.lower()):
125
- # Try to extract JSON data with logo information
126
- json_matches = re.findall(r'({.*?"logo".*?})', script.string)
127
- for match in json_matches:
128
- try:
129
- data = json.loads(match)
130
- if 'logo' in data and isinstance(data['logo'], str):
131
- logo_url = data['logo']
132
- break
133
- except:
134
- continue
135
-
136
- # Method 4: Fallback to a known pattern based on team abbreviation
137
- if not logo_url and len(slug) > 2:
138
- # Some teams have standardized logo URLs with abbreviations
139
- team_abbr = slug[:2].upper() # Get first 2 chars as abbreviation
140
- logo_url = f"https://static.www.nfl.com/t_headshot_desktop/f_auto/league/api/clubs/logos/{team_abbr}"
141
-
142
- # If we found a logo, add it to our dictionary
143
- if logo_url:
144
- # If necessary, make the URL absolute
145
- if not logo_url.startswith('http'):
146
- logo_url = f"https://www.nfl.com{logo_url}" if logo_url.startswith('/') else f"https://www.nfl.com/{logo_url}"
147
-
148
- team_logos[team_name] = logo_url
149
- logger.info(f"Found logo for {team_name}: {logo_url}")
150
- else:
151
- logger.warning(f"Could not find logo URL for {team_name}")
152
-
153
- # Be polite with rate limiting
154
- time.sleep(1)
155
-
156
- except Exception as e:
157
- logger.error(f"Error processing team page {url}: {e}")
158
-
159
- logger.info(f"Found logos for {len(team_logos)} teams")
160
- return team_logos
161
-
162
- def download_team_logos():
163
- """Download NFL team logos and save to CSV"""
164
- logger.info("Starting NFL team logo download")
165
-
166
- # Ensure output directory exists
167
- ensure_output_dir(OUTPUT_DIR)
168
-
169
- # Get team logo URLs from team pages
170
- team_logos = get_team_logo_urls()
171
-
172
- # Use a backup approach for any missing teams
173
- if len(team_logos) < EXPECTED_TEAM_COUNT:
174
- logger.warning(f"Only found {len(team_logos)} team logos from web scraping. Using ESPN API as backup.")
175
- # We'll use ESPN's API to get team data including logos
176
- try:
177
- espn_url = "https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams"
178
- response = requests.get(espn_url)
179
- response.raise_for_status()
180
-
181
- espn_data = response.json()
182
- if 'sports' in espn_data and len(espn_data['sports']) > 0:
183
- if 'leagues' in espn_data['sports'][0] and len(espn_data['sports'][0]['leagues']) > 0:
184
- if 'teams' in espn_data['sports'][0]['leagues'][0]:
185
- for team_data in espn_data['sports'][0]['leagues'][0]['teams']:
186
- team = team_data.get('team', {})
187
- team_name = team.get('displayName')
188
- if team_name and team_name not in team_logos:
189
- logo_url = team.get('logos', [{}])[0].get('href')
190
- if logo_url:
191
- team_logos[team_name] = logo_url
192
- logger.info(f"Added {team_name} logo from ESPN API: {logo_url}")
193
- except Exception as e:
194
- logger.error(f"Error fetching from ESPN API: {e}")
195
-
196
- # If we still don't have enough teams, use a manually defined dictionary
197
- if len(team_logos) < EXPECTED_TEAM_COUNT:
198
- logger.warning(f"Still only have {len(team_logos)} teams. Adding manual definitions for missing teams.")
199
-
200
- # Standard team names that should be present
201
- standard_teams = [
202
- "Arizona Cardinals", "Atlanta Falcons", "Baltimore Ravens", "Buffalo Bills",
203
- "Carolina Panthers", "Chicago Bears", "Cincinnati Bengals", "Cleveland Browns",
204
- "Dallas Cowboys", "Denver Broncos", "Detroit Lions", "Green Bay Packers",
205
- "Houston Texans", "Indianapolis Colts", "Jacksonville Jaguars", "Kansas City Chiefs",
206
- "Las Vegas Raiders", "Los Angeles Chargers", "Los Angeles Rams", "Miami Dolphins",
207
- "Minnesota Vikings", "New England Patriots", "New Orleans Saints", "New York Giants",
208
- "New York Jets", "Philadelphia Eagles", "Pittsburgh Steelers", "San Francisco 49ers",
209
- "Seattle Seahawks", "Tampa Bay Buccaneers", "Tennessee Titans", "Washington Commanders"
210
- ]
211
-
212
- # Manual dictionary of team logos (use correct ones from NFL's CDN)
213
- manual_logos = {
214
- "Arizona Cardinals": "https://static.www.nfl.com/image/private/f_auto/league/u9fltoslqdsyao8cpm0k",
215
- "Atlanta Falcons": "https://static.www.nfl.com/image/private/f_auto/league/d8m7hzwsyzgg0smz7ifyj",
216
- "Baltimore Ravens": "https://static.www.nfl.com/image/private/f_auto/league/ucsdijmddsqcj1i9tddd",
217
- "Buffalo Bills": "https://static.www.nfl.com/image/private/f_auto/league/giphcy6ie9mxbnldntsf",
218
- "Carolina Panthers": "https://static.www.nfl.com/image/private/f_auto/league/ervfzgrqdpnc7lh5gqwq",
219
- "Chicago Bears": "https://static.www.nfl.com/image/private/f_auto/league/ra0poq2ivwyahbaq86d2",
220
- "Cincinnati Bengals": "https://static.www.nfl.com/image/private/f_auto/league/bpx88i8nw4nnabuq0oob",
221
- "Cleveland Browns": "https://static.www.nfl.com/image/private/f_auto/league/omlzo6n7dpxzbpwrqaak",
222
- "Dallas Cowboys": "https://static.www.nfl.com/image/private/f_auto/league/dxibuyxbk0b9ua5ih9hn",
223
- "Denver Broncos": "https://static.www.nfl.com/image/private/f_auto/league/t0p7m5cjdjy18rnzzqbx",
224
- "Detroit Lions": "https://static.www.nfl.com/image/private/f_auto/league/dhfidtn8jrumakbawoxz",
225
- "Green Bay Packers": "https://static.www.nfl.com/image/private/f_auto/league/q1l7xmkuuyrpdmnutkzf",
226
- "Houston Texans": "https://static.www.nfl.com/image/private/f_auto/league/bpx88i8nw4nnabuq0oob",
227
- "Indianapolis Colts": "https://static.www.nfl.com/image/private/f_auto/league/ketwqeuschqzjsllbid5",
228
- "Jacksonville Jaguars": "https://static.www.nfl.com/image/private/f_auto/league/bwl1nuab0n2bhi8nxiar",
229
- "Kansas City Chiefs": "https://static.www.nfl.com/image/private/f_auto/league/ujshjqvmnxce8m4obmvs",
230
- "Las Vegas Raiders": "https://static.www.nfl.com/image/private/f_auto/league/gzcojbzcyjgubgyb6xf2",
231
- "Los Angeles Chargers": "https://static.www.nfl.com/image/private/f_auto/league/dhfidtn8jrumakbawoxz",
232
- "Los Angeles Rams": "https://static.www.nfl.com/image/private/f_auto/league/rjxoqpjirhjvvitffvwh",
233
- "Miami Dolphins": "https://static.www.nfl.com/image/private/f_auto/league/lits6p8ycthy9to70bnt",
234
- "Minnesota Vikings": "https://static.www.nfl.com/image/private/f_auto/league/teguylrnqqmfcwxvcmmz",
235
- "New England Patriots": "https://static.www.nfl.com/image/private/f_auto/league/moyfxx3dq5pio4aiftnc",
236
- "New Orleans Saints": "https://static.www.nfl.com/image/private/f_auto/league/grhjkahghuebpwzo6kxn",
237
- "New York Giants": "https://static.www.nfl.com/image/private/f_auto/league/t6mhdmgizi6qhndh8b9p",
238
- "New York Jets": "https://static.www.nfl.com/image/private/f_auto/league/ekijosiae96gektbo1lj",
239
- "Philadelphia Eagles": "https://static.www.nfl.com/image/private/f_auto/league/puhrqgj71gobgmwb5g3p",
240
- "Pittsburgh Steelers": "https://static.www.nfl.com/image/private/f_auto/league/xujik9a3j8hl6jjumu25",
241
- "San Francisco 49ers": "https://static.www.nfl.com/image/private/f_auto/league/dxibuyxbk0b9ua5ih9hn",
242
- "Seattle Seahawks": "https://static.www.nfl.com/image/private/f_auto/league/gcytzwpjdzbpwnwxincg",
243
- "Tampa Bay Buccaneers": "https://static.www.nfl.com/image/private/f_auto/league/v8uqiualryypwqgvwcih",
244
- "Tennessee Titans": "https://static.www.nfl.com/image/private/f_auto/league/pln44vuzugjgipyidsre",
245
- "Washington Commanders": "https://static.www.nfl.com/image/private/f_auto/league/xymxwrxtyj9fhaegfwof"
246
- }
247
-
248
- # Fill in any missing teams with manual data
249
- for team_name in standard_teams:
250
- if team_name not in team_logos and team_name in manual_logos:
251
- team_logos[team_name] = manual_logos[team_name]
252
- logger.info(f"Added {team_name} logo from manual dictionary")
253
-
254
- # Process and download team logos
255
- results = []
256
- for team_name, logo_url in team_logos.items():
257
- # Create safe filename
258
- safe_name = team_name.replace(' ', '_').lower()
259
- file_extension = '.png' # Default to PNG
260
- filename = f"{safe_name}{file_extension}"
261
- local_path = os.path.join(OUTPUT_DIR, filename)
262
-
263
- # Download the logo
264
- logger.info(f"Downloading logo for {team_name} from {logo_url}")
265
- download_success = download_image(logo_url, local_path)
266
-
267
- if download_success:
268
- results.append({
269
- 'team_name': team_name,
270
- 'logo_url': logo_url,
271
- 'local_path': local_path
272
- })
273
- logger.info(f"Successfully downloaded logo for {team_name}")
274
- else:
275
- logger.error(f"Failed to download logo for {team_name}")
276
-
277
- # Add a small delay
278
- time.sleep(0.5)
279
-
280
- # Save to CSV
281
- with open(CSV_OUTPUT, 'w', newline='', encoding='utf-8') as f:
282
- fieldnames = ['team_name', 'logo_url', 'local_path']
283
- writer = csv.DictWriter(f, fieldnames=fieldnames)
284
- writer.writeheader()
285
- writer.writerows(results)
286
-
287
- logger.info(f"Successfully saved {len(results)} team logos out of {len(team_logos)} teams.")
288
- logger.info(f"CSV data saved to '{CSV_OUTPUT}'")
289
-
290
- if len(results) < EXPECTED_TEAM_COUNT:
291
- logger.warning(f"Only downloaded {len(results)} team logos, expected {EXPECTED_TEAM_COUNT}.")
292
- else:
293
- logger.info(f"SUCCESS! Downloaded all {EXPECTED_TEAM_COUNT} NFL team logos!")
294
-
295
- return results
296
-
297
- if __name__ == "__main__":
298
- download_team_logos()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/team_news_articles.csv DELETED
@@ -1,37 +0,0 @@
1
- Team_name,season,city,conference,division,logo_url,summary,topic,link_to_article
2
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are considering contingency plans for the upcoming NFL Draft due to their need for a defensive tackle after releasing Maliek Collins and Javon Hargrave. With the risk of other teams selecting top prospects before their picks, the 49ers are exploring acquiring Jon Franklin-Myers from the Denver Broncos. Franklin-Myers, a reliable defensive player with strong run defense skills, could be a valuable addition, reducing pressure on drafted rookies. As he enters the final year of his contract, the 49ers could acquire him for a Day 3 pick, allowing them to focus on other positions in the early rounds of the draft.","San Francisco 49ers Roster, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/17/24410197/49ers-robert-saleh-john-franklin-myers-javon-hargrave-maliek-collins
3
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The article explores the possibility of the San Francisco 49ers trading up in the draft, considering scenarios where they could secure top prospects like Travis Hunter or Abdul Carter. If the 49ers trade with the Giants for the third pick, they could potentially select Carter to bolster their defense alongside Nick Bosa. Alternatively, if Carter is taken by Cleveland, Hunter could be a strong addition for both defensive and offensive versatility. The article also discusses a smaller trade-up option with Carolina at the eighth pick, contingent on the availability of key players like Mason Graham or Jalon Walker, emphasizing the risks and potential rewards of trading up in the draft.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/17/24410294/49ers-armand-membou-will-campbell-mason-graham
4
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers hosted linebacker Chris ""Pooh"" Paul Jr., who previously played for Arkansas and Ole Miss, where he earned second-team All-SEC and third-team All-American honors. Despite being smaller than typical linebackers, Paul Jr. has shown athleticism and tackling ability, but struggles with taking on blocks. The 49ers have previously selected smaller linebackers like Dee Winters, indicating a preference for speed and physicality over size. For Paul Jr. to succeed, especially as a run defender, the 49ers would need to strengthen their defensive line to keep him clean from blockers.","San Francisco 49ers Mock Drafts, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/17/24410527/49ers-fred-warner-chris-paul-dee-winters
5
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The 49ers are exploring options to strengthen their linebacker position, hosting Ole Miss' Chris Paul, a third-team All-American and Butkus Award finalist, and Oregon's Jeffrey Bassa, both projected mid-round draft picks. The team is leveraging their success in selecting players like Dre Greenlaw and Fred Warner in similar draft rounds. Additionally, the 49ers are evaluating other prospects, including offensive linemen, a wide receiver, and a cornerback, ahead of the 2025 NFL Draft. Meanwhile, offensive lineman Alarcón, signed in January 2024, has been suspended for six games.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/17/24410172/49ers-news-nfl-draft-prospect-visits-top-30-john-lynch-defensive-offensive-linemen-offseason-brock
6
- San Francisco 49ers,2025,San Francisco,NFC,West,,"San Francisco 49ers offensive tackle Isaac Alarcon has been suspended without pay for the first six games of the 2025 regular season due to a violation of the NFL’s Performance-Enhancing Substances Policy. Despite the suspension, Alarcon can still participate in offseason activities and preseason games. His absence is not expected to significantly impact the 49ers' depth chart, as the team has several other tackles on the roster. Alarcon, part of the NFL’s International Player Pathway Program, has yet to play a regular-season snap for the team.","San Francisco 49ers Roster, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24410021/49ers-isaac-alacron-colton-mckivitiz-kyle-shanahan-trent-williams
7
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers released several defensive linemen this offseason, leaving Nick Bosa as the only remaining starter. The team plans to draft multiple defensive linemen, but it's unlikely they will start three rookies alongside Bosa. Among the current players, Yetur Gross-Matos, Sam Okuayinonu, Kalia Davis, and Drake Jackson are potential candidates to step up. Gross-Matos and Okuayinonu have shown potential, while Evan Anderson could contribute in a rotational role.","San Francisco 49ers Roster, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24409910/49ers-yetur-gross-matos-sam-okuayinonu-robert-beal
8
- San Francisco 49ers,2025,San Francisco,NFC,West,,"With the 2025 NFL Draft approaching, the San Francisco 49ers hold the No. 11 overall pick and are evaluating potential selections, particularly at the tight end position. Michigan's Colston Loveland and LSU's Mason Taylor are top prospects, with Loveland being a potential first-round choice if the team trades down, despite past injury concerns. Other tight end prospects like Bowling Green's Harold Fannin, Georgia Tech's Jackson Hawes, and Texas Tech's Jalin Conyers have also been considered for later rounds, offering various skills in pass-catching and blocking. The 49ers are seeking a long-term successor to George Kittle, as well as potential cost-effective options in free agency.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24409848/san-francisco-49ers-realistic-targets-tight-end-2025-nfl-draft-colston-loveland-mason-taylor
9
- San Francisco 49ers,2025,San Francisco,NFC,West,,"As the NFL draft approaches, the San Francisco 49ers are poised to benefit from potential early quarterback selections, allowing a premium player to fall to them at pick 11. Bleacher Report's mock draft predicts the 49ers will select Penn State tight end Tyler Warren, forming a formidable duo with George Kittle and offering long-term offensive dynamism. The 49ers are also projected to strengthen their offensive line with Josh Conerly from Oregon and bolster their defensive line with T.J. Sanders from South Carolina. These picks aim to address both immediate and future team needs.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24409746/49ers-load-up-on-offense-in-latest-3-round-mock-draft-tyler-warren-tj-sanders-bleacher-report
10
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers have key roster needs in the offensive and defensive lines, with cornerback as a close third, as the NFL Draft approaches. Betting odds suggest high likelihoods for players like OT Josh Simmons and DT Mason Graham to be first-round picks, while others like CB Maxwell Hairston and Edge James Pearce Jr. also have strong chances. Fourteen prospects are considered for the 49ers' 11th pick, with potential for trade moves depending on draft developments.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24408997/49ers-mock-draft-fan-duel-odds
11
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The 49ers are focusing on strengthening their offensive line in the 2025 NFL Draft and are hosting Ohio State tackle Josh Simmons for a visit. Simmons is considered a potential successor to their current left tackle, Trent Williams, who is nearing the end of his career. Despite his impressive performance at Ohio State, Simmons' recent knee injury is a concern, and the 49ers are thoroughly evaluating his condition. If satisfied with his recovery, Simmons could be a key future asset for the team.","NFL, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/16/24409650/49ers-hosting-visit-potential-trent-williams-successor-one-significant-red-flag
12
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The 49ers are exploring options to enhance their roster depth, particularly at running back and offensive tackle. They are considering SMU’s Brashard Smith, a versatile player with impressive all-purpose yardage, and LSU's Will Campbell, a strong left tackle prospect. The team is also evaluating potential draft picks in other positions, including Virginia Tech wideout Felton, Cal linebacker Teddye Buchanan, and several defensive backs like Quincy Riley and Mello Dotson. These prospects offer a range of skills that could address the team's needs in both offensive and defensive roles.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/16/24409398/49ers-news-offseason-mock-draft-defensive-tackle-running-back-deebo-samuel-replacement-nfl-lynch
13
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers hold the No. 11 pick in the upcoming 2025 NFL Draft and are considered a potential wild-card team due to their draft strategy flexibility. ESPN’s Field Yates suggests they could trade up if certain scenarios unfold, such as Colorado quarterback Shedeur Sanders being picked third overall. This could push top offensive tackles down the board, tempting the 49ers to address their significant offensive line needs by leapfrogging teams like the Chicago Bears. With 11 picks, including four in the Top 100, San Francisco has the draft capital to make such a move, though it remains uncertain if they will do so.","San Francisco 49ers Mock Drafts, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/15/24409188/san-francisco-49ers-top-trade-up-candidate-round-1-2025-nfl-draft-espn-kyle-shanahan-john-lynch
14
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are focusing on drafting an impact defensive lineman with their first-round pick, particularly at pick 11, to bolster their defensive line alongside Nick Bosa. With the departures of key players like Javon Hargrave and Leonard Floyd, the team aims to find a three-down player to enhance their pass rush and return to their successful defensive strategies of the past. The 49ers are considering prospects like Mason Graham and Kenneth Grant, emphasizing the need for an immediate contributor due to past struggles with first-round picks. The team's strategy is driven by the return of Robert Saleh as defensive coordinator and the development work of Kris Kocurek.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/15/24409069/the-49ers-must-return-to-their-pass-rushing-roots-in-2025-nfl-draft-robert-saleh
15
- San Francisco 49ers,2025,San Francisco,NFC,West,,"In a mock draft by ESPN's Mel Kiper Jr. and Field Yates, the San Francisco 49ers selected Kelvin Banks Jr., an offensive tackle from Texas, at No. 11, addressing future needs on the offensive line. In the second round, they picked James Pearce Jr., an edge rusher from Tennessee, to enhance pass-rush depth, despite concerns about his motor. The third round saw the selection of Alfred Collins, a defensive tackle from Texas, to bolster the defensive line, and Upton Stout, a cornerback from Western Kentucky, to strengthen the secondary. Each pick aimed to address specific team needs with a mix of immediate impact and developmental potential.","San Francisco 49ers Mock Drafts, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/15/24408996/49ers-james-pearce-kelvin-banks-upton-stout-alfred-collins
16
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The Miami Dolphins and cornerback Jalen Ramsey are exploring trade options, despite Ramsey signing a contract extension in September 2024. The Dolphins would absorb most of his contract's financial burden if traded, making it feasible for another team, like the 49ers, to acquire him. The 49ers, familiar with Ramsey through past coaching connections, could benefit from his experience and leadership, especially given their need for an established veteran in the secondary. Ramsey, still performing at a high level, would likely cost the 49ers no more than a third-round pick, making him a valuable addition to their roster.","NFL, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/15/24408922/49ers-jalen-ramsey-robert-saleh-gus-bradley
17
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers, holding the No. 11 overall pick in the 2025 NFL Draft, are unlikely to select a wide receiver early due to other pressing team needs and the lack of a consensus top receiver. However, they are exploring wide receiver options for Day 2 and beyond, with prospects like Iowa State's Jayden Higgins, TCU's Savion Williams, Washington State's Kyle Williams, UNLV's Ricky White, and Tennessee's Dont’e Thornton being considered. Each prospect offers unique skills, such as Higgins' size and athleticism, Savion Williams' potential for versatility, Kyle Williams' speed, White's route-running abilities, and Thornton's vertical threat, which could complement the 49ers' existing roster needs","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/15/24408628/san-francisco-49ers-realistic-targets-wide-receivers-2025-nfl-draft-jayden-higgins-savion-williams
18
- San Francisco 49ers,2025,San Francisco,NFC,West,,"Baldinger identifies James Pearce Jr. as an ideal first-round pick for the 49ers, highlighting his elite athleticism and ability to collapse the pocket, as evidenced by his impressive performance metrics and high grades from Pro Football Focus. The 49ers are also exploring other prospects, hosting Toledo DT Darius Alexander, known for his versatility, and Ole Miss LB Chris Paul Jr. for pre-draft visits. Additionally, Tennessee DT Omari Thomas, noted for his versatility and leadership, has met with the team, showcasing his ability to play multiple defensive positions.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/15/24408720/49ers-news-mock-draft-defensive-linemen-pre-visit-hosting-meeting-kyle-kris-robert-saleh-brock-purdy
19
- San Francisco 49ers,2025,San Francisco,NFC,West,,"With the 2025 NFL Draft approaching, a new mock draft predicts the San Francisco 49ers will trade down from their No. 11 pick to No. 14, selecting Texas A&M defensive lineman Shemar Stewart. At No. 42, they choose Notre Dame cornerback Benjamin Morrison, contingent on his recovery from a hip injury. The 49ers also plan to bolster their defensive line with Collins in the third round and add versatility in the secondary by picking Texas safety Andrew Mukuba at No. 80. Finally, they aim to secure linebacker depth by selecting Chris Paul Jr. at No. 100, potentially as Dre Greenlaw's future replacement.","San Francisco 49ers Mock Drafts, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24408361/san-francisco-49ers-3-round-mock-draft-shemar-stewart-defense-wins-championships-kyle-shanahan
20
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are considering Toledo defensive tackle Darius Alexander during their pre-draft visits. Known for his elite pass rush win rate and athleticism, Alexander consistently performs as a 3-technique, offering solid run defense and disruptive pass-rushing plays. While his ceiling may not be the highest, he is reliable in his performance. If drafted, Alexander would likely be a second-round pick at No. 43 overall, fitting the team's potential shift towards more powerful defensive tackles.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24408266/49ers-darius-alexander-robert-saleh-nfl-draft
21
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are focusing on acing their upcoming draft to address roster age and cap issues, especially after a disappointing season with significant player departures. Despite previous success in later draft rounds, the team is under pressure to find impactful first-round talent, particularly for their lines of scrimmage. With 11 draft picks, including the 11th overall, the 49ers aim to secure key players to fill gaps on both the offensive and defensive lines. The team also faces challenges with minimal offseason additions and ongoing contract negotiations with QB Brock Purdy.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24408255/49ers-need-to-ace-their-nfl-draft-john-lynch-kyle-shanahan
22
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are set to meet with Washington State wide receiver Kyle Williams, a prospect from the Senior Bowl. Williams had a standout year in 2024 with 70 receptions, 1,196 yards, and 14 touchdowns, but concerns remain about his suitability for the NFL due to his small stature and limited route-running skills. Despite his speed, his college offense was simplistic, and his ability to transition to the professional level is questionable. Some suggest that another player, Jacob Cowing, might be a more promising prospect.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24408194/49ers-kyle-williams-washington-state-jacob-cowing-nfl-draft
23
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers, with 11 draft picks, are considering trade-back options in the upcoming draft to address their needs after a disappointing 6-11 season. If top targets like Mason Graham, Armand Membou, and Will Campbell are unavailable, the team could trade back from the 11th pick, potentially targeting Boise State running back Ashton Jeanty as a trade asset. A deal with Denver, moving to the 20th pick and gaining an additional second-round pick, is one possibility. This strategy would allow the 49ers to acquire more selections without significantly dropping in the draft order, providing flexibility to compete for the Lombardi Trophy in 2025.","San Francisco 49ers Roster, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24407798/49ers-draft-scenarios-trade-back-walter-nolen
24
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers face significant roster turnover heading into the 2025 NFL Draft, needing to replace 16.6% of their snaps, the fourth-highest in the league. While the offense remains mostly stable, losing only 10.5% of snaps, the defense will undergo major changes, with 22.6% of its snaps needing replacement. Key defensive players like De’Vondre Campbell, Maliek Collins, and Charvarius Ward will be replaced, impacting positions such as linebacker, defensive tackle, and cornerback. Additionally, improvements in special teams are anticipated, given the previous season's underperformance.","San Francisco 49ers Roster, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/14/24407808/49ers-leonard-floyd-charvarius-ward-talanoa-hufanga
25
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The NFL plans to release the full 2025 schedule around May 13-15, according to Mike North, the league's VP of broadcast planning and scheduling. Meanwhile, the San Francisco 49ers are conducting Top 30 pre-draft visits to evaluate prospects for the 2025 NFL Draft, with updates on these visits being tracked.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/14/24407898/49ers-news-schedule-release-offseason-pre-draft-visit-tracker-prospects-brock-purdy-brandon-aiyuk
26
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The 49ers are considering selecting Texas' Jahdae Barron in the 2024 NFL Draft to bolster their secondary, despite having more pressing needs on the defensive line. Barron, known for his versatility and superb ball skills, could provide significant long-term benefits to the 49ers' defensive backfield. His ability to play multiple positions, including outside corner, slot, and safety, offers the team flexibility and potential strategic advantages. While the 49ers have traditionally focused on strengthening their defensive front, adding Barron could enhance their secondary's playmaking capabilities and overall defensive strategy.","San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/13/24407322/would-jahdae-barron-make-sense-49ers-surprise-selection-no-11-2025-draft
27
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The 49ers are considering several prospects for the NFL draft, including Ezeiruaku, an edge rusher known for his effective use of 34-inch arms and impressive college stats of 47 tackles for loss and 30 sacks over four seasons. Despite his slightly smaller size for a 4-3 defensive end, he demonstrates good explosiveness and balance. They also met with Georgia DT Warren Brinson, who has consistently high defensive grades, and WR prospect Mumpfield, noted for his exceptional route running and ability to make contested catches.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/13/24407284/49ers-news-pre-draft-visit-prospects-mock-aiyuk-brock-purdy-contract-trade-offseason-kyle-jed-john
28
- San Francisco 49ers,2025,San Francisco,NFC,West,,"Tom Brady is collaborating with AMC Networks and several production companies to create a docuseries titled ""Gold Rush,"" set to premiere in 2026, which will explore the San Francisco 49ers' impact on the NFL. The series will feature interviews with 49ers legends and previously unseen NFL Films footage. Meanwhile, the 49ers are strategizing on how to replace linebacker Dre Greenlaw, considering several draft prospects. Additionally, a potential shoulder surgery for Saints quarterback Derek Carr could influence the 49ers' draft options by shifting available prospects.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/12/24406730/49ers-news-offseason-mock-draft-pre-visits-prospects-derek-carr-injury-shoulder-surgery-brock-aiyuk
29
- San Francisco 49ers,2025,San Francisco,NFC,West,,"George Kittle, a star NFL player for the San Francisco 49ers, is a lifelong wrestling enthusiast who has actively blended his love for football and wrestling. He made a notable appearance at WrestleMania 39, where he got involved in the action by clotheslining The Miz, thrilling the crowd. Kittle continues to celebrate his passion for wrestling by hosting ""KittleMania,"" a fan event in Las Vegas, and collaborating with WWE star Penta El Zero Miedo on a wrestling-inspired clothing line. Although he remains focused on football, Kittle has not ruled out a future in WWE, and his charisma and passion make him a natural fit for the wrestling world.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/11/24405991/49ers-tight-end-to-turnbuckle-george-kittles-epic-wrestling-journey
30
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers, under Kyle Shanahan and John Lynch, have had a mixed draft record with notable successes like Brock Purdy and George Kittle, but also some first-round misses. Despite not having first-round picks in 2022 and 2023, their overall draft performance over the last decade ranks them eighth according to Betway's analysis, with a score of 30.7 out of 100. The rankings place them behind recent Super Bowl winners like the Chiefs and Rams. The upcoming 2025 draft is crucial for the 49ers to enhance their roster and maintain competitiveness.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/11/24406301/49ers-last-10-years-in-the-nfl-draft-trent-baalke-john-lynch
31
- San Francisco 49ers,2025,San Francisco,NFC,West,,"As the 2025 NFL Draft approaches, the San Francisco 49ers are conducting their Top-30 visits to evaluate potential draft picks. These visits focus on key areas such as the defensive line, secondary, tight end, and offensive line, indicating the team's strategic priorities. The inclusion of prospects like Walter Nolen and Omarr Norman-Lott suggests a focus on enhancing the pass rush and run defense, while engagements with cornerbacks and safeties aim to bolster the defensive backfield. Additionally, the team is exploring options for depth at tight end and offensive positions, reflecting a comprehensive strategy to strengthen their roster.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/11/24405659/49ers-draft-strategy-by-looking-at-their-top-30-visits
32
- San Francisco 49ers,2025,San Francisco,NFC,West,,"In the 2024 NFL Draft, the San Francisco 49ers are expected to prioritize adding a pass catcher due to the trade of Deebo Samuel and uncertainty around Brandon Aiyuk's return. The team has a history of drafting wide receivers and tight ends, and this year's class offers a variety of options in both positions. The article suggests that while dynamic tight ends are available, the 49ers might find value in selecting wide receivers like Bond or Horton in the fourth round. The team is likely to explore options beyond the early rounds to enhance their depth chart.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/11/24405840/49ers-savion-williams-jaylin-noel-jack-bech-jacob-cowing
33
- San Francisco 49ers,2025,San Francisco,NFC,West,,"Stanford wide receiver Elic Ayomanor is appealing to the 49ers, highlighting his strength, speed, and blocking abilities as a good fit for their team. San Jose State's Nash, a prolific college receiver, is seen as a potential fifth-round pick due to his slot receiver experience and lack of breakaway speed, despite his physicality and late switch to the position. Washington State's Pole, a quick learner with a basketball background, excelled as a left tackle, not allowing any sacks last season. Louisville's Quincy Riley and Georgia Tech's Jackson Hawes are among other prospects visiting the 49ers, while veteran kicker Gay, known for his accuracy inside 50 yards, could compete with Moody.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/11/24405927/49ers-news-brock-purdy-contract-extension-mock-draft-nfl-prospects-stanford-visits-agents-trade
34
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are expected to heavily invest in their defensive line during the 2025 NFL Draft, but their strategy for the offensive line remains uncertain. With Trent Williams recovering from an injury-plagued season and no clear successor, the team would benefit from drafting a tackle early. However, head coach Kyle Shanahan has suggested that Spencer Burford, a versatile 2022 draft pick, might fill the role of swing tackle despite his previous challenges. If the 49ers do not select a tackle by day three of the draft, it may indicate confidence in Burford as a backup for both Williams and Colton McKivitz.","NFL, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/10/24405550/49ers-belief-2022-selection-influence-plans-premium-position-2025-draft
35
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers are preparing for the 2025 NFL Draft, where they hold the 11th overall pick. In a mock draft scenario, they trade down with the Tampa Bay Buccaneers to acquire an extra third-round pick, selecting Missouri's Armand Membou as a future franchise left tackle at No. 11. They further bolster their defensive line by drafting T.J. Sanders and Darius Alexander, addressing key needs following departures in that area. Additionally, they select Michigan defensive end Josiah Stewart and Clemson linebacker Barrett Carter to strengthen their roster with high-upside talent.","San Francisco 49ers Mock Drafts, San Francisco 49ers Draft, San Francisco 49ers News",https://www.ninersnation.com/2025/4/10/24405644/san-francisco-49ers-news-3-round-mock-draft-armand-membou-will-johnson-2025-nfl-draft
36
- San Francisco 49ers,2025,San Francisco,NFC,West,,"The San Francisco 49ers, once a perennial NFC title contender, faced a challenging 2024 season with only six wins, largely due to injuries and coaching issues. Key players like Brandon Aiyuk, Trent Williams, and Christian McCaffrey were sidelined, and the team struggled with a poor special teams unit and a change in defensive coordinators. With several key defensive players departing, the 49ers are focusing on rebuilding through the 2025 NFL Draft, targeting needs on the defensive line and other positions. Despite setbacks, there is optimism for the future, highlighted by strong performances from George Kittle and the rookie class.","San Francisco 49ers Draft, San Francisco 49ers Depth Chart, San Francisco 49ers News",https://www.ninersnation.com/2025/4/10/24405441/49ers-news-what-is-the-state-of-the-49ers-franchise
37
- San Francisco 49ers,2025,San Francisco,NFC,West,,"AMC Networks will premiere ""Gold Rush,"" a four-part docuseries exploring the history and legacy of the San Francisco 49ers. The series will include exclusive interviews with players, coaches, and executives, providing insights into the team's evolution from its early days to its current status in the NFL. This announcement comes as interest in sports documentaries grows, with previous documentaries on the 49ers already available. While the premiere date is not yet announced, anticipation is high among fans eager to learn more about the team's storied past.",San Francisco 49ers News,https://www.ninersnation.com/2025/4/10/24405108/four-part-49ers-documentary-in-the-works-at-amc-networks-tom-brady
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/team_news_scraper.py DELETED
@@ -1,370 +0,0 @@
1
- import os
2
- import csv
3
- import time
4
- from datetime import datetime, timedelta, timezone
5
- import requests
6
- from bs4 import BeautifulSoup
7
- from dotenv import load_dotenv
8
- import openai # Added for LLM Summarization
9
-
10
- # Load environment variables (for API keys)
11
- load_dotenv()
12
- OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
13
- OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o") # Default to gpt-4o if not set
14
-
15
- if not OPENAI_API_KEY:
16
- print("Warning: OPENAI_API_KEY not found in environment variables. Summarization will be skipped.")
17
- # Or raise an error if summarization is critical:
18
- # raise ValueError("OPENAI_API_KEY environment variable is required for summarization.")
19
-
20
- TARGET_URL = "https://www.ninersnation.com/san-francisco-49ers-news"
21
- OUTPUT_CSV_FILE = "team_news_articles.csv"
22
- DAYS_TO_SCRAPE = 60 # Scrape articles from the past 60 days
23
- REQUEST_DELAY = 1 # Delay in seconds between requests to be polite
24
-
25
- # Add a flag to enable/disable summarization easily
26
- ENABLE_SUMMARIZATION = True if OPENAI_API_KEY else False
27
-
28
- def fetch_html(url):
29
- """Fetches HTML content from a URL with error handling."""
30
- try:
31
- response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'}) # Basic user-agent
32
- response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
33
- return response.text
34
- except requests.exceptions.RequestException as e:
35
- print(f"Error fetching {url}: {e}")
36
- return None
37
-
38
- def parse_article_list(html_content):
39
- """Parses the main news page to find article links and dates."""
40
- print("Parsing article list page...")
41
- soup = BeautifulSoup(html_content, 'html.parser')
42
- articles = []
43
- # SBNation common structure: find compact entry boxes
44
- # Note: Class names might change, may need adjustment if scraping fails.
45
- article_elements = soup.find_all('div', class_='c-entry-box--compact')
46
- if not article_elements:
47
- # Fallback: Try another common pattern if the first fails
48
- article_elements = soup.find_all('div', class_='p-entry-box')
49
-
50
- print(f"Found {len(article_elements)} potential article elements.")
51
-
52
- for elem in article_elements:
53
- # Find the main link within the heading
54
- heading = elem.find('h2')
55
- link_tag = heading.find('a', href=True) if heading else None
56
-
57
- # Find the time tag for publication date
58
- time_tag = elem.find('time', datetime=True)
59
-
60
- if link_tag and time_tag and link_tag['href']:
61
- url = link_tag['href']
62
- # Ensure the URL is absolute
63
- if not url.startswith('http'):
64
- # Attempt to join with base URL (requires knowing the base, careful with relative paths)
65
- # For now, we'll rely on SBNation typically using absolute URLs or full paths
66
- # from urllib.parse import urljoin
67
- # base_url = "https://www.ninersnation.com"
68
- # url = urljoin(base_url, url)
69
- # Let's assume they are absolute for now based on typical SBNation structure
70
- print(f"Warning: Found potentially relative URL: {url}. Skipping for now.")
71
- continue # Skip potentially relative URLs
72
-
73
- date_str = time_tag['datetime'] # e.g., "2024-05-20T10:00:00-07:00"
74
- if url and date_str:
75
- articles.append((url, date_str))
76
- else:
77
- print("Skipping element: Couldn't find link or time tag.") # Debugging
78
-
79
- print(f"Extracted {len(articles)} articles with URL and date.")
80
- return articles
81
-
82
- def parse_article_details(html_content, url):
83
- """Parses an individual article page to extract details including raw content."""
84
- print(f"Parsing article details for: {url}")
85
- soup = BeautifulSoup(html_content, 'html.parser')
86
-
87
- details = {
88
- "title": None,
89
- "content": None, # This will store the raw content for summarization
90
- "publication_date": None,
91
- "link_to_article": url,
92
- "tags": []
93
- }
94
-
95
- # Extract Title (Usually the main H1)
96
- title_tag = soup.find('h1') # Find the first H1
97
- if title_tag:
98
- details['title'] = title_tag.get_text(strip=True)
99
- else:
100
- print(f"Warning: Title tag (h1) not found for {url}")
101
-
102
- # Extract Publication Date (Look for time tag in byline)
103
- # SBNation often uses <span class="c-byline__item"><time ...></span>
104
- byline_time_tag = soup.find('span', class_='c-byline__item')
105
- time_tag = byline_time_tag.find('time', datetime=True) if byline_time_tag else None
106
- if time_tag and time_tag.get('datetime'):
107
- details['publication_date'] = time_tag['datetime']
108
- else:
109
- # Fallback: Search for any time tag with datetime attribute if specific class fails
110
- time_tag = soup.find('time', datetime=True)
111
- if time_tag and time_tag.get('datetime'):
112
- details['publication_date'] = time_tag['datetime']
113
- else:
114
- print(f"Warning: Publication date tag (time[datetime]) not found for {url}")
115
-
116
- # Extract Content (Paragraphs within the main content div)
117
- content_div = soup.find('div', class_='c-entry-content')
118
- if content_div:
119
- paragraphs = content_div.find_all('p')
120
- # Join non-empty paragraphs, ensuring None safety
121
- # Store this raw content for potential summarization
122
- details['content'] = '\n\n'.join([p.get_text(strip=True) for p in paragraphs if p.get_text(strip=True)])
123
- else:
124
- print(f"Warning: Content div (div.c-entry-content) not found for {url}")
125
-
126
- # Extract Tags (Look for tags/labels, e.g., under "Filed under:")
127
- # SBNation often uses a ul/div with class like 'c-entry-group-labels' or 'c-entry-tags'
128
- tags_container = soup.find('ul', class_='m-tags__list') # A common SBNation tag structure
129
- if tags_container:
130
- tag_elements = tags_container.find_all('a') # Tags are usually links
131
- details['tags'] = list(set([tag.get_text(strip=True) for tag in tag_elements if tag.get_text(strip=True)]))
132
- else:
133
- # Fallback: Look for another potential container like the one in the example text
134
- filed_under_div = soup.find('div', class_='c-entry-group-labels') # Another possible class
135
- if filed_under_div:
136
- tag_elements = filed_under_div.find_all('a')
137
- details['tags'] = list(set([tag.get_text(strip=True) for tag in tag_elements if tag.get_text(strip=True)]))
138
- else:
139
- # Specific structure from example text if needed ('Filed under:' section)
140
- # This requires finding the specific structure around 'Filed under:'
141
- # Could be more fragile, attempt simpler methods first.
142
- print(f"Warning: Tags container not found using common classes for {url}")
143
- # Example: Search based on text 'Filed under:' - less reliable
144
- # filed_under_header = soup.find(lambda tag: tag.name == 'h2' and 'Filed under:' in tag.get_text())
145
- # if filed_under_header:
146
- # parent_or_sibling = filed_under_header.parent # Adjust based on actual structure
147
- # tag_elements = parent_or_sibling.find_all('a') if parent_or_sibling else []
148
- # details['tags'] = list(set([tag.get_text(strip=True) for tag in tag_elements]))
149
-
150
- # Basic validation - ensure essential fields were extracted for basic processing
151
- # Content is needed for summarization but might be missing on some pages (e.g., galleries)
152
- if not details['title'] or not details['publication_date']:
153
- print(f"Failed to extract essential details (title or date) for {url}. Returning None.")
154
- return None
155
-
156
- # Content check specifically before returning - needed for summary
157
- if not details['content']:
158
- print(f"Warning: Missing content for {url}. Summary cannot be generated.")
159
-
160
- return details
161
-
162
- def is_within_timeframe(date_str, days):
163
- """Checks if a date string (ISO format) is within the specified number of days from now."""
164
- if not date_str:
165
- return False
166
- try:
167
- # Parse the ISO format date string, handling potential 'Z' for UTC
168
- pub_date = datetime.fromisoformat(date_str.replace('Z', '+00:00'))
169
-
170
- # Ensure pub_date is offset-aware (has timezone info)
171
- # If fromisoformat gives naive datetime, assume UTC (common practice for 'Z')
172
- if pub_date.tzinfo is None or pub_date.tzinfo.utcoffset(pub_date) is None:
173
- pub_date = pub_date.replace(tzinfo=timezone.utc) # Assume UTC if naive
174
-
175
- # Get current time as an offset-aware datetime in UTC
176
- now_utc = datetime.now(timezone.utc)
177
-
178
- # Calculate the cutoff date
179
- cutoff_date = now_utc - timedelta(days=days)
180
-
181
- # Compare offset-aware datetimes
182
- return pub_date >= cutoff_date
183
- except ValueError as e:
184
- print(f"Could not parse date: {date_str}. Error: {e}")
185
- return False # Skip if date parsing fails
186
- except Exception as e:
187
- print(f"Unexpected error during date comparison for {date_str}: {e}")
188
- return False
189
-
190
- def generate_summary(article_content):
191
- """Generates a 3-4 sentence summary using OpenAI API."""
192
- if not ENABLE_SUMMARIZATION or not article_content:
193
- print("Skipping summary generation (disabled or no content).")
194
- return "" # Return empty string if summarization skipped or no content
195
-
196
- print("Generating summary...")
197
- try:
198
- client = openai.OpenAI(api_key=OPENAI_API_KEY)
199
-
200
- # Simple prompt for summarization
201
- prompt = f"""Please provide a concise 3-4 sentence summary of the following article content.
202
- Focus on the key information and main points. Do not include any information not present in the text. :
203
-
204
- ---
205
- {article_content}
206
- ---
207
-
208
- Summary:"""
209
-
210
- # Limit content length to avoid excessive token usage (adjust limit as needed)
211
- max_content_length = 15000 # Approx limit, GPT-4o context window is large but be mindful of cost/speed
212
- if len(prompt) > max_content_length:
213
- print(f"Warning: Content too long ({len(article_content)} chars), truncating for summarization.")
214
- # Truncate content intelligently if needed, here just slicing prompt
215
- prompt = prompt[:max_content_length]
216
-
217
- response = client.chat.completions.create(
218
- model=OPENAI_MODEL,
219
- messages=[
220
- {"role": "system", "content": "You are an AI assistant tasked with summarizing news articles concisely."},
221
- {"role": "user", "content": prompt}
222
- ],
223
- temperature=0.5, # Adjust for desired creativity vs factuality
224
- max_tokens=150 # Limit summary length
225
- )
226
-
227
- summary = response.choices[0].message.content.strip()
228
- print("Summary generated successfully.")
229
- return summary
230
-
231
- except openai.APIError as e:
232
- print(f"OpenAI API returned an API Error: {e}")
233
- except openai.APIConnectionError as e:
234
- print(f"Failed to connect to OpenAI API: {e}")
235
- except openai.RateLimitError as e:
236
- print(f"OpenAI API request exceeded rate limit: {e}")
237
- except Exception as e:
238
- print(f"An unexpected error occurred during summarization: {e}")
239
-
240
- return "" # Return empty string on failure
241
-
242
- def scrape_and_summarize_niners_nation():
243
- """Main function to scrape, parse, summarize, and return structured data."""
244
- print("Starting Niners Nation scraping and summarization process...")
245
- main_page_html = fetch_html(TARGET_URL)
246
- if not main_page_html:
247
- print("Failed to fetch the main news page. Exiting.")
248
- return []
249
-
250
- articles_on_page = parse_article_list(main_page_html)
251
-
252
- scraped_and_summarized_data = []
253
- now_utc = datetime.now(timezone.utc)
254
- cutoff_datetime = now_utc - timedelta(days=DAYS_TO_SCRAPE)
255
- print(f"Filtering articles published since {cutoff_datetime.strftime('%Y-%m-%d %H:%M:%S %Z')}")
256
-
257
- processed_urls = set()
258
-
259
- for url, date_str in articles_on_page:
260
- if url in processed_urls:
261
- continue
262
-
263
- if not is_within_timeframe(date_str, DAYS_TO_SCRAPE):
264
- continue
265
-
266
- print(f"Fetching article: {url}")
267
- article_html = fetch_html(url)
268
- if article_html:
269
- details = parse_article_details(article_html, url)
270
- if details:
271
- # Generate summary if content exists and summarization enabled
272
- article_summary = "" # Initialize summary
273
- if details.get('content'):
274
- article_summary = generate_summary(details['content'])
275
- else:
276
- print(f"Skipping summary for {url} due to missing content.")
277
-
278
- # Add the summary to the details dictionary
279
- details['summary'] = article_summary
280
-
281
- # Proceed to structure data (now including the summary)
282
- structured_row = structure_data_for_csv_row(details) # Use a helper for single row
283
- if structured_row:
284
- scraped_and_summarized_data.append(structured_row)
285
- processed_urls.add(url)
286
- print(f"Successfully scraped and summarized: {details['title']}")
287
- else:
288
- print(f"Failed to structure data for {url}")
289
-
290
- else:
291
- print(f"Failed to parse essential details for article: {url}")
292
- else:
293
- print(f"Failed to fetch article page: {url}")
294
-
295
- print(f"Waiting for {REQUEST_DELAY} second(s)...")
296
- time.sleep(REQUEST_DELAY)
297
-
298
- print(f"Scraping & Summarization finished. Collected {len(scraped_and_summarized_data)} articles.")
299
- return scraped_and_summarized_data
300
-
301
- def structure_data_for_csv_row(article_details):
302
- """Processes a single article's details into the final CSV structure."""
303
- current_year = datetime.now().year
304
-
305
- # Extract and parse publication date to get the year
306
- season = current_year # Default to current year
307
- pub_date_str = article_details.get("publication_date")
308
- if pub_date_str:
309
- try:
310
- pub_date = datetime.fromisoformat(pub_date_str.replace('Z', '+00:00'))
311
- season = pub_date.year
312
- except ValueError:
313
- print(f"Warning: Could not parse date '{pub_date_str}' for season. Using default {current_year}.")
314
-
315
- # Get tags and format as topic string
316
- tags = article_details.get("tags", [])
317
- topic = ", ".join(tags) if tags else "General News"
318
-
319
- # Build the dictionary for the CSV row
320
- structured_row = {
321
- "Team_name": "San Francisco 49ers",
322
- "season": season,
323
- "city": "San Francisco",
324
- "conference": "NFC",
325
- "division": "West",
326
- "logo_url": "",
327
- "summary": article_details.get("summary", ""), # Get the generated summary
328
- "topic": topic,
329
- "link_to_article": article_details.get("link_to_article", ""),
330
- }
331
- return structured_row
332
-
333
- def write_to_csv(data, filename):
334
- """Writes the structured data to a CSV file."""
335
- if not data:
336
- print("No data to write to CSV.")
337
- return
338
-
339
- fieldnames = [
340
- "Team_name", "season", "city", "conference", "division",
341
- "logo_url", "summary", "topic", "link_to_article"
342
- ]
343
-
344
- if not all(key in data[0] for key in fieldnames):
345
- print(f"Error: Mismatch between defined fieldnames and data keys.")
346
- print(f"Expected: {fieldnames}")
347
- print(f"Got keys: {list(data[0].keys())}")
348
- return
349
-
350
- print(f"Writing {len(data)} rows to {filename}...")
351
- try:
352
- with open(filename, 'w', newline='', encoding='utf-8') as csvfile:
353
- writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
354
- writer.writeheader()
355
- writer.writerows(data)
356
- print(f"Successfully wrote {len(data)} rows to {filename}")
357
- except IOError as e:
358
- print(f"Error writing to CSV file {filename}: {e}")
359
- except Exception as e:
360
- print(f"An unexpected error occurred during CSV writing: {e}")
361
-
362
- # --- Main Execution ---
363
- if __name__ == "__main__":
364
- # Call the main orchestrator function that includes summarization
365
- processed_articles = scrape_and_summarize_niners_nation()
366
-
367
- if processed_articles:
368
- write_to_csv(processed_articles, OUTPUT_CSV_FILE)
369
- else:
370
- print("No articles were processed.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/youtube_highlights.csv DELETED
The diff for this file is too large to render. See raw diff
 
data/april_11_multimedia_data_collect/z_old/niners_players_headshots_with_socials.csv DELETED
@@ -1,24 +0,0 @@
1
- name,headshot_url,instagram_url
2
- George Odum,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/sqpxhoycdpegkyjn6ooc.jpg,https://www.instagram.com/george.w.odum/?hl=en
3
- Sam Okuayinonu,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/fyolr2zk2nplfbdze75l.jpg,https://www.instagram.com/sam.ok97/?hl=en
4
- Terique Owens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/okhin0uwdon2nimvbtwd.png,https://www.instagram.com/terique_owens/?hl=en
5
- Ricky Pearsall,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/to7q7w4kjiajseb4ljcx.png,https://www.instagram.com/ricky.pearsall/?hl=en
6
- Jason Pinnock,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/on29awacb9frijyggtgt,https://www.instagram.com/jpinny15/?hl=en
7
- Austen Pleasants,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wsbs5emdyzuc1sudbcls.png,https://www.instagram.com/oursf49ers/p/DDr48a4PdcO/?hl=en
8
- Mason Pline,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/mvjlaxpu8bu33ohspqot.png,https://www.instagram.com/mpline12/?hl=en
9
- Dominick Puni,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/tq1snozjpjrgrjoflrfg.png,https://www.instagram.com/dompuni/?hl=en
10
- Brock Purdy,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wt42ykvuxpngm4m1axxn.png,https://www.instagram.com/brock.purdy13/?hl=en
11
- Curtis Robinson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/x3xyzgeapcafr0gicl5y.jpg,https://www.instagram.com/curtis_robinsonn/?hl=en
12
- Demarcus Robinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/lakf0xue1qqb7ed4p6ge,https://www.instagram.com/demarcusrobinson/?hl=en
13
- Patrick Taylor Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/hochjncae0hqcoveuexq.jpg,https://www.instagram.com/patricktaylor/?hl=en
14
- Trent Taylor,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/j8lom4fnsveujt8hykef.jpg,https://www.instagram.com/trent5taylor/?hl=en
15
- Tre Tomlinson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/n5pfv126xw0psc0d1ydz,https://www.instagram.com/trevius/?hl=en
16
- Jake Tonges,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/la3z5y6u7tix6rnq2m5l.jpg,https://www.instagram.com/jaketonges/?hl=en
17
- Fred Warner,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/zo4ftfar4bshrbipceuk.jpg,https://www.instagram.com/fred_warner/?hl=en
18
- Jon Weeks,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/d9fvm74pu4vyinveopbf,https://www.instagram.com/jonweeks46/?hl=en
19
- DaShaun White,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/mjnpmkw3ar6zcj2hxxzd,https://www.instagram.com/demoeto/?hl=en
20
- Trent Williams,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/bnq8i5urjualxre5caqz.jpg,https://www.instagram.com/trentwilliams71/?hl=en
21
- Brayden Willis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xmo7hsuho3ehmsjwvthc.jpg,https://www.instagram.com/brayden_willis/?hl=en
22
- Dee Winters,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ggf13riajo0kn0y6kbu0.jpg,https://www.instagram.com/dwints_/?hl=en
23
- Mitch Wishnowsky,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mkf1xr1x8nr9l55oq72a.jpg,https://www.instagram.com/mitchwish3/?hl=en
24
- Nick Zakelj,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/o92tva22zezdz4aksadl.jpg,https://www.instagram.com/nickzakelj/?hl=en
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/z_old/niners_players_headshots_with_socials_v1_safe.csv DELETED
@@ -1,51 +0,0 @@
1
- name,headshot_url,instagram_url
2
- Israel Abanikanda,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/wo7d9oli06eki4mnh3i8.png,https://www.instagram.com/izzygetsbusy__/?hl=en
3
- Brandon Aiyuk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/khwofxjjwx0hcaigzxhw.png,https://www.instagram.com/brandonaiyuk/?hl=en
4
- Isaac Alarcon,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mlhuuxukyusodzlfsmnv.jpg,https://www.instagram.com/isaac_algar/?hl=en
5
- Evan Anderson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/ng7oamywxvqgkx6l6kqc.png,https://www.instagram.com/klamps8/?hl=en
6
- Tre Avery,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/a7kfv7xjftqlaqghk6sg,https://www.instagram.com/t.avery21/?hl=en
7
- Alex Barrett,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/bm0ay22de39d1enrxwiq.jpg,https://www.instagram.com/alex.barrett/?hl=en
8
- Ben Bartch,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/aqaslodzr7y0yvh5zzxa.jpg,https://www.instagram.com/bartchben/
9
- Robert Beal Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jwwhmt5d8mi0vdb8nfic.jpg,https://www.instagram.com/oursf49ers/reel/C_CVQxxp2ti/
10
- Tatum Bethune,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/vl08pinqpmoubdf0zy5s.png,https://www.instagram.com/tatumx15/?hl=en
11
- Nick Bosa,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/utiwswqvpkiwtocijwhz.jpg,https://www.instagram.com/nbsmallerbear/?hl=en
12
- Jake Brendel,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/svsb41aekpzt3m9snilw.jpg,https://www.instagram.com/jake.brendel/?hl=en
13
- Ji'Ayir Brown,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/urillpic02z774n09xvf.jpg,https://www.instagram.com/_tiig/?hl=en
14
- Tre Brown,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/dpemqrrweakt8dci3qfb,https://www.instagram.com/tre_brown25/?hl=en
15
- Spencer Burford,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/lje3ae25dntkdudp6eex.jpg,https://www.instagram.com/spence__74/?hl=en
16
- Jacob Cowing,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/lg7aao0umc21oioufqdx.png,https://www.instagram.com/jaycowing_/?hl=en
17
- Kalia Davis,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/rmnxj3sh7pyldmcxqe32.jpg,https://www.instagram.com/ucf.football/p/C3No6rTugDe/
18
- Jordan Elliott,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/xbyky8r2yuzusd2tmrw8.jpg,https://www.instagram.com/jordanelliott_nbcs/
19
- Luke Farrell,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/f2z7wpmx7ngtxcqqedla,https://www.instagram.com/lukefarrell89/?hl=en
20
- Russell Gage Jr.,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/lkqhshv0dss1b9c6mdnj,https://www.instagram.com/w8k3mupruss/?hl=en
21
- Jonathan Garvin,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/rapfcxut6vu50vcevswe.png,https://www.instagram.com/thesfniners/p/DCmgF8KSw2A/?hl=en
22
- Luke Gifford,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/mhdbbzj8amttnpd1nbpn,https://www.instagram.com/luke_gifford/?hl=en
23
- Kevin Givens,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/mstmgft0e0ancdzspboy.jpg,https://www.instagram.com/49ers/p/DAg_Pvpz1vV/
24
- Jalen Graham,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/pbl2a1ujopvwqrfct0jp.jpg,https://www.instagram.com/thexniners/p/CruR8IPrSV7/
25
- Richie Grant,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/szeswtvt6jmbu3so3phd,https://www.instagram.com/richiegrant_/?hl=en
26
- Renardo Green,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/v79obx9v7tgcjjlo6hiy.png,https://www.instagram.com/dondada.8/?hl=en
27
- Yetur Gross-Matos,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/etuaajmvhbc5qkebgoow.jpg,https://www.instagram.com/__lobo99/?hl=en
28
- Isaac Guerendo,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/b66rpzr9iauo5rdprvka.png,https://www.instagram.com/isaac_guerendo/?hl=en
29
- Sebastian Gutierrez,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/am9sywgkga6jq65hvboe.jpg,https://www.instagram.com/sebastiandev1/?hl=en
30
- Matt Hennessy,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/zk8b21o8ncxnyu0gyf23,https://www.instagram.com/matt___hennessy/?hl=en
31
- Isaiah Hodgins,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ax1oft9kqida0eokvtes.jpg,https://www.instagram.com/isaiahhodgins/?hl=en
32
- Drake Jackson,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/y2luyplzpvbzokyfbmla.jpg,https://www.instagram.com/thefreak/?hl=en
33
- Tarron Jackson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pnqrjp76bgpkmacxma3r,https://www.instagram.com/tarron_jackson/?hl=en
34
- Jauan Jennings,https://static.clubs.nfl.com/image/private/t_thumb_squared_2x/f_auto/49ers/wxsq7f4ajmhfs6tn4dg2.jpg,https://www.instagram.com/u_aintjj/?hl=en
35
- Quindell Johnson,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/uga90lawcfxjcqna7opb,https://www.instagram.com/p/DFGnwNlymc9/
36
- Zack Johnson,https://static.www.nfl.com/image/private/t_thumb_squared_2x/f_auto/league/n4hy8uzhcl5cl0ricwoa,https://www.instagram.com/zack.johnson.68/
37
- Mac Jones,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/pedpdxybeus7mrovsoko,https://www.instagram.com/macjones_10/?hl=en
38
- Kyle Juszczyk,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ywdz6y2pfzndqgmxxfbj.jpg,https://www.instagram.com/juicecheck44/?hl=en
39
- George Kittle,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/elheepobwn1ahqwtfwat.jpg,https://www.instagram.com/gkittle/?hl=en
40
- Deommodore Lenoir,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/f9fnuvbpcxku9ibt9qs8.jpg,https://www.instagram.com/deommo.lenoir/?hl=en
41
- Chase Lucas,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gjeejt5pbagnipodhdz4.jpg,https://www.instagram.com/chase_lucas24/?hl=en
42
- Darrell Luter Jr.,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/g5rohvooet9g5w7rlhrh.jpg,https://www.instagram.com/_d.ray4k/?hl=en
43
- Jaylen Mahoney,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/yv9inbia05nyxppuajv0.png,https://www.instagram.com/jaylenmahoney_/
44
- Christian McCaffrey,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/a8fka6shomakkbllljgt.jpg,https://www.instagram.com/christianmccaffrey/?hl=en
45
- Jalen McKenzie,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/gffxpns1ayxyjccymr6d.jpg,https://www.instagram.com/jay_peez70/?hl=en
46
- Colton McKivitz,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/jugvoxjabgsbcfbuqfew.jpg,https://www.instagram.com/cmckivitz53/?hl=en
47
- Jake Moody,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_auto/49ers/ygputwsbutemszr8xxkw.jpg,https://www.instagram.com/jmoods_/?hl=en
48
- Tanner Mordecai,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/y8gipodnkeapgmegnxs1.png,https://www.instagram.com/t_mordecai/?hl=en
49
- Malik Mustapha,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/eyrgxgpbrycd9x8glk0j.png,https://www.instagram.com/stapha/
50
- Siran Neal,https://static.www.nfl.com/image/upload/t_thumb_squared_2x/f_auto/league/muhthfs6owkkpsyop1e6,https://www.instagram.com/siranneal/?hl=en
51
- Drake Nugent,https://static.clubs.nfl.com/image/upload/t_thumb_squared_2x/f_png/49ers/qyb4kurtbv9uflmupfnc.png,https://www.instagram.com/drakenugent9/?hl=en
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/april_11_multimedia_data_collect/z_old/z_schedule_with_result_april_11_z.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,HomeTeam,AwayTeam,Result,game_result,game_id,Summary,highlight_video_url
2
- 1,1,10/9/24 0:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,7d5492b7-6372-4ab6-b878-a6ad10936f3b,"Quarterback Brock Purdy threw for 231 yards, with running back Jordan Mason rushing for 147 yards.",https://www.youtube.com/watch?v=igOb4mfV7To
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,9c37ef4a-8887-4e16-a0e9-53dd21d0ed1c,"Purdy passed for 319 yards; Mason added 100 rushing yards, but the 49ers fell short.",https://www.youtube.com/watch?v=jTJw2uf-Pdg
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,b8c3e7f7-81ed-48c4-9a49-0897cac450e5,Purdy threw for 292 yards; Jauan Jennings had 175 receiving yards in a close loss.,https://www.youtube.com/watch?v=Y1dnhN-1ryU
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,b4b49323-c84d-4414-bbd4-de399145db28,Brock Purdy threw for 288 yards and a touchdown; Fred Warner returned an interception for a touchdown.,https://www.youtube.com/watch?v=NCUjGFJILLo
6
- 70,5,6/10/24 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,efe67377-f218-4629-94d6-b0a28dae81b4,"Kyler Murray led a comeback, including a 50-yard touchdown run; Chad Ryland kicked the game-winning field goal.",https://www.youtube.com/watch?v=v62sybG_3Lk
7
- 92,6,11/10/24 0:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,be924e35-6c00-470a-a82e-f77e89f2fca9,Geno Smith's late 13-yard touchdown run secured the Seahawks' victory.,https://www.youtube.com/watch?v=LaDE1QBC3Cc
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,c0efcedb-e8a0-4058-8ae8-df418a829c22,Specific game details are not available.,https://www.youtube.com/watch?v=4_xM1tOK-28
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,9d3c8085-3864-4c86-9a47-6d91f9561e68,Specific game details are not available.,https://www.youtube.com/watch?v=7nTBwPljD-Q
10
- 149,10,10/11/24 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,8c117905-4d53-4bfb-a85e-d4d0a52262a8,"The 49ers narrowly avoided a collapse, with Jake Moody's game-winning field goal.",https://www.youtube.com/watch?v=607mv01G8UU
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,6ee0f83e-d738-43c7-95e2-472bdaa9c2e8,Geno Smith's last-minute touchdown run ended the Seahawks' losing streak against the 49ers.,https://www.youtube.com/watch?v=VMPRSGk7bUg
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,89aeb6ec-c102-442f-a2b2-862a58f08c72,"Despite losing Deebo Samuel early, the 49ers secured a narrow victory.",https://www.youtube.com/watch?v=rtBtGh02HvA
13
- 181,13,2/12/24 1:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,051a9bbd-41b1-4946-b366-2202b9b84646,"Josh Allen scored touchdowns passing, rushing, and receiving, leading the Bills to victory.",
14
- 199,14,8/12/24 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,2bfc3060-5975-4c60-8cf2-cd359c318bcb,Specific game details are not available.,https://www.youtube.com/watch?v=qmzSVmVNaFg
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,07182afe-36bf-44e4-a464-52a56e9e325d,"In a rainy defensive battle, the Rams secured victory with four field goals.",https://www.youtube.com/watch?v=3JfiboQ6ZC8
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,0be9a14c-0017-46b8-96e8-7c446e78ea84,A high-scoring game marked by a scuffle involving Jauan Jennings; the 49ers fell short.,
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,a6af1ef1-eece-43c2-b98f-c20494003cfe,Specific game details are not available.,https://www.youtube.com/watch?v=AooNLyum7Ng
18
- 257,18,5/1/25 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,2c95b37b-b32d-4b30-a582-f04b8cbf12e4,Specific game details are not available.,https://www.youtube.com/watch?v=HfqGFWVdf9w
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/data_generation.py DELETED
@@ -1,140 +0,0 @@
1
- ###################################
2
- # regenerate_49ers_data.py
3
- ###################################
4
-
5
- import pandas as pd
6
- import random
7
- import uuid
8
- from faker import Faker
9
- import os
10
-
11
- # CONFIG: Where your input CSVs live
12
- INPUT_DIR = os.path.dirname(os.path.abspath(__file__)) # Uses the current script's directory
13
- COMMUNITIES_FILE = "49ers_fan_communities_clean_GOOD.csv"
14
- ROSTER_FILE = "49ers roster - Sheet1.csv"
15
- SCHEDULE_FILE = "nfl-2024-san-francisco-49ers-with-results.csv"
16
-
17
- # CONFIG: Output directory for final CSVs
18
- OUTPUT_DIR = os.path.join(INPUT_DIR, "niners_output")
19
- os.makedirs(OUTPUT_DIR, exist_ok=True)
20
-
21
- NUM_FANS = 2500 # We want 2500 synthetic fans
22
-
23
- # ------------------------------------------------------------
24
- # 1. READ REAL CSVs
25
- # ------------------------------------------------------------
26
- def load_real_data():
27
- # Adjust columns/types based on your actual CSV structure
28
- df_communities = pd.read_csv(os.path.join(INPUT_DIR, COMMUNITIES_FILE))
29
- df_roster = pd.read_csv(os.path.join(INPUT_DIR, ROSTER_FILE))
30
- df_schedule = pd.read_csv(os.path.join(INPUT_DIR, SCHEDULE_FILE))
31
-
32
- # Optional: rename columns or add IDs if your CSVs don't have them
33
- # For example, ensure df_roster has "player_id" column for each player
34
- if "player_id" not in df_roster.columns:
35
- df_roster["player_id"] = [str(uuid.uuid4()) for _ in range(len(df_roster))]
36
-
37
- # If df_schedule lacks a unique "game_id," add one:
38
- if "game_id" not in df_schedule.columns:
39
- df_schedule["game_id"] = [str(uuid.uuid4()) for _ in range(len(df_schedule))]
40
-
41
- # If df_communities lacks a "community_id," add one:
42
- if "community_id" not in df_communities.columns:
43
- df_communities["community_id"] = [str(uuid.uuid4()) for _ in range(len(df_communities))]
44
-
45
- return df_communities, df_roster, df_schedule
46
-
47
- # ------------------------------------------------------------
48
- # 2. GENERATE 2,500 FANS (FAKE DATA)
49
- # ------------------------------------------------------------
50
- def generate_synthetic_fans(num_fans: int) -> pd.DataFrame:
51
- """
52
- Create a DataFrame of synthetic fans.
53
- Each fan has:
54
- - fan_id (UUID)
55
- - first_name
56
- - last_name
57
- - email
58
- - favorite_players (list of player_ids)
59
- - community_memberships (list of community_ids)
60
- """
61
- fake = Faker()
62
- fans_list = []
63
- for _ in range(num_fans):
64
- fan_id = str(uuid.uuid4())
65
- first_name = fake.first_name()
66
- last_name = fake.last_name()
67
- email = fake.email()
68
-
69
- fans_list.append({
70
- "fan_id": fan_id,
71
- "first_name": first_name,
72
- "last_name": last_name,
73
- "email": email,
74
- # We'll assign favorite_players & community_memberships below
75
- "favorite_players": [],
76
- "community_memberships": []
77
- })
78
-
79
- return pd.DataFrame(fans_list)
80
-
81
- # ------------------------------------------------------------
82
- # 3. ASSIGN RANDOM FAVORITE PLAYERS AND COMMUNITIES
83
- # ------------------------------------------------------------
84
- def assign_relationships(df_fans: pd.DataFrame,
85
- df_roster: pd.DataFrame,
86
- df_communities: pd.DataFrame):
87
- """
88
- - Pick 1-3 random favorite players for each fan from the real roster
89
- - Assign 0 or 1 community to each fan from the real communities
90
- """
91
- player_ids = df_roster["player_id"].tolist()
92
- community_ids = df_communities["community_id"].tolist()
93
-
94
- for idx, fan in df_fans.iterrows():
95
- # Choose 1-3 players
96
- if len(player_ids) > 0:
97
- num_players = random.randint(1, 3)
98
- chosen_players = random.sample(player_ids, k=num_players)
99
- else:
100
- chosen_players = []
101
-
102
- # 50% chance to join a community
103
- chosen_community = []
104
- if len(community_ids) > 0 and random.choice([True, False]):
105
- chosen_community = [random.choice(community_ids)]
106
-
107
- # Update the row's columns
108
- df_fans.at[idx, "favorite_players"] = chosen_players
109
- df_fans.at[idx, "community_memberships"] = chosen_community
110
-
111
- # ------------------------------------------------------------
112
- # 4. MAIN PIPELINE
113
- # ------------------------------------------------------------
114
- def main():
115
- # 4.1. Load real data
116
- df_communities, df_roster, df_schedule = load_real_data()
117
-
118
- # 4.2. Generate 2,500 synthetic fans
119
- df_fans = generate_synthetic_fans(NUM_FANS)
120
-
121
- # 4.3. Assign random relationships
122
- assign_relationships(df_fans, df_roster, df_communities)
123
-
124
- # 4.4. Export everything to CSV
125
- # (If you'd like to keep the original real-data files as is,
126
- # you can simply re-write them or rename them. Below we do an explicit "to_csv".)
127
-
128
- df_communities.to_csv(os.path.join(OUTPUT_DIR, "fan_communities.csv"), index=False)
129
- df_roster.to_csv(os.path.join(OUTPUT_DIR, "roster.csv"), index=False)
130
- df_schedule.to_csv(os.path.join(OUTPUT_DIR, "schedule.csv"), index=False)
131
- df_fans.to_csv(os.path.join(OUTPUT_DIR, "fans.csv"), index=False)
132
-
133
- print(f"Data generation complete! Files are in {OUTPUT_DIR}")
134
- print(" - fan_communities.csv (REAL)")
135
- print(" - roster.csv (REAL)")
136
- print(" - schedule.csv (REAL)")
137
- print(" - fans.csv (SYNTHETIC + relationships)")
138
-
139
- if __name__ == "__main__":
140
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/neo4j_ingestion.py DELETED
@@ -1,280 +0,0 @@
1
- ############################################
2
- # neo4j_ingestion.py
3
- ############################################
4
-
5
- import os
6
- import csv
7
- import uuid
8
- import pandas as pd
9
- from neo4j import GraphDatabase
10
- from dotenv import load_dotenv
11
-
12
- # Load environment variables
13
- load_dotenv()
14
-
15
- # ------------------------------------------------------------------------------
16
- # CONFIGURE THESE TO MATCH YOUR ENVIRONMENT
17
- # ------------------------------------------------------------------------------
18
- NEO4J_URI = os.getenv('AURA_CONNECTION_URI')
19
- NEO4J_USER = os.getenv('AURA_USERNAME')
20
- NEO4J_PASS = os.getenv('AURA_PASSWORD')
21
-
22
- if not all([NEO4J_URI, NEO4J_USER, NEO4J_PASS]):
23
- raise ValueError("Missing required Neo4j credentials in .env file")
24
-
25
- # Update CSV_DIR to use absolute path
26
- SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
27
- CSV_DIR = os.path.join(SCRIPT_DIR, "niners_output") # Updated to correct folder name
28
- REL_CSV_DIR = os.path.join(SCRIPT_DIR, "relationship_csvs")
29
-
30
- # Create directories if they don't exist
31
- os.makedirs(CSV_DIR, exist_ok=True)
32
- os.makedirs(REL_CSV_DIR, exist_ok=True)
33
-
34
- # Filenames for each CSV
35
- COMMUNITIES_FILE = "fan_communities.csv"
36
- ROSTER_FILE = "roster.csv"
37
- #SCHEDULE_FILE = "schedule.csv"
38
- SCHEDULE_FILE = "schedule_with_result_embedding.csv"
39
- FANS_FILE = "fans.csv"
40
-
41
- print("Script directory:", SCRIPT_DIR)
42
- print("CSV directory:", CSV_DIR)
43
- print("Looking for files in:")
44
- print(f"- {os.path.join(CSV_DIR, COMMUNITIES_FILE)}")
45
- print(f"- {os.path.join(CSV_DIR, ROSTER_FILE)}")
46
- print(f"- {os.path.join(CSV_DIR, SCHEDULE_FILE)}")
47
- print(f"- {os.path.join(CSV_DIR, FANS_FILE)}")
48
-
49
- # Add this after the file path prints:
50
- print("\nChecking CSV column names:")
51
- for file_name in [COMMUNITIES_FILE, ROSTER_FILE, SCHEDULE_FILE, FANS_FILE]:
52
- df = pd.read_csv(os.path.join(CSV_DIR, file_name))
53
- print(f"\n{file_name} columns:")
54
- print(df.columns.tolist())
55
-
56
- # ------------------------------------------------------------------------------
57
- # 1) Create Relationship CSVs from fans.csv
58
- # ------------------------------------------------------------------------------
59
- def create_relationship_csvs():
60
- """
61
- Reads fans.csv, which includes columns:
62
- - fan_id
63
- - favorite_players (string list)
64
- - community_memberships (string list)
65
- Expands these lists into separate relationship rows, which we export as:
66
- fan_player_rels.csv and fan_community_rels.csv
67
- """
68
- fans_path = os.path.join(CSV_DIR, FANS_FILE)
69
- df_fans = pd.read_csv(fans_path)
70
-
71
- fan_player_relationships = []
72
- fan_community_relationships = []
73
-
74
- for _, row in df_fans.iterrows():
75
- fan_id = row["fan_id"]
76
-
77
- # favorite_players (could be "['id1','id2']" or a single string)
78
- fav_players_raw = row.get("favorite_players", "[]")
79
- fav_players_list = parse_string_list(fav_players_raw)
80
-
81
- for pid in fav_players_list:
82
- fan_player_relationships.append({
83
- "start_id": fan_id,
84
- "end_id": pid,
85
- "relationship_type": "FAVORITE_PLAYER"
86
- })
87
-
88
- # community_memberships
89
- comm_memberships_raw = row.get("community_memberships", "[]")
90
- comm_list = parse_string_list(comm_memberships_raw)
91
-
92
- for cid in comm_list:
93
- fan_community_relationships.append({
94
- "start_id": fan_id,
95
- "end_id": cid,
96
- "relationship_type": "MEMBER_OF"
97
- })
98
-
99
- # Convert to DataFrames and write out to CSV
100
- if fan_player_relationships:
101
- df_fan_player = pd.DataFrame(fan_player_relationships)
102
- df_fan_player.to_csv(os.path.join(REL_CSV_DIR, "fan_player_rels.csv"), index=False)
103
-
104
- if fan_community_relationships:
105
- df_fan_community = pd.DataFrame(fan_community_relationships)
106
- df_fan_community.to_csv(os.path.join(REL_CSV_DIR, "fan_community_rels.csv"), index=False)
107
-
108
- print("Created relationship CSVs in:", REL_CSV_DIR)
109
-
110
- def parse_string_list(raw_val):
111
- """
112
- Attempt to parse a Python-style list string (e.g. "['abc','def']")
113
- or return an empty list if parsing fails.
114
- """
115
- if isinstance(raw_val, str):
116
- try:
117
- parsed = eval(raw_val)
118
- if not isinstance(parsed, list):
119
- return []
120
- return parsed
121
- except:
122
- return []
123
- elif isinstance(raw_val, list):
124
- return raw_val
125
- else:
126
- return []
127
-
128
- # ------------------------------------------------------------------------------
129
- # 2) LOAD Node & Relationship CSVs into Neo4j
130
- # ------------------------------------------------------------------------------
131
- def clean_row_dict(row):
132
- """Convert pandas row to dict and replace NaN with None"""
133
- return {k: None if pd.isna(v) else v for k, v in row.items()}
134
-
135
- def ingest_to_neo4j():
136
- """
137
- Connects to Neo4j, deletes existing data, creates constraints,
138
- loads node CSVs, then loads relationship CSVs.
139
- """
140
- driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
141
-
142
- with driver.session() as session:
143
- # (A) DELETE CURRENT CONTENTS
144
- session.run("MATCH (n) DETACH DELETE n")
145
- print("Cleared existing graph data.")
146
-
147
- # (B) Create uniqueness constraints - Updated with exact column name
148
- session.run("CREATE CONSTRAINT IF NOT EXISTS FOR (c:Community) REQUIRE c.fan_chapter_name IS UNIQUE")
149
- session.run("CREATE CONSTRAINT IF NOT EXISTS FOR (p:Player) REQUIRE p.player_id IS UNIQUE")
150
- session.run("CREATE CONSTRAINT IF NOT EXISTS FOR (g:Game) REQUIRE g.game_id IS UNIQUE")
151
- session.run("CREATE CONSTRAINT IF NOT EXISTS FOR (f:Fan) REQUIRE f.fan_id IS UNIQUE")
152
- print("Created/ensured constraints.")
153
-
154
- # 1) Communities - Updated to handle duplicates
155
- communities_df = pd.read_csv(os.path.join(CSV_DIR, COMMUNITIES_FILE))
156
-
157
- # Track duplicates
158
- duplicates = communities_df[communities_df['Fan Chapter Name'].duplicated(keep='first')]
159
- if not duplicates.empty:
160
- print(f"\nFound {len(duplicates)} duplicate Fan Chapter Names (keeping first occurrence only):")
161
- print(duplicates[['Fan Chapter Name']].to_string())
162
-
163
- # Export duplicates to CSV for reference
164
- duplicates.to_csv(os.path.join(CSV_DIR, 'duplicate_chapters.csv'), index=False)
165
-
166
- # Keep only first occurrence of each Fan Chapter Name
167
- communities_df = communities_df.drop_duplicates(subset=['Fan Chapter Name'], keep='first')
168
-
169
- # Process unique chapters
170
- for _, row in communities_df.iterrows():
171
- params = clean_row_dict(row)
172
-
173
- # Map the correct columns
174
- params["fan_chapter_name"] = params.pop("Fan Chapter Name", "") or ""
175
- params["city"] = params.pop("Meeting Location Address (City)", "") or ""
176
- params["state"] = params.pop("Meeting Location Address (State)", "") or ""
177
- params["email_contact"] = params.pop("Email Address", "") or ""
178
- params["meetup_info"] = f"{params.pop('Venue', '')} - {params.pop('Venue Location', '')}"
179
-
180
- session.run("""
181
- CREATE (c:Community {
182
- fan_chapter_name: $fan_chapter_name,
183
- city: $city,
184
- state: $state,
185
- email_contact: $email_contact,
186
- meetup_info: $meetup_info
187
- })
188
- """, params)
189
- print(f"Imported {len(communities_df)} unique Communities.")
190
-
191
- # 2) Players - Updated with correct column names
192
- players_df = pd.read_csv(os.path.join(CSV_DIR, ROSTER_FILE))
193
- for _, row in players_df.iterrows():
194
- params = clean_row_dict(row)
195
- session.run("""
196
- CREATE (p:Player {
197
- player_id: $player_id,
198
- name: $Player,
199
- position: $Pos,
200
- jersey_number: toInteger($Number),
201
- height: $HT,
202
- weight: $WT,
203
- college: $College,
204
- years_in_nfl: toInteger($Exp)
205
- })
206
- """, params)
207
- print("Imported Players.")
208
-
209
- # 3) Games - Updated with correct column names
210
- games_df = pd.read_csv(os.path.join(CSV_DIR, SCHEDULE_FILE))
211
- for _, row in games_df.iterrows():
212
- params = clean_row_dict(row)
213
- session.run("""
214
- CREATE (g:Game {
215
- game_id: $game_id,
216
- date: $Date,
217
- location: $Location,
218
- home_team: $HomeTeam,
219
- away_team: $AwayTeam,
220
- result: $Result,
221
- summary: $Summary,
222
- embedding: $embedding
223
- })
224
- """, params)
225
- print("Imported Games.")
226
-
227
- # 4) Fans - This one was correct, no changes needed
228
- fans_df = pd.read_csv(os.path.join(CSV_DIR, FANS_FILE))
229
- for _, row in fans_df.iterrows():
230
- params = clean_row_dict(row)
231
- session.run("""
232
- CREATE (f:Fan {
233
- fan_id: $fan_id,
234
- first_name: $first_name,
235
- last_name: $last_name,
236
- email: $email
237
- })
238
- """, params)
239
- print("Imported Fans.")
240
-
241
- # (D) LOAD Relationships
242
- fan_player_path = os.path.join(REL_CSV_DIR, "fan_player_rels.csv")
243
- if os.path.exists(fan_player_path):
244
- rels_df = pd.read_csv(fan_player_path)
245
- for _, row in rels_df.iterrows():
246
- params = clean_row_dict(row)
247
- session.run("""
248
- MATCH (f:Fan {fan_id: $start_id})
249
- MATCH (p:Player {player_id: $end_id})
250
- CREATE (f)-[:FAVORITE_PLAYER]->(p)
251
- """, params)
252
- print("Created Fan -> Player relationships.")
253
-
254
- fan_community_path = os.path.join(REL_CSV_DIR, "fan_community_rels.csv")
255
- if os.path.exists(fan_community_path):
256
- rels_df = pd.read_csv(fan_community_path)
257
- for _, row in rels_df.iterrows():
258
- params = clean_row_dict(row)
259
- session.run("""
260
- MATCH (f:Fan {fan_id: $start_id})
261
- MATCH (c:Community {fan_chapter_name: $end_id})
262
- CREATE (f)-[:MEMBER_OF]->(c)
263
- """, params)
264
- print("Created Fan -> Community relationships.")
265
-
266
- driver.close()
267
- print("Neo4j ingestion complete!")
268
-
269
- # ------------------------------------------------------------------------------
270
- # 3) MAIN
271
- # ------------------------------------------------------------------------------
272
- def main():
273
- # 1) Generate relationship CSVs for fans' favorite_players & community_memberships
274
- create_relationship_csvs()
275
-
276
- # 2) Ingest all CSVs (nodes + relationships) into Neo4j
277
- ingest_to_neo4j()
278
-
279
- if __name__ == "__main__":
280
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/nfl-2024-san-francisco-49ers-with-results.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,Home Team,Away Team,Result,game_result
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/duplicate_chapters.csv DELETED
@@ -1,14 +0,0 @@
1
- Name,Phone Number,Website,Meeting Location Address (Address),Meeting Location Address (Address2),Meeting Location Address (City),Meeting Location Address (State),Meeting Location Address (Zip),Meeting Location Address (Country),Fan Chapter Name,President First Name,President Last Name,Email Address,City,State,Country,Venue,Venue Location,Total Fans,Facebook,Instagram,X (Twitter),TikTok,WhatsApp,YouTube,community_id
2
- ,8315126139,,,,,,,,Central Coast Niner Empire 831,Rafael,Garcia,[email protected],Salinas,CA,United States,Pizza Factory,1945 Natividad Rd,22.0,Facebook.com/CentralCoastNinerEmpire831,,,,,,c86453f6-0155-4458-9a26-e211aa2b8e33
3
- ,5627391639,,,,,,,,O.C. NINER EMPIRE FAITHFUL'S,Angel,Grijalva,[email protected],Buena park,CA,United States,Ciro's pizza,6969 la Palma Ave,10.0,,,,,,,3e1b2231-8fa4-4abc-938f-7c09f30b37fc
4
- ,8176757644,,,,,,,,Niner Empire DFW,Danny,Ramirez,[email protected],Bedford,TX,United States,Papa G's,2900 HIGHWAY 121,50.0,,,,,,,40693c50-8e07-4fb8-a0bc-ecf3383ce195
5
- ,(808) 989-0030,,,,,,,,NINER EMPIRE HAWAII 808,KEVIN,MEWS,[email protected],Honolulu,HI,United States,Buffalo Wild Wings -Pearl City,1644 Young St # E,25.0,,,,,,,eee2e97f-1d1f-4552-abbf-c615e64f8377
6
- ,6265396855,,,,,,,,SO. CAL GOLD BLOODED NINER'S,Louie,Gutierrez,[email protected],Industry,CA,United States,Hacienda heights Pizza Co,15239 Gale Ave,25.0,Facebook group page/instagram,,,,,,ad9a0664-8bf1-4916-b5d3-ca796916e0a5
7
- ,7605879798,,,,,,,,49er Empire High Desert,Mike,Kidwell (president),[email protected],hesperia,California,United States,Thorny's,1330 Ranchero rd.,100.0,,,,,,,c758e93b-3a3e-4c2f-990b-1bf9f1cdd6ca
8
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatso's,1704 Bandera Road,25.0,https://www.facebook.com/ninerempire.antonio,,,,,,163ed53e-753a-40b9-aa4d-645c1e9dc673
9
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatsos,1704 Bandera Rd,30.0,,,,,,,2966907f-4bbd-4c39-ad05-ea710abc7a3d
10
- ,(503) 544-3640,,,,,,,,Niner Empire Portland,Pedro,Urzua,[email protected],Portland,OR,United States,KingPins Portland,3550 SE 92nd ave,100.0,,,,,,,45249454-edef-4d93-a5d2-f6f14e123707
11
- ,9098153880,,,,,,,,Riverside 49ers Booster Club,Gus,Esmerio,[email protected],Riverside,California,United States,Lake Alice Trading Co Saloon &Eatery,3616 University Ave,20.0,,,,,,,de7e2c76-771b-4042-8a27-29070b65022a
12
- ,5204147239,,,,,,,,Sonoran Desert Niner Empire,Derek,Yubeta,[email protected],Maricopa,AZ,United States,Cold beers and cheeseburgers,20350 N John Wayne Pkwy,48.0,,,,,,,b7615efb-5b5f-4732-9f7c-c7c9f00e3fd9
13
- ,208-964-2981,,,,,,,,Treasure Valley 49er Faithful,Curt,Starz,[email protected],Star,ID,United States,The Beer Guys Saloon,10937 W. State Street,100.0,https://www.facebook.com/TV49erFaithful,,,,,,dd93b349-8a58-4ae5-8ffc-4be1d7d8e146
14
- ,(971) 218-4734,,,,,,,,Niner Empire Salem,Timothy,Stevens,[email protected],Salem,OR,United States,AMF Firebird Lanes,4303 Center St NE,218.0,,,,,,,794f2ed1-b82f-4fb8-9bd4-fa69c4e9695d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/fan_communities.csv DELETED
@@ -1,384 +0,0 @@
1
- Name,Phone Number,Website,Meeting Location Address (Address),Meeting Location Address (Address2),Meeting Location Address (City),Meeting Location Address (State),Meeting Location Address (Zip),Meeting Location Address (Country),Fan Chapter Name,President First Name,President Last Name,Email Address,City,State,Country,Venue,Venue Location,Total Fans,Facebook,Instagram,X (Twitter),TikTok,WhatsApp,YouTube,community_id
2
- ,52 4492612712,,,,,,,,49ers Aguascalientes,Cesar,Romo,[email protected],Aguascalientes,,Mexico,Vikingo Bar,"Av de la Convención de 1914 Sur 312-A, Las Américas, 20230 Aguascalientes, Ags., Mexico",174.0,https://www.facebook.com/share/1Wa7TPzBMX/,,,,,,79cfd643-4de5-46b2-8459-f1f6b8d87583
3
- ,52 (46) 1219 7801,,,,,,,,Bajio Faithful,Hector,Camarena,[email protected],"Celaya, GTO",,Mexico,California Prime Rib Restaurant,"Av. Constituyentes 1000 A, 3 Guerras, 38080 Celaya, Gto., Mexico",20.0,,,,,,,3c7dad3a-d69a-409f-91ff-6b6856a1b73d
4
- ,52 (96) 1654-1513,,,,,,,,Niner Empire Chiapas,Aroshi,Narvaez,[email protected],Chiapas,,Mexico,Alitas Tuxtla,"Blvd. Belisario Dominguez 1861 Loc K1 Tuxtl Fracc, Bugambilias, 29060 Tuxtla Gutiérrez, Chis., Mexico",250.0,Niner Empire Chiapas,https://www.instagram.com/49erschiapas/?hl=en,Niner Empire Chiapas,,,,fce88bd9-e2a3-481e-bedc-dbebd5343f08
5
- ,52 (61) 4404-1411,,,,,,,,49ers Faithful Chihuahua Oficial,Jorge,Otamendi,[email protected],Chihuahua,,Mexico,El Coliseo Karaoke Sports Bar,"C. Jose Maria Morelos 111, Zona Centro, 31000 Chihuahua, Chih., Mexico",300.0,https://www.facebook.com/share/g/14tnsAwWFc/,https://www.instagram.com/49ersfaithfulchihuahua?igsh=bHE5ZWd6eTUxOWl3,,https://www.tiktok.com/@49ers.faithful.ch?_t=8rv1vcLFfBI&_r=1,,,eec5a289-f51e-43ef-83f9-de27fbe2525b
6
- ,52 (61) 41901197,,,,,,,,Gold Rush Chihuahua Spartans,Juan,García,[email protected],Chihuahua,,Mexico,34 Billiards & Drinks,"Av. Tecnológico 4903, Las Granjas 31100",976.0,https://www.facebook.com/groups/170430893136916/,,,,,,5b0d64d5-2e5f-4173-b359-c4355e1ce861
7
- ,52 (55) 6477-1279,,,,,,,,Club 49ers Mexico,German,Rodriguez,[email protected],"Ciudad de Mexico, Mexico",,Mexico,Bar 49,16 Septiembre #27 Colonia Centro Historico Ciudad de Mexico,800.0,,club49ersmexico,club49ersmexico,Club49ersmexicooficial,,,db07fa7b-d0f9-44b4-981b-358558b30f4c
8
- ,52 (55) 6904-5174,,,,,,,,Club 49ers Durango Oficial,Victor,Arballo,[email protected],Durango,,Mexico,Restaurante Buffalucas Constitución,"C. Constitución 107B, Zona Centro, 34000 Durango, Dgo., Mexico",170.0,https://www.facebook.com/share/1TaDBVZmx2/?mibextid=LQQJ4d,https://www.instagram.com/49ers_dgo?igsh=ams1dHdibXZmN28w,,,,,f835cf7a-025e-40e8-b549-3be781938f19
9
- ,52 (55) 707169,,,,,,,,Niner Empire Edo Mex,Alberto,Velasco,[email protected],Estado de Mexico,,Mexico,Beer Garden Satélite,"Cto. Circunvalación Ote. 10-L-4, Cd. Satélite, 53100 Naucalpan de Juárez, Méx., Mexico",250.0,,https://www.instagram.com/ninerempireedomex/,https://x.com/ninerempedomex,,,,05d42a68-33f9-4c51-be80-33fd14c50c8b
10
- ,52 (33) 2225-4392,,,,,,,,Club 49ers Jalisco,Marcela,Medina,[email protected],"Guadalajara, Jalisco",,Mexico,Restaurante Modo Avión Zapopan,"Calzada Nte 14, Granja, 45010 Zapopan, Jal., Mexico",40.0,,club49ersjalisco,Club 49ers Jalisco,,,,901ca5e1-26d1-4743-83b3-6b2a6a25658b
11
- ,52 (33) 1046 3607,,,,,,,,Niner Empire Jalisco,Alonso,Partida,[email protected],"Guadalajara, Jalisco",,Mexico,SkyGames Sports Bar,"Av. Vallarta 874 entre Camarena y, C. Escorza, Centro, 44100 Guadalajara, Jal., Mexico",200.0,,niner_empire_jalisco,NinerEmpireJal,ninerempirejal,,,618bbb9b-7bee-49cf-a459-377aa5ff7b86
12
- ,52 (65) 6228-3719,,,,,,,,Niner Empire Juarez Oficial,Hugo,Montero,[email protected],Juarez,,Mexico,Sport Bar Silver Fox,"Av. Paseo Triunfo de la República 430, Las Fuentes, 32530 Juárez, Chih., Mexico",300.0,,,,,,,8a0ad20d-1074-47df-bb78-7dfd008619af
13
- ,52 (99) 9172-2810,,,,,,,,49ers Merida Oficial,Liliana,Vargas,[email protected],Merida,,Mexico,Taproom Mastache,"Av. Cámara de Comercio 263, San Ramón Nte, 97117 Mérida, Yuc., Mexico",290.0,,,,,,,aaafb4f5-408a-43cb-90c5-451db488af94
14
- ,52 (686) 243 7235,,,,,,,,Niner Empire Mexicali,Gabriel,Carbajal,[email protected],Mexicali,,Mexico,La Gambeta Terraza Sports Bar,"Calz. Cuauhtémoc 328, Aviación, 21230 Mexicali, B.C., Mexico",45.0,,,,,,,2584743f-fb25-4926-b229-2468e4684fc7
15
- ,52 (81) 1500-4400,,,,,,,,49ers Monterrey Oficial,Luis,González,[email protected],Monterrey,,Mexico,Buffalo Wild Wings Insurgentes,"Av Insurgentes 3961, Sin Nombre de Col 31, 64620 Monterrey, N.L., Mexico",1200.0,,,,,,,8a0cc83c-ee5e-4f28-abd2-4785b7f503be
16
- ,52 (22) 21914254,,,,,,,,Club 49ers Puebla,Elias,Mendez,[email protected],Puebla,,Mexico,Bar John Barrigón,"Av. Juárez 2925, La Paz, 72160 Heroica Puebla de Zaragoza, Pue., Mexico",,,,,,,,43c67b64-aa19-4d3c-bd4e-c18799854e93
17
- ,52 (84) 4130-0064,,,,,,,,Niners Empire Saltillo,Carlos,Carrizales,[email protected],Saltillo,,Mexico,Cervecería La Huérfana,"Blvd. Venustiano Carranza 7046-Int 9, Los Rodríguez, 25200 Saltillo, Coah., Mexico",,,,,,,,8968fdf0-d411-4899-9aaf-632d1ff2ca1c
18
- ,52 (44) 4257-3609,,,,,,,,San Luis Potosi Oficial,Jose,Robledo,[email protected],San Luis Potosi,,Mexico,Bar VIC,"Av Nereo Rodríguez Barragán 1399, Fuentes del Bosque, 78220 San Luis Potosí, S.L.P., Mexico",,,,,,,,1a185320-fa73-49e9-905e-acffa1821454
19
- ,52 (66) 4220-6991,,,,,,,,49ers Tijuana Fans Oficial,Anthony,Daniel,[email protected],Tijuana,,Mexico,Titan Sports Bar,"J. Gorostiza 1209, Zona Urbana Rio Tijuana, 22320 Tijuana, B.C., Mexico",460.0,https://www.facebook.com/groups/49erstijuanafans/?ref=share&mibextid=NSMWBT,https://www.instagram.com/49erstijuanafansoficial/?igshid=OGQ5ZDc2ODk2ZA%3D%3D&fbclid=IwZXh0bgNhZW0CMTEAAR0SXTcgDss1aAUjjzK6Ge0Uhx9JkNszzeQgTRq94F_5Zzat-arK9kXEqWk_aem_sKUysPZe1NpmFRPlJppOYw&sfnsn=scwspwa,-,-,-,-,3e23d466-e305-42d8-9599-c6a931b7e827
20
- ,52 (72) 2498-5443,,,,,,,,49ers Club Toluca Oficial,Fernando,Salazar,[email protected],Toluca,,Mexico,Revel Wings Carranza,"Calle Gral. Venustiano Carranza 20 Pte. 905, Residencial Colón y Col Ciprés, 50120 Toluca de Lerdo, Méx., Mexico",,,,,,,,bc0c7169-ca42-4d7b-ac37-9e42b54ef161
21
- ,52 (228) 159-8578,,,,,,,,Cluib de Fans 49ers Veracruz,Luis,Mata,[email protected],Veracruz,,Mexico,Wings Army del Urban Center,"C. Lázaro Cárdenas 102, Rafael Lucio, 91110 Xalapa-Enríquez, Ver., Mexico",,,,,,,,e1eab1f1-0342-487c-ba7e-ff062a1d0f93
22
- ,6646124565,,,,,,,,49ersFanZone.net,Clemens,Kaposi,[email protected],Bad Vigaun,,Austria,,Neuwirtsweg 315,183.0,,,,,,,bc369128-c50f-4a05-ad37-37a8c2adcb9c
23
- ,33 (0)6 365 269 84,,,,,,,,The Niner Empire France,Gilles,Schlienger,[email protected],Nousseviller Saint Nabor,,France,4 voie romaine,4 voie romaine,250.0,https://www.facebook.com/groups/295995597696338,,,,,,f15012b6-ca9c-40af-9e72-f26f48e2e3d2
24
- ,1704753958,,,,,,,,Niner Empire Germany-Bavaria Chapter,Mike,Beckmann,[email protected],Ismaning,,Germany,49er's Sports & Partybar,Muenchener Strasse 79,35.0,,,,,,,205540c2-8a52-40ff-8de0-5ecb5603eba2
25
- ,1735106462,,,,,,,,4T9 Mob Germany Family,Chris,Grawert,[email protected],Hamburg,,Germany,Jolly Roger,Budapester Str. 44,6.0,https://www.facebook.com/4T9MOBGermany,,,,,,f114a0ec-738b-4e50-8f19-57e30f908f20
26
- ,49 15758229310,,,,,,,,49 Niner Empire,Andra,Theunert,[email protected],Cologne State: NRW,,Germany,Joe Camps Sports Bar,Joe Champs,104.0,,,,,,,4ab054e6-6653-4770-bcdb-f448ac2a07f5
27
- ,1795908826,,,,,,,,The Niner Empire Germany Berlin Chapter,Jermaine,Benthin,[email protected],Berlin,,Germany,Sportsbar Tor133,Torstrasse 133,17.0,,,,,,,18dba8cf-ce28-40e3-995a-ee7b871d943b
28
- ,1607512643,,,,,,,,,Heltewig,Thorsten,[email protected],Bornhöved,,Germany,Comeback,Mühlenstraße 11,20.0,,,,,,,e439a3a5-c585-4c44-93d6-4cb19ec536e2
29
- ,1738803983,,,,,,,,49ers Fans Bavaria,Thomas,Igerl,[email protected],Ampfing,,Germany,Holzheim 1a/Ampfing,Holzheim 1a,30.0,https://www.facebook.com/49ersfansbavaria,,,,,,80099d97-0d21-46e1-8403-69c87f3bebd2
30
- ,1234567899,http://germany.theninerempire.com/,,,,,,,The Niner Empire Germany - North Rhine-Westphalia Chapter,Timo,Allhoff,[email protected],Duesseldorf,,Germany,Knoten,Kurze Strasse 1A,62.0,,,,,,,3545d9f1-cf47-4f11-b415-5ad73aef7a4a
31
- ,1708859408,,,,,,,,Niner Empire Germany-NRW Chapter,Hermann,van,[email protected],Cologne,,Germany,Joe Champs Sportsbar Cologne,Hohenzollernring 1 -3,27.0,,,,,,,22b5c95d-456e-4dea-a7d2-39cbdbaadda2
32
- ,3.53E+11,,,,,,,,The Irish Faithful,Colly,Mc,[email protected],Dublin 13,,Ireland,Busker On The Ball,13 - 17 Fleet Street,59.0,,,https://twitter.com/49ersIre,,,,d3002991-05db-4ad1-9b34-00653f41daa7
33
- ,0039 3282181898,,,,,,,,49ers Italian Fan Club,Enzo,Marrocchino,[email protected] + [email protected],Fiorano Modenese,,Italy,The Beer Corner,"Via Roma, 2/A",50.0,https://www.facebook.com/groups/49ersItalianFanClub,,,,,,7ffab46c-8924-4c74-af34-159a02364b2f
34
- ,649058694,https://laminapodcast.wixsite.com/lamina,,,,,,,Mineros Spanish Faithful,Luis,Miguel,[email protected] + [email protected],Madrid,,Spain,Penalti Lounge Bar,Avenida Reina 15,15.0,,,,,,,5ebfd5fb-bbf0-4701-b6d8-223b240c8d28
35
- ,6507841235,http://www.sportssf.com.br,,,,,,,Equipe Sports SF,Alessandro,Marques,[email protected],Sao Paulo,,Brazil,"Website, Podcast, Facebook Page, Twitter","Rua Hitoshi Ishibashi, 11 B",14.0,,,,,,,bc5329a5-bfda-4edc-be84-dcdb8afa7cbe
36
- ,1197444761,http://www.49ersbrasil.com.br,,,,,,,49ers Brasil,Fabio,Moraes,[email protected],"Campo Limpo, Sao Paulo",,Brazil,Bars and Restaurants in São Paulo - SP,,870.0,,,,,,,16ae7f7d-c1bc-46ab-a959-a60c49587218
37
- ,5511992650,,,,,,,,San Francisco 49ers Brasil,Otavio,Alban,[email protected],"Sao Bernardo do Campo, Sao Paulo",,Brazil,Multiple locations around south and southeast states of Brazil,,104.0,https://www.facebook.com/groups/49ninersbrasil/,,,,,,5c577d0d-45c5-4c98-963f-6599ca2eb587
38
- ,6046266697,http://www.theninerempire.com,,,,,,,"Niner Empire --Vanouver,BC Chapter",Hector,Alvarado/Neil,[email protected],"Vancouver, BC",,Canada,"The Sharks Club--Langley, BC",20169 88 Avenue,31.0,,,,,,,fff9028c-4504-47c1-8b12-c4b23391d782
39
- ,4167796921,,,,,,,,True North Niners,Shawn,Vromman,[email protected],"Bolton, Ontario",,Canada,Maguire's Pub,284 Queen st E,25.0,,,,,,,0028bcf2-b18f-43c8-bb7c-06b214b4b37f
40
- ,507 66737171,,,,,,,,Faithful Panama,Ricardo,Vallarino,[email protected],,,Panama,5inco Panama,8530 NW 72ND ST,249.0,,,,,,,65d1b90e-c6fa-41ab-aac1-ef32af003121
41
- ,6493015128,,,,,,,,Niner Empire New Zealand,Karam,Chand,[email protected],Auckland,,New Zealand,The Kingslander,470 New North Road,15.0,https://www.facebook.com/#!/groups/212472585456813/,,,,,,9ec7d2ef-2b5b-4192-911c-b293479d9a17
42
- ,6768804977,,,,,,,,49er Fans-Tonga,Nusi,Taumoepeau,[email protected],Nuku'alofa,,Tonga,Tali'eva Bar,14 Taufa'ahau Rd,8.0,,,,,,,24342cfe-2bf4-4072-85a1-baa31f4d0572
43
- ,7857047023,,,,,,,,49ers Faithful UK,Mike,Palmer,[email protected],Greater Manchester,,United Kingdom,the green,Ducie street Manchester Greater Manchester Lancashire m1 United Kingdom,100.0,,,,,,,d84d8a63-2f4c-4cda-84a2-1c5ef09de68c
44
- ,7506116581,www.49erfaithfuluk.co.uk,,,,,,,49er Faithful UK,Lee,Gowland,[email protected],Newcastle,,United Kingdom,Grosvenor Casino,100 St James' Blvd Newcastle Tyne & Wear CA 95054 United Kingdom,3000.0,,,,,,,1cfc9512-821c-4168-96dc-dd6fe3664fa7
45
- ,8774734977,,,,,,,,49ers of United Kingdom,Nauman,Malik,[email protected],London,,United Kingdom,The Sports Cafe,80 Haymarket London SW1Y 4TE United Kingdom,8.0,,,,,,,c3163f08-1d11-4e32-9bc5-494d7869935a
46
- ,1616553629,,,,,,,,Niner Empire UK,Mike,Palmer,[email protected],Manchester,,United Kingdom,The Green,"Bridge House 26 Ducie Street, Manchester, Manchester M1 2dq United Kingdom",30.0,,,,,,,a35c5604-774c-4820-ba3e-159aca1cd047
47
- ,6264841085,,,,,,,,"San Francisco 49er Fans of Charleston, SC",Kurtis,Johnson,[email protected],Charleston,SC,United States,Recovery Room Tavern,685 King St,12.0,https://www.facebook.com/profile.php?id=100095655455065,,,,,,f8a76108-d201-4daa-b934-e4a091a7e47c
48
- ,5309536097,,,,,,,,530 Empire,Oscar,Mendoza,[email protected],Chico,Ca,United States,Nash's,1717 Esplanade,45.0,,https://www.instagram.com/530empire?igsh=OGQ5ZDc2ODk2ZA%3D%3D&utm_source=qr,,,,,173de46c-bc96-4cff-85a5-f361780d1637
49
- ,(720) 345-2580,,,,,,,,303 Denver Chapter Niner Empire,Andy,Martinez,[email protected],Aurora,CO,United States,Moes Bbq,2727 s Parker rd,30.0,,,,,,,cb00caa7-48f7-41db-bd55-a6f1ca740ba5
50
- ,3238332262,,,,,,,,40NINERS L.A. CHAPTER,JOSE,DIAZ,[email protected],bell,ca,United States,KRAZY WINGS SPORTS & GRILL,7016 ATLANTIC AVE,25.0,,,,,,,57a66cd4-f355-4c30-849f-a6c84f7528ae
51
- ,(434) 441-1187,,,,,,,,434 Virginia Niner Empire,Thomas,Hunt,[email protected],Danville,VA,United States,Kickbacks Jacks,140 Crown Dr,20.0,,,,,,,1b03a988-18e7-4ea5-9c89-34060083eaea
52
- ,(925) 457-6175,,,,,,,,480 Gilbert Niner Empire LLC,Betty,OLIVARES,[email protected],Gilbert,AZ,United States,The Brass Tap,313 n Gilbert rd,100.0,,,,,,,e240475b-f90b-471d-b73d-9f1b331ad9bd
53
- ,8126048419,,,,,,,,Midwest Empire,Travis,Bonnell,[email protected],Evansville,IN,United States,Hooters Evansville,2112 Bremmerton Dr,6.0,https://www.facebook.com/share/5KGRDSPtyHgFYRSP/?mibextid=K35XfP,,,,,,b36619e5-9316-4c17-9779-b9c363443178
54
- ,7075921442,,,,,,,,49er Booster Club of Vacaville,Josh,Ojeda,[email protected],Vacaville,CA,United States,Blondies Bar and Grill,555 Main Street,75.0,,,,,,,d4dd1a9a-cdad-4fa8-93f4-377c51838e39
55
- ,7602655202,,,,,,,,49er Empire High Desert,TJ,Hilliard,[email protected],Hesperia,California,United States,Whiskey Barrel,12055 Mariposa Rd.,89.0,https://www.facebook.com/groups/49erEmpireHighDesertChapter/,,,,,,9154a687-9ea4-400e-92d4-1f8d6a4efd45
56
- ,5308239740,,,,,,,,Cool 49er Booster Club,Paul,Jones,[email protected],Cool,CA,United States,The Cool Beerworks,5020 Ellinghouse Dr Suite H,59.0,,,,,,,bd8a91b8-935c-430e-9383-e1e8f512a395
57
- ,8183269651,,,,,,,,49ersBeachCitiesSoCal,Rick,Mitchell,[email protected],Hermosa Beach,CA,United States,American Junkie Sky Light Bar,American Junkie,100.0,,,,,,,0d2e48b3-fb33-463f-a7ee-e4013f782b0e
58
- ,7202278251,,,,,,,,49ers Denver Empire,Miguel,Alaniz,[email protected],Aurora,Co,United States,Moe's Original BBQ Aurora,2727 S Parker Rd,30.0,,,,,,,49c67b4a-95bb-43df-86d6-89e322259c73
59
- ,3605679487,,,,,,,,49ers Forever Faithfuls,Wayne,Yelloweyes-Ripoyla,[email protected],Vancouver,Wa,United States,Hooligan's sports bar and grill,"8220 NE Vancouver Plaza Dr, Vancouver, WA 98662",10.0,,,,,,,c700e245-1664-4459-8f89-f26b2548d901
60
- ,9566600391,,,,,,,,South Texas 49ers Chapter,Patty,Torres,[email protected],Harlingen,TX,United States,Wing barn,412 sunny side ln,350.0,https://www.facebook.com/groups/2815298045413319/?ref=share,,,,,,d212a0be-515c-4895-b0c1-0612b401f380
61
- ,3109547822,,,,,,,,49ers Los Angeles,Jeff,Cheung,[email protected],Hollywood,CA,United States,Dave & Buster's Hollywood,6801 Hollywood Blvd.,27.0,,,,,,,2a650b10-6518-4b6f-882a-fc4d0a4596ff
62
- ,3234765148,,,,,,,,49ers United Of Frisco TX,Frank,Murillo,[email protected],Frisco,TX,United States,The Frisco Bar and Grill,6750 Gaylord Pkwy,1020.0,https://www.facebook.com/groups/49ersunitedoffriscotx/?ref=share&mibextid=hubsqH,,,,,,ca6d549d-ee2c-44fa-aea6-9756596982a1
63
- ,6193151122,,,,,,,,619ers San Diego Niner Empire,Ana,Pino,[email protected],San Diego,California,United States,Bridges Bar & Grill,4800 Art Street,20.0,,,,,,,a15835e7-83fe-43ad-959f-423cd21aed7b
64
- ,6266742121,,,,,,,,626 FAITHFUL'S,Isaac,C. De La Fuente,[email protected],City of Industry,California,United States,Hacienda Heights Pizza Co.,15239 E Gale Ave,40.0,,,,,,,56e577b7-e42b-4381-9caa-905f9fcc08e5
65
- ,6507438522,,,,,,,,Niner Empire 650 Chapter,Vanessa,Corea,[email protected],Redwood City,CA,United States,5th Quarter,976 Woodside Rd,35.0,,http://www.instagram.com/650ninerempire,,,,,2d719e75-080c-4044-872a-3ec473b1ff42
66
- ,6199949071,,,,,,,,714 Niner Empire,Daniel,Hernandez,[email protected],Oxnard,CA,United States,"Bottoms Up Tavern, 2162 West Lincoln Ave, Anaheim CA 92801",3206 Lisbon Lane,4.0,,,,,,,5ce4cb87-dc34-4ac7-afc8-7825cf6993b0
67
- ,9513704443,,,,,,,,9er Elite Niner Empire,Penny,Mapes,[email protected],Lake Elsinore,California,United States,Pin 'n' Pockets,32250 Mission Trail,25.0,,,,,,,a8231999-aba4-4c22-93fb-470237ef3a98
68
- ,4806780578,,,,,,,,Az 49er Faithful,Kimberly,"""""Kimi"""" Daniel",[email protected],Gilbert,Az,United States,Fox and Hound!,1017 E Baseline Rd,58.0,,,,,,,e2bd186c-6620-406e-943d-d0eee22078bb
69
- ,7078896983,,,,,,,,Niners Winers,A.m.,Early,[email protected],Forestville,Ca,United States,Bars and wineries in sonoma and napa counties,River road,25.0,,,,,,,89a50680-7982-421d-961c-80fc04a84c4b
70
- ,2144897300,,,,,,,,a_49er fan,Angel,Barba,[email protected],wylie,texas,United States,Wylie,922 cedar creek dr.,12.0,,,,,,,2400a836-b97a-46ca-8333-28c2e780ee3d
71
- ,4153206471,,,,,,,,Niner Empire Marin,Aaron,Clark,[email protected],Novato,CA,United States,Moylan's Brewery & Restaurant,15 Rowland Way,13.0,,,,,,,57ef2b36-fb70-4cc1-8565-9210919e4650
72
- ,2095344459,,,,,,,,4T9 Mob,Angel,Cruz,[email protected],Modesto,ca,United States,Jack's pizza cafe,2001 Mchenry ave,30.0,,,,,,,17a33262-42cb-45a2-a05d-df3a56261411
73
- ,5708529383,,,,,,,,North Eastern Pennsyvania chapter,Benjamin,Simon,[email protected],Larksville,PA,United States,Zlo joes sports bar,234 Nesbitt St,25.0,,,,,,,1d2a73c1-b52e-495c-9b8f-fe505b85bea1
74
- ,5039150229,,,,,,,,PDX Frisco Fanatics,Adam,Hunter,[email protected],Portland,Or,United States,Suki's bar and Grill,2401 sw 4th ave,8.0,,,,,,,597ab710-aa67-41fe-abc7-183eb5215960
75
- ,(408) 981-0615,,,,,,,,The 101 Niner Empire,ANDRONICO [Adrian],FERNANDEZ,[email protected],Morgan Hill,CA,United States,Huntington Station restaurant and sports pub,Huntington Station restaurant and sports pub,10.0,https://www.facebook.com/THE101NINEREMPIRE/,,,,,,daacbcbf-ae02-4057-bd41-555bf8dc954d
76
- ,8147901621,,,,,,,,Faithful Tri-State Empire,Armando,Holguin,[email protected],Erie,PA,United States,Buffalo Wild Wings,2099 Interchange Rd,10.0,https://www.facebook.com/groups/1145565166387786/,,,,,,6ee93085-1711-4bbc-9d3a-cd894470c4bf
77
- ,9282100493,,,,,,,,YUMA Faithfuls,Steven,Navarro,[email protected],Yuma,AZ,United States,Hooters,1519 S Yuma Palms Pkwy,305.0,Yuma Faithfuls (FaceBook group page),,,,,,7d8634f9-d608-4589-a06c-cf0be4d539bc
78
- ,5103146643,,,,,,,,49ER EMPIRE SF Bay Area Core Chapter,AJ,Esperanza,[email protected],Fremont,california,United States,Jack's Brewery,39176 Argonaut Way,1500.0,,,,,,,ca4820aa-5a1c-4777-9a8e-49d229544c08
79
- ,8506982520,,,,,,,,Niner Empire Orlando Chapter,Aaron,Hill,[email protected],Orlando,FL,United States,Underground Public House,19 S Orange Ave,50.0,,,,,,,a04e732d-8850-4b55-9354-cbc5a3167e14
80
- ,5805913565,,,,,,,,Niner Artillery Empire,Alicia/Airieus,DeLeon/Ervin,[email protected],517 E Gore Blvd,OK,United States,Sweet Play/ Mike's Sports Grill,2610 Sw Lee Blvd Suite 3 / 517 E Gore Blvd,25.0,,,,,,,743983ca-55ad-40a7-93c2-9051bf14e946
81
- ,5104993415,,,,,,,,510 Empire,Alex,Banks,[email protected],Alameda,CA,United States,McGee's Bar and Grill,1645 Park ST,10.0,,,,,,,0e8229f9-4ec0-4c6e-bd50-c7f385f092f8
82
- ,5105082055,,,,,,,,Garlic City Faithful,Abdul,Momeni,[email protected],Gilroy,CA,United States,Straw Hat Pizza,1053 1st Street,3.0,,,,,,,f4b92962-24e0-4706-b62c-21d60f3a9055
83
- ,2092918080,,,,,,,,Faithful to the Bay,Angel,Alvarez,[email protected],Merced,CA,United States,Home,Mountain mikes pizza,15.0,,,,,,,c8a2f333-b375-4015-868d-0476c7fa7780
84
- ,5627391639,,,,,,,,O.C. NINER EMPIRE FAITHFUL'S,Angel,Grijalva,[email protected],Buena park,CA,United States,Ciro's pizza,6969 la Palma Ave,10.0,,,,,,,4e0bba17-56d7-466b-8391-4000245ed73a
85
- ,408-209-1677,,,,,,,,408 Faithfuls,Angelina,Arevalo,[email protected],Milpitas,CA,United States,Big Al's Silicon Valley,27 Ranch Drive,50.0,IG- @408faithfuls,,,,,,a61907c4-11c0-4f84-9273-443043ef9a48
86
- ,6507841235,,,,,,,,415 chapter,Angelo,Hernandez,[email protected],san francisco,California,United States,49er Faithful house,2090 Bryant street,200.0,,,,,,,5823848e-b7b8-4be4-bc6b-92546a7324f2
87
- ,3038641585,,,,,,,,HairWorks,Annie,,[email protected],Denver,Co,United States,hairworks,2201 Lafayette at,1.0,,,,,,,ccfd888f-3eae-4aa5-b532-a93cc157945f
88
- ,(925) 481-0343,,,,,,,,49ers Room The Next Generation Of Faithfuls,Antonio,Caballero,[email protected],Tlalnepantla de Baz,CA,United States,Buffalo Wild Wings Mindo E,Blvd. Manuel Avila Camacho 1007,12.0,,,,,,,a3497e7c-ec38-428a-bdb8-2ef76ae83d44
89
- ,2098182020,,,,,,,,Niner Empire 209 Modesto Chapter,Paul,Marin,[email protected],Modesto,CA,United States,Rivets American Grill,2307 Oakdale Rd,50.0,https://www.facebook.com/niner.ninjas?ref=bookmarks,,,,,,153e3594-3d15-42e5-a856-f4c406c6af79
90
- ,2539616009,,,,,,,,Lady Niners of Washington,April,Costello,[email protected],Auburn,Wa,United States,Sports Page,2802 Auburn Way N,13.0,,,,,,,9601d7a6-6282-4247-8ae3-2ea160bc757f
91
- ,4803290483,,,,,,,,AZ 49ER EMPIRE,GARY,MARTINEZ,[email protected],Phoenix,AZ,United States,The Native New Yorker (Ahwatukee),5030 E Ray Rd.,130.0,,,,,,,96c86314-45fc-4e05-a2d5-c2a840cba21d
92
- ,9096214821,,,,,,,,The Bulls Eye Bar 49ers,Armando,M. Macias,[email protected],Montclair,California,United States,Black Angus Montclair California,9415 Monte Vista Ave.,20.0,,,,,,,477c7c87-6dd8-4cf6-8331-3f25ba1db67b
93
- ,5404245114,,,,,,,,NoVa Tru9er Empire,Jay,balthrop,[email protected],Woodbridge,va,United States,Morgan's sports bar & lounge,3081 galansky blvd,40.0,,,,,,,ac7b5a8a-d4b1-4b7e-9810-78ee9fe73ba2
94
- ,(951) 691-6631,,,,,,,,Niner Empire 951 Faithfuls,Samuel,Betancourt,[email protected],Hemet,CA,United States,"George's Pizza 2920 E. Florida Ave. Hemet, Ca.",2920 E. Florida Ave.,30.0,https://www.facebook.com/951Faithfuls/,,,,,,a5990335-b063-4f4a-896a-7959e2e559ed
95
- ,8174956499,,,,,,,,Spartan Niner Empire Texas,Adreana,Corralejo,[email protected],Arlington,TX,United States,Bombshells Restaurant & Bar,701 N. Watson Rd.,12.0,,,,,,,e1a357d9-a7f1-4711-9d5b-fd15e9172330
96
- ,3234720160,,,,,,,,THEE EMPIRE FAITHFUL LOS ANGELES COUNTY,Dennis,Guerrero II,[email protected],Los Angeles,CA,United States,Home,1422 Saybrook Ave,25.0,,,,,,,47ecfc8e-62ef-4eb8-93c7-008b6008cc16
97
- ,5103756841,,,,,,,,Niner Empire Richmond 510 Chapter,David,Watkins,[email protected],San Pablo,Ca,United States,Noya Lounge,14350 Laurie Lane,50.0,,,,,,,c3f4ca5a-ba09-41d3-9ed0-36027c2b3523
98
- ,9254810343,,,,,,,,Thee Empire Faithful The Bay Area,Ant,Caballero,[email protected],Oakley,Ca,United States,Sabrina's Pizzeria,2587 Main St,20.0,,,,,,,803dea68-563c-4f52-ad85-616523b60788
99
- ,8049013890,,,,,,,,The Mid Atlantic Niner Empire Chapter,Jacob,Tyree,[email protected],Mechanicsville,Va,United States,The Ville,7526 Mechanicsville Turnpike,10.0,https://www.facebook.com/#!/groups/290644124347980/,,,,,,4a75fa22-38c9-4d95-8e19-0e0d24eba4ef
100
- ,6058683729,,,,,,,,Big Sky SF 49ers,Jo,Poor Bear,[email protected],Billings,MT,United States,Old Chicago - Billings,920 S 24th Street W,10.0,,,,,,,fe22a382-f319-410e-8d77-54919bc2f132
101
- ,808-387-7075,,,,,,,,Hawaii Niner Empire,Bryson,Kerston,[email protected],Waipahu,HI,United States,The Hale,94-983 kahuailani st,25.0,,,,,,,19d83148-d992-4592-8d90-26593b22b373
102
- ,5597896991,,,,,,,,Niner Empire Porterville Cen Cal 559,Olivia,"""""bo"""" Ortiz or Patricia Sanchez",[email protected],Porterville,Ca,United States,Pizza Factory/ Local Bar & Grill,897 W. Henderson,34.0,,,,,,,5450bccf-e4f5-4837-82cf-92db58d34cf8
103
- ,4132734010,,,,,,,,W.MA CHAPTER NINER EMPIRE,BECKY,OSORIO,[email protected],CHICOPEE,MA,United States,MAXIMUM CAPACITY,116 SCHOOL ST,36.0,,,,,,,b9f042ca-3f4c-4398-abc0-8dd37a4d6c8c
104
- ,(757) 708-0662,,,,,,,,Hampton Roads Niner Empire (Southside Chapter),Braxton,Gaskins,[email protected],Norfolk,VA,United States,Azalea Inn / Timeout Sports Bar,Azalea Inn / Timeout Sports Bar,40.0,,,,,,,cfea1941-d200-4d5b-9710-8fcf08cfd02d
105
- ,5598042288,,,,,,,,Central Valley Niners,Jesse,moreno,[email protected],Visalia,Ca,United States,Pizza factory,3121 w noble,35.0,,,,,,,9b2adc0a-add8-4de7-bd74-0c20ecbd74df
106
- ,6094038767,,,,,,,,Niner Knights,Bryan,Teel,[email protected],Ewing Twp,NJ,United States,Game Room of River Edge Apts,1009 Country Lane,35.0,,,,,,,02a2745f-ff6d-45ce-8bfe-6be369c3fb50
107
- ,3463344898,,,,,,,,Lone Star Niner Empire,Myrna,Martinez,[email protected],Houston,TX,United States,Post oak ice house,5610 Richmond Ave.,33.0,,,,,,,b6d4a8ed-7001-476d-8207-c9272216f10f
108
- ,8082657452,,,,,,,,Hawaii Faithfuls,Rey,Buzon,[email protected],Honolulu,HI,United States,Champions Bar & Grill,1108 Keeaumoku Street,30.0,,,,,,,133e9d7e-7d4f-4286-a393-b0a4446ce4f2
109
- ,9099571468,,,,,,,,49er Faithful of Murrieta,Colleen,Hancock,[email protected],Murrieta,CA,United States,Sidelines Bar & Grill,24910 Washington Ave,30.0,,,,,,,58b91f02-40a4-4557-bb45-2c68f2218951
110
- ,9168221256,,,,,,,,Capitol City 49ers,Erica,Medina,[email protected],Sacramento,CA,United States,Tom's Watch Bar DOCO,Tom's Watch Bar 414 K St suite 180,1300.0,https://www.facebook.com/groups/1226671178132767/?ref=share,,,,,,b50447d8-6d95-4cab-a7e5-228cd42efebd
111
- ,3103496959,,,,,,,,Huntington Beach Faithfuls,Carlos,Pizarro,[email protected],Huntington Beach,CA,United States,BEACHFRONT 301,301 Main St. Suite 101,100.0,,,,,,,e64fcac3-9b00-44ef-9965-03ae97f23f63
112
- ,(210) 375-6746,,,,,,,,Niner Empire Saltillo,Carlos,Carrizales,[email protected],Saltillo,TX,United States,Cadillac Saltillo Bar,Cadillac Saltillo Bar,116.0,Club 49ers Saltillo @ Facebook,,,,,,1511d62f-6ab4-4fcb-8e0e-21c1ff9f76f0
113
- ,9035527931,,,,,,,,Germantown 49er's Club,CM,Rosenthal,[email protected],Memphis,TN,United States,Mr. P's Sports Bar Hacks Cross Rd.,3284 Hacks Cross Road,103.0,,,,,,,3df1dadb-be6b-411f-b455-f954efaf227c
114
- ,12093462496,,,,,,,,49ers faithful,Ray,Castillo,[email protected],KEYES,CA,United States,Mt mikes ceres ca,4618 Blanca Ct,8.0,,,,,,,22877d8e-e1fb-4433-8fe6-1165ead973be
115
- ,2094561796,,,,,,,,Ladies Of The Empire,Catherine,Tate,[email protected],Manteca,Ca,United States,Central Valley and Bay Area,1660 W. Yosemite Ave,247.0,,,,,,,18faedc7-eba5-4224-85ac-124672b7f0c3
116
- ,7027735380,,,,,,,,Las Vegas Niner Empire 702,blu,villegas,[email protected],Las Vegas,NV,United States,Calico Jack's,8200 W. Charleston rd,300.0,,,,,,,fb060075-4c05-4c05-9c1b-fc1531f548a5
117
- ,3107487035,,,,,,,,49ers Faithfuls in DC,Catie,Bailard,[email protected],Washington,DC,United States,Town Tavern,2323 18th Street NW,150.0,,,,,,,78924e81-6889-4b7f-817e-38dcfd040ec7
118
- ,6619722639,,,,,,,,49er Booster Club of Roseville,Cece,Moats,[email protected],Roseville,CA,United States,Bunz Sports Pub & Grub,311 Judah Street,32.0,,,,,,,c4b728a4-8c84-4abb-acd1-d8952768fbf3
119
- ,6613033911,,,,,,,,Kern County Niner Empire,Sal,Luna,[email protected],Bakersfield,Ca,United States,Firehouse Restaurant,7701 White Lane,100.0,,,,,,,1367e775-79ba-40d6-98d8-dbcb40140055
120
- ,8315126139,,,,,,,,Central Coast Niner Empire 831,Rafael,Garcia,[email protected],Salinas,CA,United States,Buffalo Wild Wings,1988 North Main St,11.0,Facebook.com/CentralCoastNinerEmpire831,,,,,,75539787-79ff-423d-8de4-53b030861d69
121
- ,8315126139,,,,,,,,Central Coast Niner Empire 831,Rafael,Garcia,[email protected],Salinas,CA,United States,Pizza Factory,1945 Natividad Rd,22.0,Facebook.com/CentralCoastNinerEmpire831,,,,,,c86453f6-0155-4458-9a26-e211aa2b8e33
122
- ,2817509505,,,,,,,,Houston Niner Empire,Carlos,Duarte,[email protected],Houston,TX,United States,Home Plate Bar & Grill,1800 Texas Street,107.0,https://m.facebook.com/HoustonNinerEmpire/,,,,,,60610e12-fa4b-4aac-90b7-9db286dcba5e
123
- ,4068535155,,,,,,,,Train Whistle Faithful,Christopher,Gunnare,[email protected],Mountain View,CA,United States,Savvy Cellar,750 W. Evelyn Avenue,13.0,,,,,,,79dc1fdb-a80c-4571-ac0c-91804b40f886
124
- ,3104659461,,,,,,,,Corpus Christi Chapter Niner Empire,Arturo,Hernandez,[email protected],Corpus Christi,TX,United States,Cheers,419 Starr St.,37.0,,,,,,,194f5fc9-99ed-4c7d-8c0e-d1e5bf00fca2
125
- ,3528070372,,,,,,,,Niner Empire Dade City,Fernando,Chavez,[email protected],Dade City,Florida,United States,Beef O Brady's Sports Bar,14136 7th Street,22.0,,,,,,,cbba3ff2-3599-457b-ab09-728f11ff636d
126
- ,5309536097,,,,,,,,Chico Faithfuls,Oscar,Mendoza,[email protected],Chico,CA,United States,Mountain Mikes Pizza,1722 Mangrove Ave,32.0,http://facebook.com/chicofaithfuls,,,,,,81bfb4e9-02c5-41eb-9fbe-1aff93df64a3
127
- ,8473099909,,,,,,,,Chicago Niners,Chris,Johnston,[email protected],Chicago,IL,United States,Cheesie's Pub & Grub 958 W Belmont Ave Chicago IL 60657,958 W Belmont Ave,75.0,,,,,,,46a3ddfb-ed32-48e2-80b0-479a662e0b2c
128
- ,7076556423,,,,,,,,Niner Empire 916 Sac Town,Lehi,Amado/Anthony Moreno,[email protected],Sacramento,CA,United States,El Toritos,1598 Arden blvd,40.0,http://www.Facebook.com,,,,,,6f62f732-6bdc-41a7-a026-4d6c4b744388
129
- ,7193377546,,,,,,,,49ER EMPIRE COLORADO CHAPTER,CHARLES,M. DUNCAN,[email protected],Colorado Springs,Co.,United States,FOX & HOUND COLORADO SPRINGS,3101 New Center Pt.,25.0,,,,,,,55bc2d2d-a3b7-4afc-a7a4-651f85c84c0f
130
- ,3364512567,,,,,,,,49ers NC Triad Chapter,Christopher,Miller,[email protected],Greensboro,NC,United States,Kickback Jack's,1600 Battleground Ave.,10.0,,,,,,,e0822b86-9589-4d0d-a8b0-8c7eaafa5967
131
- ,4588992022,,,,,,,,Central Oregon 49ers Faithful,George,Bravo,[email protected],Redmond,OR,United States,Redmond Oregon,495 NW 28th St,1.0,,,,,,,dcbb58a3-91a8-4b6b-a7d1-fcfcb4b5c5ba
132
- ,3108979404,,,,,,,,Westside 9ers,Naimah,Shamsiddeen,[email protected],Carson,CA,United States,Los Angeles,1462 E Gladwick St,20.0,,,,,,,c9767f63-b044-409a-96ef-16be4cb3dc9f
133
- ,2173173725,,,,,,,,Niner Empire Illinois Chapter,Max,Tuttle,[email protected],Mattoon,Illinois,United States,"residence, for now",6 Apple Drive,6.0,,,,,,,722b3236-0c08-4ae6-aa84-f917399cc077
134
- ,2089642981,,,,,,,,Treasure Valley 49er Faithful,Curt,Starz,[email protected],Star,ID,United States,The Beer Guys Saloon,10937 W State St,50.0,https://www.facebook.com/TV49erFaithful/,,,,,,b62c31fd-d06e-4e38-b6da-5c9f4259a588
135
- ,2039484616,,,,,,,,Ct faithful chapter,Tim,Maroney,[email protected],stamford,ct,United States,buffalo wild wings,208 summer st,33.0,,,,,,,e0da3bfc-c3dc-4576-9d0a-88c90a3f39ec
136
- ,3057780667,,,,,,,,305 FAITHFUL EMPIRE,Damien,Lizano,[email protected],Miami,FL,United States,Walk-On's,9065 SW 162nd Ave,18.0,,,,,,,7a1980ac-ca6a-4b85-8478-a7fb23796fd3
137
- ,1415902100,,,,,,,,Fillmoe SF Niners Nation Chapter,Daniel,Landry,[email protected],San Francisco,CA,United States,Honey Arts Kitchen by Pinot's,1861 Sutter Street,16.0,,,,,,,279042a3-3681-41c1-bed1-68c8a111c458
138
- ,6199949071,,,,,,,,49ers So Cal Faithfuls,Daniel,Hernandez,[email protected],Oxnard,CA,United States,So Cal (Various locations with friends and family),3206 Lisbon Lane,4.0,,,,,,,6a6c69b0-a778-4411-8f63-268d28c48062
139
- ,(817) 675-7644,,,,,,,,Niner Empire DFW,Danny,Ramirez,[email protected],Arlington,TX,United States,Walk-Ons Bistreaux,Walk-Ons Bistreaux,75.0,www.facebook.com/ninerempiredfw,,,,,,3335203d-008c-419d-bf12-66d7951910a4
140
- ,(505) 480-6101,,,,,,,,Duke City Faithful Niner Empire,Danny,Roybal,[email protected],Albuquerque,NM,United States,Duke City Bar And Grill,6900 Montgomery Blvd NE,93.0,www.facebook.com/@dukecityfaithful505,,,,,,707406f0-991f-4392-828c-4a42b6520e72
141
- ,8089545569,,,,,,,,49ers @ Champions,Davis,Price,[email protected],Honolulu,Hawaii,United States,Champions Bar and Grill,1108 Keeaumoku St,12.0,,,,,,,20807c32-7f81-4d4e-8e04-0e9a3a3b1eca
142
- ,870-519-9373,,,,,,,,Natural State Niners Club,Denishio,Blanchett,[email protected],Jonesboro,AR,United States,"Buffalo Wild Wings, Jonesboro, AR",Buffalo Wild Wings,18.0,,,,,,,0c0ac4aa-5abe-48bd-8045-4f8b45ed8fb9
143
- ,7706664527,,,,,,,,49er Empire - Georgia Chapter,Brian,Register,[email protected],Marietta,ga,United States,Dave & Busters of Marietta Georgia,2215 D and B Dr SE,23.0,https://www.facebook.com/49erEmpireGeorgiaChapter,,,,,,8a6912ea-1ef2-4a99-b9b5-1cc6de5e6d3d
144
- ,(928) 302-6266,,,,,,,,San Francisco 49ers of San Diego,Denise,Hines,[email protected],San Diego,CA,United States,Moonshine Beach,Moonshine Beach Bar,80.0,,,,,,,2105468b-1c9d-4fc5-a238-00bde2262266
145
- ,5204147239,,,,,,,,Sonoran Desert Niner Empire,Derek,Yubeta,[email protected],Maricopa,AZ,United States,Cold beers and Cheeseburgers,20350 N John Wayne pkwy,50.0,Facebook Sonoran Desert Niner Empire,,,,,,2cb6aa09-8f3f-4d8b-8a91-872b9df2c079
146
- ,315-313-8105,,,,,,,,49ers Empire Syracuse 315 Chapter,Dexter,Grady,[email protected],Syracuse,NY,United States,Change of pace sports bar,1809 Grant Blvd,233.0,Facebook 49ers Empire Syracuse 315 Chapter,,,,,,f4650f32-069d-4dcf-a62b-7a932bf764f5
147
- ,8058901997,,,,,,,,Niner Empire Ventura Chapter,Diego,Rodriguez,[email protected],Ventura,CA,United States,El Rey Cantina,El Rey Cantina,20.0,,,,,,,94cf7a13-54e9-4f3f-9727-ce07107552f2
148
- ,(717) 406-4494,,,,,,,,540 Faithfuls of the Niner Empire,Derrick,Lackey Sr,[email protected],Fredericksburg,VA,United States,Home Team Grill,1109 Jefferson Davis Highway,8.0,,,,,,,4a253d76-a16b-40bf-aefe-61f1140f69e8
149
- ,8134588746,,,,,,,,Ninerempire Tampafl Chapter,john,downer,[email protected],tampa,fl,United States,Ducky's,1719 eest Kennedy blvd,25.0,,,,,,,2ca51d2d-6d15-4b84-9e66-98cff363ae64
150
- ,5857393739,,,,,,,,Gold Diggers,Drew,Nye,[email protected],Rochester,New York,United States,The Blossom Road Pub,196 N. Winton Rd,12.0,,,,,,,91dd0e08-1fd4-41a5-8280-ff2e74a49b42
151
- ,2545482581,,,,,,,,Niner Empire Waco Chapter,Dustin,Weins,[email protected],Waco,TX,United States,Salty Dog,2004 N. Valley Mills,36.0,https://www.facebook.com/groups/Waco49ersFans/,,,,,,31438176-2075-4285-b76d-e19ddf0d95e2
152
- ,9253823429,,,,,,,,Niner Empire of Brentwood,Elvin,Geronimo,[email protected],Brentwood,CA,United States,Buffalo Wild Wings,6051 Lone Tree Way,30.0,,,,,,,92abbcf2-007c-4a82-ba94-c714408b3209
153
- ,7173301611,,,,,,,,"NinerEmpire of Lancaster, PA",Eli,Jiminez,[email protected],Lancaster,PA,United States,PA Lancaster Niners Den,2917 Marietta Avenue,50.0,https://www.facebook.com/NinerEmpireLancasterPA,,,,,,33431983-0ac8-446b-859d-5e914de5e39c
154
- ,9156671234,,,,,,,,Empire Tejas 915- El Paso TX,Jr,& Yanet Esparza,[email protected],El Paso,Tx,United States,EL Luchador Taqueria/Bar,1613 n Zaragoza,28.0,,,,,,,6080ae1d-807f-4993-825f-a30efba9a4eb
155
- ,9168221256,,,,,,,,Capitol City 49ers fan club,Erica,medina,[email protected],West Sacramento,CA,United States,Burgers and Brew restaurant,317 3rd St,80.0,,,,,,,27d663fa-1559-4437-8827-7dabba59fdb0
156
- ,6269276427,,,,,,,,Golden Empire Hollywood,Ernie,Todd Jr,[email protected],Los Angeles,CA,United States,Nova Nightclub,7046 Hollywood Blvd,10.0,,https://www.instagram.com/goldenempire49ers/,,,,,c5c601cd-9301-4c5f-b543-c104bcb593cb
157
- ,7202714410,,,,,,,,Spartan Niner Empire Denver,Esley,Sullivan,[email protected],Denver,CO,United States,Downtown Denver,In transition,9.0,Facebook: Spartans of Denver,,,,,,c02ab082-523d-4fa4-9ee6-ed56ca2b07b4
158
- ,3244765148,,,,,,,,49er empire of Frisco Texas,Frank,Murillo,[email protected],Frisco,TX,United States,The Irish Rover Pub & Restaurant,8250 Gaylord Pkwy,150.0,,,,,,,779256ad-df3f-4159-ae6a-c3e0dd536502
159
- ,7079804862,,,,,,,,FAIRFIELD CHAPTER,CHARLES,MCCARVER JR,[email protected],Fairfield,CA,United States,Legends Sports Bar & Grill,3990 Paradise Valley Rd,24.0,https://www.facebook.com/pages/NINER-Empire-Fairfield-Chapter/124164624589973,,,,,,3e509642-808b-4900-bbe9-528c62bd7555
160
- ,5302434949,,,,,,,,Shasta Niners,Ruth,Rhodes,[email protected],Redding,CA,United States,Shasta Niners Clubhouse,4830 Cedars Rd,80.0,,,,,,,b90b0461-013f-4970-9097-1b15f9708b3c
161
- ,4156021439,,,,,,,,NINER EMPIRE FREMONT CHAPTER,Elmer,Urias,[email protected],Fremont,CA,United States,Buffalo Wild Wings,43821 Pacific Commons Blvd,22.0,,,,,,,1d8a9355-cc45-49c5-a3f4-35be92f8f263
162
- ,701-200-2001,,,,,,,,Fargo 49ers Faithful,Sara,Wald,[email protected],Fargo,ND,United States,Herd & Horns,1414 12th Ave N,25.0,,,,,,,ad1580de-5b95-44a5-8d08-50326e67d89e
163
- ,5309022915,,,,,,,,49ER ORIGINALS,Noah,Abbott,[email protected],Redding,CA,United States,BLEACHERS Sports Bar & Grill,2167 Hilltop Drive,50.0,http://www.facebook.com/49ERORIGINALS,,,,,,97bf71f0-276c-4169-8f77-a5a3e0cd98c4
164
- ,8439910310,,,,,,,,"49er Flowertown Empire of Summerville, SC",Michele,A. McGauvran,[email protected],Summerville,South Carolina,United States,Buffalo Wild Wings,109 Grandview Drive #1,20.0,,,,,,,d458ca78-3784-4c95-863b-02141f054063
165
- ,(321) 684-1543,,,,,,,,49ers of Brevard County,Anthony,Lambert,[email protected],Port St Johns,FL,United States,Beef O'Bradys in Port St. Johns,3745 Curtis Blvd,5.0,,,,,,,0ca56830-c077-47eb-9d08-bf16439aa81c
166
- ,9092227020,,,,,,,,Forever Faithful Clique,Rosalinda,Arvizu,[email protected],San Bernardino,CA,United States,The Study Pub and Grill,5244 University Pkwy Suite L,10.0,,,,,,,d1b0fea8-9de5-405a-b4c3-fecb6802f4a2
167
- ,9098090868,,,,,,,,49ERS FOREVER,BOBBY,MENDEZ,[email protected],REDLANDS,CALIFORNIA,United States,UPPER DECK,1101 N. CALIFORNIA ST.,80.0,,,,,,,7084ad06-71a2-474b-90da-6d4d73a464f6
168
- ,6612050411,,,,,,,,Thee Empire Faithful Bakersfield,Faustino,Gonzales,[email protected],Bakersfield,Ca,United States,Senor Pepe's Mexican Restaurant,8450 Granite Falls Dr,20.0,https://www.facebook.com/Thee-Empire-Faithful-Bakersfield-385021485035078/,,,,,,1e1b971b-7526-4a6c-8bd1-853e2032ba8e
169
- ,3109022071,,,,,,,,Saloon Suad,Gary,Fowler,[email protected],Los Angeles,ca,United States,San Francisco Saloon Bar,11501,20.0,,,,,,,c888853d-5055-438c-99f8-9a9904fd76a8
170
- ,7028602312,,,,,,,,Troy'a chapter,Gerardo,Villanueva,[email protected],Troy,OH,United States,Viva la fiesta restaurant,836 w main st,12.0,,,,,,,7f67a44b-ea78-4a7e-93f5-4547ff11131a
171
- ,9099130140,,,,,,,,Niner Empire IE Chapter,Gabriel,Arroyo,[email protected],San Bernardino,California,United States,Don Martins Mexican Grill,1970 Ostrems Way,50.0,http://www.facebook.com/#!/ninerempire.iechapter/info,,,,,,d4ddc730-0f2c-48df-8619-b836dd3fff4b
172
- ,2095701072,,,,,,,,20916 Faithful,Joe,Trujillo,[email protected],Elk Grove,CA,United States,Sky River Casino,1 Sky River Parkway,25.0,,,,,,,d99e6edc-f0db-4c16-a36c-2f4fd0a28283
173
- ,6265396855,,,,,,,,SO. CAL GOLD BLOODED NINER'S,Louie,Gutierrez,[email protected],Hacienda heights,CA,United States,SUNSET ROOM,2029 hacinenda blvd,20.0,Facebook group page/instagram,,,,,,756f1c00-e01c-4363-b610-0714cdfc68c2
174
- ,3053603672,,,,,,,,"South Florida's Faithful, Niner Empire",Dawn,Renae Desborough,[email protected],Homestead,Fl,United States,Chili's in Homestead,2220 NE 8TH St.,10.0,https://www.facebook.com/southfloridafaithfuls,,,,,,7a78bff4-77a2-4643-ac32-4512cc4ce4b0
175
- ,4804527403,,,,,,,,Cesty's 49ers Faithful,Pablo,Machiche,[email protected],Chandler,AZ,United States,Nando's Mexican Cafe,1890 W Germann Rd,25.0,,,,,,,e04aeb81-fae7-466f-8911-791a353ee3f4
176
- ,(956) 342-2285,,,,,,,,Niner Gang Empire,Marquez,Gonzalez,[email protected],EDINBURG,TX,United States,Danny Bar & Grill,4409 Adriana,2.0,,,,,,,a34c9b30-182f-42c0-a8a5-258083109556
177
- ,7852700872,,,,,,,,The Bell Ringers,Gretchen,Gier,[email protected],Manhattan,KS,United States,Jeff and Josie Schafer's House,1517 Leavenworth St.,10.0,,,,,,,4df8603b-757c-4cb8-b476-72e4c2a343da
178
- ,5627391639,,,,,,,,O.C. NINER EMPIRE FAITHFUL'S,Angel,Grijalva,[email protected],Buena park,CA,United States,Ciro's pizza,6969 la Palma Ave,10.0,,,,,,,4e0bba17-56d7-466b-8391-4000245ed73a
179
- ,8176757644,,,,,,,,Niner Empire DFW,Danny,Ramirez,[email protected],Bedford,TX,United States,Papa G's,2900 HIGHWAY 121,50.0,,,,,,,40693c50-8e07-4fb8-a0bc-ecf3383ce195
180
- ,2092624468,,,,,,,,Hilmar Empire,Brian,Lopes,[email protected],Hilmar,Ca,United States,Faithful House,7836 Klint dr,10.0,,,,,,,5d6b4504-ce14-49a1-a1ab-0b8147f15e26
181
- ,3045082378,,,,,,,,49ers of West Virginia,Herbert,Moore IV,[email protected],Bridgeport,WV,United States,Buffalo WIld Wings,45 Betten Ct,2.0,,,,,,,d7a360ca-83b2-442a-ae2a-3079163febff
182
- ,6185593569,,,,,,,,618 Niner Empire,Jared,Holmes,[email protected],Carbondale,IL,United States,"Home Basement aka """"The Local Tavern""""",401 N Allyn st,3.0,,,,,,,f8a5299d-77bd-414e-acad-c6ad306d4ce2
183
- ,808-989-0030,,,,,,,,NINER EMPIRE HAWAII 808,KEVIN,MEWS,[email protected],HONOLULU,HI,United States,DAVE AND BUSTERS,1030 AUAHI ST,40.0,,,,,,,67232110-4863-40da-be01-a95147537a9c
184
- ,(808) 989-0030,,,,,,,,NINER EMPIRE HAWAII 808,KEVIN,MEWS,[email protected],Honolulu,HI,United States,Buffalo Wild Wings -Pearl City,1644 Young St # E,25.0,,,,,,,eee2e97f-1d1f-4552-abbf-c615e64f8377
185
- ,8323734372,,,,,,,,H-Town Empire,Cedric,Robinson,[email protected],Houston,Tx,United States,Skybox Bar and Grill,11312 Westheimer,30.0,,,,,,,b107099e-c089-4591-a9a9-9af1a86cfde1
186
- ,6015691741,,,,,,,,Hub City Faithful,Alan,Thomas,[email protected],Hattiesburg,Mississippi,United States,Mugshots,204 N 40th Ave,12.0,,,,,,,3053cc3e-569a-45b7-88bc-71976c4cc078
187
- ,4043191365,,,,,,,,Spartan Niner Empire Georgia,Idris,Finch,[email protected],Duluth,GA,United States,Bermuda Bar,3473 Old Norcross Rd,100.0,,,,,,,d0ceeb91-609f-4cb2-acc1-15de88158b28
188
- ,6462357661,,,,,,,,Westchester County New York 49ers Fans,Victor,Delgado aka 49ers Matador,[email protected],Yonkers,New York,United States,"We meet at 3 locations, Burkes Bar in Yonkers, Matador's Fan Cave and Finnerty's",14 Troy Lane,46.0,https://www.facebook.com/groups/250571711629937/,,,,,,c220a934-4ad4-495a-bfeb-221372e9720a
189
- ,8319702480,,,,,,,,Niner Empire 831,Luis,Pavon,[email protected],Salinas,Ca,United States,Straw Hat Pizza,156 E. Laurel Drive,30.0,,,,,,,604a9fae-f09d-4da2-af38-438179acb910
190
- ,5033080127,,,,,,,,Niner Empire Portland,Joshua,F Billups,[email protected],Clackamas,Oregon,United States,Various,14682 SE Sunnyside Rd,25.0,,,,,,,b10f5432-4dd0-4a27-a4c9-e15a68753edf
191
- ,2815464828,,,,,,,,49ers Empire Galveston County Chapter,Terrance,Bell,[email protected],Nassau Bay,TX,United States,Office,1322 Space Park Dr.,9.0,,,,,,,e4c645ab-b670-44c3-8ea2-f13dd0870bf5
192
- ,4153707725,,,,,,,,NINER EMPIRE,Joe,Leonor,[email protected],Brisbane,Ca,United States,7 Mile House,2800 Bayshore Blvd,8000.0,,,,,,,95c25b54-1ac7-40ec-8ec2-09fc59b3da17
193
- ,6173350380,,,,,,,,Boston San Francisco Bay Area Crew,Isabel,Bourelle,[email protected],Boston,MA,United States,The Point Boston,147 Hanover Street,50.0,https://www.facebook.com/groups/392222837571990/,,,,,,8676e40c-bf96-41ec-903d-cffc999b853e
194
- ,6173350380,,,,,,,,49ers Faithful of Boston,Isabel,Bourelle,[email protected],Boston,MA,United States,"The Point, Boston, MA",147 Hanover Street,100.0,https://www.facebook.com/49ersfanBoston,,,,,,3a3e2b88-2f04-4094-a58d-8681775b625f
195
- ,9098153880,,,,,,,,Riverside 49ers Booster Club,Gus,Esmerio,[email protected],Riverside,California,United States,Lake Alice Trading Co Saloon &Eatery,3616 University Ave,20.0,,,,,,,dc830ca3-fe01-43bb-aa7e-d5bb75247b56
196
- ,3187893452,,,,,,,,318 Niner Empire,Dwane,Johnson (Jayrock),[email protected],Monroe,La.,United States,318 Niner Empire HQ,400 Stone Ave.,35.0,,,,,,,9ca185c4-2ab6-46d9-a059-e7720899647c
197
- ,5127872407,,,,,,,,The Austin Faithful,Jeffrey,Cerda,[email protected],Austin,TX,United States,8 Track,2805 Manor Rd,100.0,,,,,,,ade1fdc7-d2b5-4276-8e34-4df3075e37a0
198
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,TX,United States,Sir Winston's Pub,2522 Nacogdoches Rd.,150.0,,,,,,,72248fc0-155b-4ffe-ad5a-e95e236e24ed
199
- ,5097684738,,,,,,,,NINER EMPIRE OF THE 509,JESUS,MACIAS,[email protected],Spokane,WA,United States,Mac daddy's,"808 W Main Ave #106, Spokane, WA 99201",25.0,,,,,,,cd737922-c027-40d2-a322-f81f17c69e0f
200
- ,19496329301,,,,,,,,SOCAL OC 49ERS,James,Di Cesare Jr,[email protected],Newport Beach,CA,United States,The Blue Beet,107 21st Place,25.0,,,,,,,9ff1a8da-a565-4e98-a33e-9fe617c7ad79
201
- ,7027692152,,,,,,,,Sin City Niner Empire,Jay,Patrick Bryant-Chavez,[email protected],Henderson,NV,United States,Hi Scores Bar-Arcade,65 S Stephanie St.,10.0,,,,,,,9b748d0a-b684-462a-9731-d5d0141a0d06
202
- ,2093862570,,,,,,,,Central Valley 9er Faithful,Jenn,Palacio,[email protected],Turlock,CA,United States,Mountain Mike's,409 S Orange St.,12.0,,,,,,,c0edc149-153d-42e6-8520-aba4174b832d
203
- ,4089104105,,,,,,,,Niner Squad,Joseph,Perez,[email protected],San Jose,CA,United States,"4171 Gion Ave San Jose,Ca",4171 Gion Ave,25.0,,,,,,,5c2b13a8-60d9-4cef-b757-97a6b0b988e4
204
- ,2094897540,,,,,,,,merced niner empire,john,candelaria sr,[email protected],merced,ca,United States,round table pizza,1728 w olive ave,12.0,,,,,,,6847f646-5383-4226-bcf1-4059695eba82
205
- ,7604120919,,,,,,,,NINERS ROLLIN HARD IMPERIAL VALLEY CHAPTER,Juan,Vallejo,[email protected],Brawley,CA,United States,SPOT 805,550 main Street,45.0,,,,,,,7f347e49-2ac2-418e-a6f1-2614ea23040a
206
- ,3856257232,,,,,,,,Tooele County 49ers,Jon,Proctor,[email protected],TOOELE,UT,United States,"Pins and Ales - 1111 N 200 W, Tooele, UT 84074",1111 N 200 W,30.0,https://www.facebook.com/groups/173040274865599,,,,,,52d1de92-c675-4381-b931-2de6bb638966
207
- ,3165194699,,,,,,,,49ers united of wichita ks,Josh,Henke,[email protected],Wichita,KS,United States,Hurricane sports grill,8641 w 13th st suite 111,206.0,Facebook 49ers united of wichita ks,,,,,,4d21411d-a062-4659-9d06-c1f051ab864c
208
- ,8282919599,,,,,,,,828 NCNINERS,Jovan,Hoover,[email protected],Hickory,NC,United States,Coaches Neighborhood Bar and Grill,2049 Catawba Valley Blvd SE,10.0,,,,,,,c3764610-9b72-46b7-81fa-2f7d5876ac89
209
- ,3207749300,,,,,,,,Chicago 49ers Club,Jonathan,West,[email protected],Chicago,IL,United States,The Globe Pub,1934 West Irving Park Road,12.0,,,,,,,d5af1ee6-11a8-42e5-8f8e-08e77ee097e9
210
- ,5033174024,,,,,,,,Niner Empire Vancouver,Justin,Downs,[email protected],Vancouver,WA,United States,Heathen feral public house,1109 Washington St,567.0,,,,,,,19f191e8-2507-4ac7-b6d9-2ae5e06a7bf9
211
- ,7572565334,,,,,,,,Hampton Roads Niners Fanatics,Steve,Mead,[email protected],Hampton,VA,United States,Nascar Grille,1996 Power Plant Parkway,65.0,,,,,,,3d40d597-6ecb-451f-ac63-3516c5862d1f
212
- ,(859) 991-8185,,,,,,,,Cincy Faithful,Joshua,Karcher,[email protected],Newport,KY,United States,Buffalo Wild Wings,83 Carothers Rd,4.0,,,,,,,81e7066a-e9e2-41cb-814c-fc579fe33401
213
- ,4058028979,,,,,,,,Southside OKC Faithful Niners,Gary,Calton,[email protected],Oklahoma City,Oklahoma,United States,CrosseEyed Moose,10601 Sout Western Ave,6.0,,,,,,,1b7e81f4-86ee-42fa-a98a-2fec2152c9d9
214
- ,7078899236,,,,,,,,707 FAITHFULS,Enrique,Licea,[email protected],Wine country,CA,United States,Wine country,"Breweries, restaurant's, wineries, private locations",1000.0,,707 faithfuls ( INSTAGRAM),,,,,ef756711-1e5b-43d7-bd85-751f5b5126e2
215
- ,6623134320,,,,,,,,NINER EMPIRE MEMPHIS CHAPTER,Kenita,Miller,[email protected],Memphis,Tennessee,United States,360 Sports Bar & Grill,3896 Lamar Avenue,40.0,,,,,,,90ad117c-76c2-4be3-acb7-c5ccaa2159e8
216
- ,(843) 437-3101,,,,,,,,Chucktown Empire 49ers of Charleston,Kentaroe,Jenkins,[email protected],North Charleston,SC,United States,Chill n' Grill Sports bar,"2810 Ashley Phosphate Rd A1, North Charleston, SC 29418",20.0,https://m.facebook.com/groups/1546441202286398?ref=bookmarks,,,,,,bc500cec-4845-4282-897d-ffe1080962ff
217
- ,7278359840,,,,,,,,Spartans Niner Empire Florida,Ram,Keomek,[email protected],Tampa,FL,United States,Ducky's Sports Bar,1719 Kennedy Blvd,12.0,Spartans Empire Florida (Facebook),,,,,,3d65bb01-ff6b-4762-b55f-f59d5d63e057
218
- ,4159871795,,,,,,,,Palm Springs Area 49er Club,Kevin,Casey,[email protected],Palm Springs,CA,United States,The Draughtsmen,1501 N Palm Canyon,15.0,,,,,,,5cb997b6-0b71-405b-8f77-9bb3e30b05bb
219
- ,907351-8367,,,,,,,,49th State Faithful,James,Knudson,[email protected],Anchorage,AK,United States,Al's Alaskan Inn,7830 Old Seward Hwy,202.0,Facebook 49th State Faithful,,,,,,dab5ce35-eacc-4dc0-8b7e-6a6d211e1ce7
220
- ,6232241316,,,,,,,,49er faithful of Arizona ( of the West Valley ),Koni,Raes,[email protected],Surprise,Az,United States,"Booty's Wings, Burgers and Beer Bar and Grill",15557 W. Bell Rd. Suite 405,10.0,,,,,,,5a3593c9-b29b-4e06-b60f-fe67588ac4ef
221
- ,19096849033,,,,,,,,NINER CORE,Mike,Fortunato,[email protected],Bloomington,CA,United States,Traveling chapter,18972 Grove pl,30.0,,,,,,,ac244352-e9fb-4c4f-b0ef-ce93f5f39df0
222
- ,9168380550,,,,,,,,Forever Faithful RGV (Rio Grande Valley),Karen,Schmidt,[email protected],McAllen,TX,United States,My Place,410 N 17th St,1.0,,,,,,,bd0657d5-8de9-47d3-a690-57824c2f2fbb
223
- ,9166065299,,,,,,,,49ers Sacramento Faithfuls,Leo,Placencia lll,[email protected],West Sacramento,CA,United States,Kick N Mule Restaurant and Sports Bar,2901 W Capitol Ave,250.0,,Instagram page 49erssacramentofaithfuls,,,,,bdfda1af-97ad-4ce2-ba84-76824add8445
224
- ,9098964162,,,,,,,,SO. CAL GOLDBLOOED NINERS,Louie,Gutierrez,[email protected],Industry,CA,United States,Hacienda nights pizza co.,15239 Gale ave,20.0,,,,,,,84a95dd1-6640-4a78-937a-acb9dab23601
225
- ,5105867089,,,,,,,,Niner Empire Hayward chapter,Raul,Sosa,[email protected],Hayward,Ca,United States,Strawhat pizza,1163 industrial pkwy W,30.0,,,,,,,0f046820-2a39-4b2d-9925-cec153cbe8cb
226
- ,6412033285,,,,,,,,49ers Empire Iowa Chapter,Lisa,Wertz,[email protected],Chariton,Iowa,United States,Shoemakers Steak House,2130 Court Ave,194.0,https://www.facebook.com/groups/247559578738411/,,,,,,ee9360bb-fe33-4514-8dac-270ea7d42539
227
- ,5598923919,,,,,,,,Niner Empire of Fresno,Luis,Lozano,[email protected],Fresno,CA,United States,Round Table Pizza,5702 N. First st,215.0,Http://facebook.com/theninerempireoffresno,,,,,,387329b0-fc59-4ffd-97ba-258ed14d4185
228
- ,8602057937,,,,,,,,Connecticut Spartan Niner Empire,Maria,Ortiz,[email protected],East Hartford,Connecticut,United States,Silver Lanes Lounge,748 Silverlane,13.0,,,,,,,63414b29-616c-402e-a076-1034e6e9f5a8
229
- ,2814602274,,,,,,,,"Niner Empire Houston, TX Chapter",Lorenzo,Puentes,[email protected],Houston,Texas,United States,Little J's Bar,5306 Washington Ave,175.0,https://www.facebook.com/NinerEmpireHTX,,,,,,6c8cd651-9f25-436d-abf4-b32fb74b78e3
230
- ,2814085420,,,,,,,,"Niner Empire Houston, TX",lorenzo,puentes,[email protected],Houston,Texas,United States,coaches I-10,17754 Katy Fwy #1,150.0,https://m.facebook.com/NinersFaithfulHTX,,,,,,bc4fcf59-dcf6-42bf-ae74-c7a815569099
231
- ,6265396855,,,,,,,,SO. CAL GOLD BLOODED NINER'S,Louie,Gutierrez,[email protected],Industry,CA,United States,Hacienda heights Pizza Co,15239 Gale Ave,25.0,Facebook group page/instagram,,,,,,ad9a0664-8bf1-4916-b5d3-ca796916e0a5
232
- ,5593597047,,,,,,,,the 559 ers,jose,Ascencio,[email protected],porterville,CA,United States,landing 13,landing 13,10.0,,,,,,,52686405-7db2-48bd-a10c-2b98b58451dd
233
- ,3105705415,,,,,,,,Billings Niners Faithful,Lukas,Seely,[email protected],Billings,MT,United States,Craft B&B,2658 Grand ave,42.0,https://www.facebook.com/groups/402680873209435,,,,,,f7feddb7-c9cc-4e58-85ec-44e947a9f370
234
- ,9016909484,,,,,,,,901 9ers,Darrick,Pate,[email protected],Memphis,Tn,United States,Prohibition,4855 American Way,50.0,,,,,,,21a4b527-ff93-49d5-9c4a-922e5837f99e
235
- ,5127738511,,,,,,,,Tulsa 49ers Faithful,Marcus,Bell,[email protected],Tulsa,OK,United States,Buffalo Wild Wings,6222 E 41st St,140.0,https://www.facebook.com/groups/313885131283800/,,,,,,5da5b69a-9c78-42c3-a5b5-97c12fe93f4b
236
- ,4086853231,,,,,,,,The Niner Empire - 405 Faithfuls - Oklahoma City,Maria,Ward,[email protected],Oklahoma City,OK,United States,The Side Chick 115 E. California Ave,5911 Yale Drive,50.0,https://www.facebook.com/share/FZGC9mVjz3BrHGxf/?mibextid=K35XfP,,,,,,fd0f4a51-00f4-43bc-9e72-38a882537ea7
237
- ,7605404093,,,,,,,,Niner Empire Imperial Valley,Mario,A Garcia Jr,[email protected],Brawley,Ca,United States,Waves Restaurant & Saloon,621 S Brawley Ave,7.0,,,,,,,0ea1991e-ce7a-4816-88be-3d301d3577f9
238
- ,6234519863,,,,,,,,East Valley Faithful,Mark,Arellano,[email protected],Gilbert,AZ,United States,TBD,5106 South Almond CT,20.0,,,,,,,361e1137-b81b-4658-8e63-233f215b8087
239
- ,(360) 970-4784,,,,,,,,360 Niner Empire,Marcus,Dela Cruz,[email protected],Lacey,WA,United States,Dela Cruz Residence,1118 Villanova St NE,20.0,,,,,,,ec208909-5357-48a2-8750-4063c4a7bd2e
240
- ,8042106332,,,,,,,,49ers Booster Club of Virginia,Chris,Marshall,[email protected],Mechanicsville,Virginia,United States,Sports Page Bar & Grill,8319 Bell Creek Rd,10.0,,,,,,,bcd28f5c-8785-447e-903c-d829768bb4d7
241
- ,3605931626,,,,,,,,Niner Empire Tampa,Matthew,Pascual,[email protected],Tampa,FL,United States,The Bad Monkey,1717 East 7th Avenue,18.0,https://www.facebook.com/NinerEmpireTampa,,,,,,ede4a3ad-bdf2-4782-91c6-faf8fae89a2f
242
- ,4062441820,,,,,,,,49ers Faithful Montana State,Melissa,Kirkham,[email protected],Missoula,MT,United States,Not yet determined,415 Coloma Way,40.0,https://www.facebook.com/groups/2370742863189848/,,,,,,432532ef-de67-4373-bf0d-f4608266f555
243
- ,3615632198,,,,,,,,49ers Fan club,Jess,Mendez,[email protected],Corpus Christi,Texas,United States,Click Paradise Billiards,5141 Oakhurst Dr.,25.0,,,,,,,80d1ffb6-f3ca-4ca1-b4f7-a373ea53573e
244
- ,6613438275,,,,,,,,Niner Empire Delano,mike,uranday,[email protected],Delano,ca,United States,Aviator casino,1225 Airport dr,20.0,,,,,,,07c46b33-d48c-4dee-b35b-ff3bec33eef1
245
- ,6159537124,,,,,,,,Mid South Niner Empire,Tyrone,J Taylor,[email protected],Nashville,TN,United States,Winners Bar and Grill,1913 Division St,12.0,,,,,,,dd827169-d413-4ef9-b9e3-38e612db449a
246
- ,6465429352,,,,,,,,49ers Empire New York City,Miguel,Ramirez,[email protected],New York,New York,United States,Off The Wagon,109 MacDougal Street,15.0,,,,,,,151fbf5f-baa0-4d13-bb7d-6f9484355e78
247
- ,7605879798,,,,,,,,49er Empire High Desert,Mike,Kidwell (president),[email protected],hesperia,California,United States,Thorny's,1330 Ranchero rd.,100.0,,,,,,,c758e93b-3a3e-4c2f-990b-1bf9f1cdd6ca
248
- ,3038425017,,,,,,,,Mile High 49ers,Howard,Gibian,[email protected],Denver,Colorado,United States,IceHouse Tavern,1801 Wynkoop St,15.0,,,,,,,7747fcc1-0f07-4288-a19f-abc06417eb6b
249
- ,(323) 440-3129,,,,,,,,NOCO 49ers,Ryan,Fregosi,[email protected],Windsor,CO,United States,The Summit Windsor,4455 N Fairgrounds Ave,677.0,,,,,,,1f6566d0-b6a6-47ef-a8e9-9d1b224cc080
250
- ,4142429903,,,,,,,,Milwaukee Spartans of the Niner Empire,Brandon,Rayls,[email protected],Wauwatosa,WI,United States,jacksons blue ribbon pub,11302 w bluemound rd,5.0,,,,,,,d55f08cc-5a12-4a6e-86bd-cfd1fa971c6a
251
- ,3257165662,,,,,,,,SAN ANGELO NINER EMPIRE,pablo,barrientod,[email protected],san angelo,tx,United States,buffalo wild wings,4251 sherwoodway,15.0,,,,,,,a900674a-7b19-4726-ad29-6f76b4a62bc1
252
- ,5802848928,,,,,,,,580 FAITHFUL,Lowell,Mitchusson,[email protected],Devol,OK,United States,APACHE LONE STAR CASUNO,"Devol, Oklahoma",10.0,,,,,,,56657395-bdb0-4536-9a50-eb97ee18fe5c
253
- ,9373974225,,,,,,,,49ers of Ohio,Monica,Leslie,[email protected],Xenia,Ohio,United States,Cafe Ole',131 North Allison Ave,15.0,,,,,,,b63253fb-6099-4b92-9b87-399ee88f27e5
254
- ,3073653179,,,,,,,,307 FAITHFUL,Michael,Mason,[email protected],Cheyenne,WY,United States,"4013 Golden Ct, Cheyenne, Wyoming",4013 Golden Ct,2.0,,,,,,,793b2d4e-9ad4-495e-bf5e-f84dd09aedf9
255
- ,7609277246,,,,,,,,Mojave Desert 49er Faithfuls,Nicole,Ortega,[email protected],Apple Valley,CA,United States,Gator's Sports Bar and Grill - Apple Valley,21041 Bear Valley Rd,40.0,,,,,,,83a7cb36-feee-4e71-9dea-afa5b17fbe7c
256
- ,9153463686,,,,,,,,The Dusty Faithful,Alejandro,Montero,[email protected],Socorro,TX,United States,The Dusty Tap Bar,10297 Socorro Rd,45.0,,,,,,,d95611e2-f59d-4bdf-9cc3-67417117f372
257
- ,5055451180,,,,,,,,The Duke City Faithful,David,Young,[email protected],Albuquerque,N.M.,United States,Buffalo wild wings,6001 iliff rd.,20.0,,,,,,,451a785e-6805-4a2e-841b-ac6e5e648c7f
258
- ,5203719925,,,,,,,,Emilio,Bustos,,[email protected],Casa grande,Arizona(AZ),United States,Liquor factory bar and deli,930 E Florence,30.0,,,,,,,bec7f13a-7ae7-4ad7-a5c5-ca2b3728785c
259
- ,5054894879,,,,,,,,New Mexico Niner Empire,Charles,Montano,[email protected],Albuquerque,New Mexico,United States,Ojos Locos Sports Cantina,"Park Square,2105 Louisiana Blvd N.E",250.0,,,,,,,bfe07d0d-ca15-400a-aa7d-febdb72f5e51
260
- ,5626593944,,,,,,,,So Cal Niner Empire,Ras,Curtis Shepperd,[email protected],Long Beach,Ca,United States,Gallaghers Irish Pub and Grill,2751 E. Broadway,30.0,,,,,,,8f136975-58ff-4a5d-91c2-1c1220bbb9da
261
- ,9802000224,,,,,,,,49er Faithful of Charlotte,Ryan,Lutz,[email protected],Charlotte,North Carolina,United States,Strike City Charlotte,210 E. Trade St.,353.0,,,,,,,e94f718f-d099-477d-bdbd-40d267f92a93
262
- ,6126365232,,,,,,,,MSP Niner Faithful,Xp,Lee,[email protected],Saint Paul,MN,United States,Firebox BBQ,1585 Marshall Ave,5.0,Www.fb.me/mspniners,,,,,,d4ac6052-9179-41e0-aa32-272586a32b25
263
- ,6019187982,,,,,,,,Mississippi Niner Empire Chapter-Jackson,Nicholas,Jones,[email protected],Jackson,Ms.,United States,M-Bar Sports Grill,6340 Ridgewood Ct.,69.0,,,,,,,24d15539-70b6-40c3-9370-d44429270273
264
- ,9256982330,,,,,,,,BayArea Faithfuls,Jon,Punla,[email protected],Pleasant Hill,California,United States,Damo Sushi,508 Contra Costa Blvd,100.0,,,,,,,a187f582-4978-4706-afe3-9bd37b2468c8
265
- ,4803525459,,,,,,,,AZ49erFaithful,Ignacio,Cordova,[email protected],mesa,az,United States,Boulders on Southern,1010 w Southern ave suite 1,120.0,,,,,,,4e7ff31a-312b-4994-a72a-0d09ac27730a
266
- ,2103164674,,,,,,,,Pluckers Alamo Ranch,Naomi,Robles,[email protected],San Antonio,TX,United States,Pluckers Wong Bar,202 Meadow Bend Dr,45.0,,,,,,,8f14f922-9f58-4ad6-9ec9-327e95011837
267
- ,870-519-9373,,,,,,,,Natural State Niners,Denishio,Blanchett,[email protected],Jonesboro,AR,United States,Buffalo Wild Wings,1503 Red Wolf Blvd,105.0,www.facebook.com/NSNiners,,,,,,8e462fa7-4301-4ff5-abdb-13f2e42b1735
268
- ,5614050582,,,,,,,,North Carolina Gold Blooded Empire,[email protected],,[email protected],Raleigh,North Carolina,United States,Tobacco Road - Raleigh,222 Glenwood Avenue,40.0,,,,,,,3b0873d4-3bf9-4d1b-8ae8-666a17d7b988
269
- ,3365588525,,,,,,,,Spartan Empire of North Carolina,Karlton,Green,[email protected],Greensboro,NC,United States,World of Beer,1310 westover terr,8.0,,,,,,,1cc22c4c-07af-424d-b869-3b5fd1d7d35b
270
- ,(559) 380-5061,,,,,,,,Niner Empire Kings County,Javier,Cuevas,[email protected],Hanford,CA,United States,Fatte Albert's pizza co,110 E 7th St,10.0,,,,,,,ae6d4193-5ba7-41e3-80e3-d67ba38c6dd1
271
- ,5053216498,,,,,,,,New Mexico Gold Rush,Larry,Urbina,[email protected],Rio Rancho,NM,United States,Applebee's,4100 Ridge Rock Rd,25.0,,,,,,,02a826cd-a60f-4c3a-91fc-f245f5ad0e7b
272
- ,650-333-6117,,,,,,,,Niner 408 Squad,Tracey,Anthony,[email protected],San Jose,CA,United States,Personal home,3189 Apperson Ridge Court,25.0,,,,,,,814efa81-10cb-4012-b040-ee33f1e6b156
273
- ,9518670172,,,,,,,,NINER ALLEY,junior,ambriz,[email protected],moreno valley,ca,United States,home,13944 grant st,15.0,,,,,,,eedf3fa0-c63b-495b-90df-9e99eaf3e271
274
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatso's,1704 Bandera Road,25.0,https://www.facebook.com/ninerempire.antonio,,,,,,163ed53e-753a-40b9-aa4d-645c1e9dc673
275
- ,5209711614,,,,,,,,NinerEmpire520,Joseph,(Bubba) Avalos,[email protected],Tucson,AZ,United States,Maloney's,213 North 4th Ave,100.0,,,,,,,a742f2e3-2094-4cbb-b0bd-cbe161f8103b
276
- ,6024594333,,,,,,,,49er Empire Desert West,Daniel,Enriquez,[email protected],Glendale,Arizona,United States,McFadden's Glendale,9425 West Coyotes Blvd,60.0,,,,,,,3b3f7978-53e0-4a0c-b044-be05cb7fad97
277
- ,9155026670,,,,,,,,Niner Empire EPT,Pete,Chavez,[email protected],el paso,tx,United States,knockout pizza,10110 mccombs,12.0,http://www.facebook.com/groups/ninerempireept,,,,,,f97f0dba-9e72-4676-ae77-e316f15490aa
278
- ,7027692152,,,,,,,,"Niner Empire Henderson, NV",Jay,Bryant-Chavez,[email protected],Henderson,Nevada,United States,Hi Scores Bar-Arcade,65 S Stephanie St,11.0,http://www.facebook.com/ninerempirehenderson,,,,,,6dfa800d-540a-443e-a2df-87336994f592
279
- ,9712184734,,,,,,,,Niner Empire Salem,Timothy,Stevens,[email protected],Salem,OR,United States,IWingz,IWingz,200.0,,,,,,,d84f87ab-abaa-4f1a-86bf-8b9c1e828080
280
- ,5599677071,,,,,,,,Niner Empire San Antonio,Jesus,Archuleta,[email protected],San Antonio,Texas,United States,Fatsos,1704 Bandera Rd,30.0,,,,,,,2966907f-4bbd-4c39-ad05-ea710abc7a3d
281
- ,5419440558,,,,,,,,Niner Empire Southern Oregon,Patricia,Alvarez,[email protected],Medford,OR,United States,The Zone Sports Bar & Grill,1250 Biddle Rd.,12.0,,,,,,,5c4c4328-fea5-48b8-af04-dcf245dbed24
282
- ,4199171537,,,,,,,,niner empire faithfuls of toledo,Darren,Sims,[email protected],Toledo,Ohio,United States,Legendz sports pub and grill,519 S. Reynolds RD,27.0,,,,,,,1c77028e-b7a9-4842-b79a-c6a63b2a0061
283
- ,7023033434,,,,,,,,Las Vegas Niner EmpireNorth,Susan,Larsen,[email protected],Las Vegas,NV,United States,Timbers Bar & Grill,7240 West Azure Drive,50.0,,,,,,,919bfebb-e7f4-4813-b154-dc28601e9f71
284
- ,7023715898,,,,,,,,NINER FRONTIER,Tyson,white,[email protected],las vegas,NV,United States,Luckys Lounge,7345 S Jones Blvd,8.0,,,,,,,88cb20a4-fc5e-4f79-a469-0079e0c8495b
285
- ,7604120919,,,,,,,,NINERS ROLLIN HARD IMPERIAL VALLEY,Juan,Vallejo,[email protected],Brawley,CA,United States,SPOT 805 Bar and Grill,550 Main St,40.0,,,,,,,19d647db-7014-4236-9060-7967b62f30cd
286
- ,8282228545,,,,,,,,Niners Rollin Hard EL Valle C.V. Chapter,Joshua,Garcia,[email protected],La Quinta,CA,United States,The Beer Hunters,78483 Highway 111,40.0,,,,,,,8df81a3b-afb7-454c-a504-d190da845e0b
287
- ,4088576983,,,,,,,,Niners United,Eli,Soque,[email protected],Santa Clara,CA,United States,"Levi's Stadium Section 201, Section 110, Section 235 (8 of the 18 members are Season Ticket Holders)",4900 Marie P DeBartolo Way,18.0,,,,,,,91d80ee0-86be-4a80-90f6-b48f7656cf4d
288
- ,3125904783,,,,,,,,San Francisco 49ers Fans of Chicago,Nathan,Israileff,[email protected],Chicago,IL,United States,"Gracie O'Malley's (Wicker Park location), 1635 N Milwaukee Ave, Chicago, IL 60647",Gracie O'Malley's,1990.0,https://www.facebook.com/Chicago49ersFans,,,,,,08b87dde-06a0-4a00-85fc-4b290750d185
289
- ,2017022055,,,,,,,,NJ Niner Empire Faithful Warriors,Joe,Aguiluz,[email protected],Jersey City,New Jersey,United States,O'Haras Downtown,172 1st Street,20.0,https://m.facebook.com/njninerempire,,,,,,963b02b1-fa0d-450c-afe9-ccac1e53db59
290
- ,2017057762,,,,,,,,NJ9ers,Arron,Rodriguez,[email protected],Bayonne,NJ,United States,Mr. Cee's Bar & Grill,17 E 21st Street,35.0,,,,,,,c5d3fad5-6062-453d-a7b5-20d44d892745
291
- ,2088183104,,,,,,,,North Idaho 49ers Faithful,Josh,Foshee,[email protected],Coeur d'Alene,ID,United States,Iron Horse Bar and Grille,407 Sherman Ave,700.0,,,,,,,25a08c6b-414c-430f-891b-86aacac98010
292
- ,5093069273,,,,,,,,Northwest Niner Empire,David,Hartless,[email protected],Ellensburg,WA,United States,Armies Horseshoe Sports Bar,106 W 3rd,145.0,https://www.facebook.com/groups/northwestninerempire/,,,,,,65d8fb43-cd35-4835-887e-80ae2010337b
293
- ,7039691435,,,,,,,,NOVA Niners,Matt,Gaffey,[email protected],Herndon,VA,United States,Finnegan's Sports Bar & Grill,2310 Woodland Crossing Dr,80.0,http://www.facebook.com/nova.niners1,,,,,,5fadd584-8af3-49e7-b518-f8bc9543aa4b
294
- ,8303870501,,,,,,,,Austin Niner Empire,Amber,Williams,[email protected],Austin,Texas,United States,Mister Tramps Pub & Sports Bar,8565 Research Blvd,13.0,http://www.Facebook.com/AustinNinerEmpire,,,,,,989b87b0-7bf5-40f9-82a1-7f6829696f39
295
- ,6462677844,,,,,,,,New York 49ers Club,Joey,Greener,[email protected],new york,ny,United States,Finnerty's Sports Bar,221 2nd Avenue,300.0,,,,,,,d36e4525-9cc4-41fd-9ca9-178f03398250
296
- ,559-664-2446,,,,,,,,Mad-town chapter,Francisco,Velasquez,[email protected],Madera,CA,United States,Madera ranch,28423 Oregon Ave,15.0,,,,,,,53cca285-682a-474f-b563-284ed4d288c1
297
- ,5129491183,,,,,,,,Gold Rush Army of Austin,Emmanuel,Salgado,[email protected],Austin,TX,United States,Midway Field House,2015 E Riverside Dr,180.0,https://www.facebook.com/GoldRushArmyofAustin,,,,,,8dc91968-9d5b-4e1e-82e1-507f51b67802
298
- ,(951) 867-0172,,,,,,,,niner alley,pedro,ambriz,[email protected],MORENO VALLEY,CA,United States,papa joes sports bar,12220 frederick ave,25.0,,,,,,,dacdda72-9a15-437c-8b69-7c0cb67998e5
299
- ,(413)361-9818,,,,,,,,413 Spartans,Ricky Pnut,Ruiz,[email protected],Chicopee,MA,United States,Bullseye,Bullseye,17.0,,,,,,,60e842f0-2b00-4259-8690-865ea9639ab7
300
- ,503-550-9738,,,,,,,,Clementine's Faithful,Paula,Hylland,[email protected],Portland,OR,United States,The Mule Bar,4915 NE Fremont Street,10.0,,,,,,,d9b5a320-d95a-49aa-8d11-acd754db9f39
301
- ,5852592796,,,,,,,,585faithful,patterson,,[email protected],dansville,NY,United States,dansville ny,108 main st,1.0,,,,,,,0662b3d3-db2f-4818-a674-b8e4d170eb82
302
- ,5599203535,,,,,,,,Niner Empire Cen Cal 559,Pauline,Castro,[email protected],PORTERVILLE,CA,United States,BRICKHOUSE BAR AND GRILL,152 North Hockett Street,30.0,,,,,,,b356b411-38e4-468d-881e-976464116bb1
303
- ,9254514477,,,,,,,,Booze & Niner Football,Mike,Parker,[email protected],Solana Beach,CA,United States,Saddle Bar,123 W Plaza St,10.0,,,,,,,f7aa0747-360e-4661-9393-14a6c6969517
304
- ,6262024448,,,,,,,,Westside Niners Nation,Leo,Gonzalez,[email protected],Culver City,CA,United States,Buffalo Wings and Pizza,5571 Sepulveda Blvd.,16.0,,,,,,,2f4b05d8-d3ec-4afb-a854-d7818899afe4
305
- ,5203719925,,,,,,,,Pinal county niner empire,Emilio,Bustos,[email protected],Casa grande,Arizona(AZ),United States,Liquor factory bar and deli,930 E Florence,30.0,,,,,,,3dda0bcb-6039-4f6e-91a7-5f010e930e8f
306
- ,4252561925,,,,,,,,"Prescott, AZ 49ers faithful",Pam,Marquardt,[email protected],Prescott,AZ,United States,Prescott Office Resturant,128 N. Cortez St.,28.0,,,,,,,fd20c2d2-5ad3-41bf-8882-1f2f4d7872ac
307
- ,8082585120,,,,,,,,San Francisco 49'ers Hawaii Fan Club,Randy,Miyamoto,[email protected],Honolulu,Hawaii,United States,To be determined,To be determined,50.0,,,,,,,b5a5dfe5-4015-439f-954b-8af9b2be2a09
308
- ,(503) 544-3640,,,,,,,,Niner Empire Portland,Pedro,Urzua,[email protected],Portland,OR,United States,KingPins Portland,3550 SE 92nd ave,100.0,,,,,,,45249454-edef-4d93-a5d2-f6f14e123707
309
- ,9253054704,,,,,,,,QueensandKings Bay Area Empire Chapter,Queen,,[email protected],Antioch,Ca,United States,Tailgaters,4605 Golf Course Rd,15.0,,,,,,,ed28bf67-9fa8-4583-b4bd-a4beaefdd3cb
310
- ,4086671847,,,,,,,,Club 49 Tailgate Crew,Alex,Chavez,[email protected],Pleasanton,California,United States,Sunshine Saloon Sports Bar,1807 Santa Rita Rd #K,15.0,,,,,,,d2991982-2da9-48d1-978b-665a9cd38eb3
311
- ,6465429352,,,,,,,,49ers Nyc Chapter,Miguel,Ramirez,[email protected],New York,New York,United States,Off the Wagon,"109 Macdougal St,",35.0,https://www.facebook.com/niner.nychapter,,,,,,5919ac0b-7804-4390-8881-46f2f30c33cd
312
- ,5093076839,,,,,,,,"49er faithfuls Yakima,Wa",Olivia,Salazar,[email protected],Yakima,Wa,United States,TheEndzone,1023 N 1st,35.0,,,,,,,e588d2c2-b68f-4d33-be95-0b72f0a682b2
313
- ,7209080304,,,,,,,,49er's Faithful Aurora Co Chapter,Fito,Cantu',[email protected],Aurora,CO,United States,17307 E Flora Place,17307 E Flora Place,10.0,,,,,,,93f1f74c-134d-456d-8f49-968d930c3ad7
314
- ,5626404112,,,,,,,,49er F8thfuls,Ray,Casper,[email protected],Gardena,Ca,United States,Paradise,889 w 190th,50.0,,,,,,,12515d58-5699-416d-8ab9-627632f46e65
315
- ,562-322-8833,,,,,,,,westside9ers,Ray,Casper,[email protected],Downey,CA,United States,Bar Louie,8860 Apollo Way,75.0,,,,,,,937ec6b6-ce55-4b49-b5c5-7602b8a81220
316
- ,8609951926,,,,,,,,Spartan 9er Empire Connecticut,Raymond,Dogans,[email protected],EastHartford,CO,United States,Red Room,1543 Main St,20.0,,,,,,,6f9118c5-41aa-47dc-8e6c-8da98577521c
317
- ,6786322673,,,,,,,,Red & Gold Empire,Stephen,Box,[email protected],Sandy Springs,GA,United States,Hudson Grille Sandy Springs,6317 Roswell Rd NE,25.0,https://www.facebook.com/RGEmpire,,,,,,71687e97-c1cc-4dd0-8c2c-5bee50ab8b80
318
- ,7755606361,,,,,,,,RENO NINEREMPIRE,Walter,Gudiel,[email protected],Reno,Nv,United States,Semenza's Pizzeria,4380 Neil rd.,35.0,,,,,,,7df1ce76-3403-42ff-9a89-99d9650e53f4
319
- ,6502711535,,,,,,,,650 Niner Empire peninsula chapter,Jose,Reyes Raquel Ortiz,[email protected],South San Francisco,Ca,United States,7mile house or standby,1201 bayshore blvd,27.0,,,,,,,191351af-67f4-4f93-bc84-06a57f61ad5e
320
- ,6508346624,,,,,,,,Spartan Niner Empire California,Jose,Reyes,[email protected],Colma,CA,United States,Molloys Tavern,Molloys tavern,19.0,,,,,,,604f8e2e-8859-4c5e-bb15-bee673282554
321
- ,(951) 390-6832,,,,,,,,Riverside county TEF (Thee Empire Faithful),Sean,Flynn,[email protected],Winchester,CA,United States,Pizza factory,30676 Bentod Rd,20.0,,,,,,,01d43858-67f3-4c95-b6ca-81a75b33a75c
322
- ,9098153880,,,,,,,,Riverside 49ers Booster Club,Gus,Esmerio,[email protected],Riverside,California,United States,Lake Alice Trading Co Saloon &Eatery,3616 University Ave,20.0,,,,,,,de7e2c76-771b-4042-8a27-29070b65022a
323
- ,5156643526,,,,,,,,49ers Strong Iowa - Des Moines Chapter,Rob,Boehringer,[email protected],Ankeny,IA,United States,Benchwarmers,705 S Ankeny Blvd,8.0,,,,,,,011a93a0-8166-4f24-9bb0-613fb7084acf
324
- ,6159537124,,,,,,,,Mid South Niner Nation,Tyrone,Taylor,[email protected],Nashville,TN,United States,Kay Bob's,1602 21st Ave S,12.0,,,,,,,34488741-278c-4e4f-8bf0-ac45936f4fb4
325
- ,8165898717,,,,,,,,Kansas City 49ers Faithful,Ronnie,Tilman,[email protected],Leavenworth,KS,United States,"Fox and hound. 10428 metcalf Ave. Overland Park, ks",22425,245.0,,,,,,,46e02390-6910-4f24-8281-a327e5472f73
326
- ,9169965326,,,,,,,,49er Booster Club Carmichael Ca,Ramona,Hall,[email protected],Fair Oaks,Ca,United States,Fair Oaks,7587 Pineridge Lane,38.0,,,,,,,fe62c40c-2848-4765-8cdc-617cc17abd41
327
- ,2252419900,,,,,,,,Rouge & Gold Niner Empire,Derek,Wells,[email protected],Baton Rouge,LA,United States,Sporting News Grill,4848 Constitution Avenue,32.0,,,,,,,5e0fc4de-fee1-427e-97bd-288052de961e
328
- ,5592029388,,,,,,,,Niner Empire Tulare County,Rita,Murillo,[email protected],Visalia,Ca,United States,5th Quarter,3360 S. Fairway,25.0,,,,,,,e3933806-db81-4f2d-8886-8662f020919b
329
- ,3234403129,,,,,,,,Mile High 49ers NOCO Booster Club,Ryan,Fregosi,[email protected],Greeley,co,United States,Old Chicago Greeley,2349 W. 29th St,176.0,http://www.facebook.com/milehigh49ersnocoboosterclub,,,,,,23166e6c-bf72-4fc7-910e-db0904350dbb
330
- ,4086220996,,,,,,,,NINERFANS.COM,Ryan,Sakamoto,[email protected],Cupertino,California,United States,Islands Bar And Grill (Cupertino),20750 Stevens Creek Blvd.,22.0,,,,,,,5df15f36-f0c3-4279-b2f1-4bbb6eb6342c
331
- ,6198203631,,,,,,,,San Diego Gold Rush,Robert,Zubiate,[email protected],San Diego,CA,United States,Bootleggers,804 market st.,20.0,,,,,,,d08f2811-4f8c-4db3-af53-defe5fe3b9cf
332
- ,6026264006,,,,,,,,East Valley Niner Empire,Selvin,Cardona,[email protected],Apache Junction,AZ,United States,Tumbleweed Bar & Grill,725 W Apache Trail,30.0,,,,,,,24aa550b-d105-4fcd-963a-57d0ccb3d0d4
333
- ,7076949476,,,,,,,,Santa Rosa Niner Empire,Joaquin,Kingo Saucedo,[email protected],Windsor,CA,United States,Santa Rosa,140 3rd St,15.0,,,,,,,4e074598-e19e-411f-b497-27544616e7aa
334
- ,3305180874,,,,,,,,Youngstown Faithful,Scott,West,[email protected],Canfield,OH,United States,The Cave,369 Timber Run Drive,10.0,,,,,,,e6d2eca5-915f-4875-a9c7-99c3fe33e44d
335
- ,6502469641,,,,,,,,Seattle Niners Faithful,Brittany,Carpenter,[email protected],Everett,WA,United States,Great American Casino,12715 4th Ave W,300.0,,,,,,,d0f56140-45f2-4009-8b4e-aa50ea8c177a
336
- ,9194511624,,,,,,,,"San Francisco 49ers Faithful - Greater Triangle Area, NC",Lora,Edgar,[email protected],Durham,North Carolina,United States,Tobacco Road Sports Cafe,280 S. Mangum St. #100,24.0,https://www.facebook.com/groups/474297662683684/,,,,,,9384f475-5183-4a60-bfc5-53102d9f4d56
337
- ,5103948854,,,,,,,,South Florida Gold Blooded Empire,Michelle,"""""Meme"""" Jackson",[email protected],Boynton Beach,Florida,United States,Miller's Ale House,2212 N. Congress Avenue,23.0,,,,,,,6ea27b5d-1542-454f-8653-e48fccb7238b
338
- ,5305264764,,,,,,,,Red Rock's Local 49 Club,Shane,Keffer,[email protected],Red Bluff,CA,United States,Tips Bar,501 walnut St.,40.0,,,,,,,fe897059-b023-400b-b94e-7cf3447456c7
339
- ,5098451845,,,,,,,,Columbia Basin Niners Faithful,Christina,Feldman,[email protected],Finley,Washington,United States,Shooters,214711 e SR 397 314711 wa397,30.0,,,,,,,bfabecc2-aeb2-4ce6-85c2-27c2cc044f21
340
- ,(951) 816-8801,,,,,,,,9er Elite,Harmony,Shaw,[email protected],Lake Elsinore,CA,United States,Pins N Pockets,32250 Mission Trail,20.0,,,,,,,7588fda3-69f2-4944-a888-65926beab731
341
- ,6093396596,,,,,,,,Shore Faithful,Edward,Griffin Jr,[email protected],Barnegat,NJ,United States,603 East Bay Ave Barnegat NJ 08005 - Due to covid 19 we no longer have a meeting location besides my residence. I truly hope this is acceptable - Thank you,603 East Bay Ave,6.0,,,,,,,76e56a22-d4e7-46c5-8d75-7c2a73eac973
342
- ,5054708144,,,,,,,,Santa Fe Faithfuls,Anthony,Apodaca,[email protected],Santa Fe,New Mexico,United States,Blue Corn Brewery,4056 Cerrilos Rd.,10.0,,,,,,,13506992-672a-4788-abd2-1461816063e4
343
- ,5204147239,,,,,,,,Sonoran Desert Niner Empire,Derek,Yubeta,[email protected],Maricopa,AZ,United States,Cold beers and cheeseburgers,20350 N John Wayne Pkwy,48.0,,,,,,,b7615efb-5b5f-4732-9f7c-c7c9f00e3fd9
344
- ,3054953136,,,,,,,,9549ERS faithful,Nelson,Tobar,[email protected],Davie,FL,United States,Twin peaks,Twin peaks,30.0,,,,,,,5bf41a27-5bd1-45eb-8bdf-816832371efc
345
- ,8062929172,,,,,,,,806 Niner Empire West Texas Chapter,Joe,Frank Rodriquez,[email protected],Lubbock,Texas,United States,Buffalo Wild Wings,6320 19th st,20.0,,,,,,,3d691991-bcac-4354-95c4-e73998e5abe7
346
- ,8082283453,,,,,,,,Ohana Niner Empire,Nathan,Sterling,[email protected],Honolulu,HI,United States,TBD,1234 TBD,20.0,,,,,,,09f575e9-9f5d-41ca-998f-bfa72a693b1a
347
- ,9167470720,,,,,,,,Westside Portland 49er Fan Club,Steven,Englund,[email protected],Portland,OR,United States,The Cheerful Tortoise,1939 SW 6th Ave,20.0,,,,,,,6a75b28a-db14-4422-90ca-84c6624d6f44
348
- ,7542235678,,,,,,,,49ersGold,Tim,OCONNELL,[email protected],Oakland Park,FL,United States,stout bar and grill,Stout Bar and Grill,12.0,,,,,,,b49d9c5d-2d71-40d7-8f15-e83e4eb10a48
349
- ,2096409543,,,,,,,,4T9 MOB TRACY FAMILY,Jenese,Borges Soto,[email protected],Tracy,Ca,United States,Buffalo wild wings,2796 Naglee road,20.0,,,,,,,faf65b89-6f63-4e09-b90e-fb6d570845e8
350
- ,5413015005,,,,,,,,Niner Empire Southern Oregon Chapter,Susana,Perez,[email protected],medford,or,United States,imperial event center,41 north Front Street,15.0,,,,,,,e96fb986-f0bb-43aa-a992-f84eea493308
351
- ,(530) 315-9467,,,,,,,,SacFaithful,Gregory,Mcconkey,[email protected],Cameron park,CA,United States,Presidents home,3266 Cimmarron rd,20.0,,,,,,,47219f6e-b0c2-4dd4-9af6-935f2f731228
352
- ,9374189628,,,,,,,,Niner Faithful Of Southern Ohio,Tara,Farrell,[email protected],piqua,OH,United States,My House,410 Camp St,10.0,,,,,,,858b5895-efd8-4ea4-9a11-e852dc4e8e89
353
- ,7609783736,,,,,,,,NinerGangFaithfuls,Andrew,Siliga,[email protected],Oceanside,ca,United States,my house,4020 Thomas st,20.0,,,,,,,9471e78e-099c-46b1-87da-4d8f71d8e7c3
354
- ,6099544424,,,,,,,,Jersey 49ers riders,terry,jackson,[email protected],Trenton,New Jersey,United States,sticky wecket,2465 S.broad st,30.0,,,,,,,d9f16b96-42fe-4712-a4a4-10d700b7e4bc
355
- ,(703) 401-0212,,,,,,,,Life Free or Die Faithfuls,Thang,Vo,[email protected],Concord,NH,United States,Buffalo Wild Wings,8 Loudon Rd,3.0,https://www.facebook.com/groups/876812822713709/,,,,,,fe144e07-945e-4c66-a148-781275800599
356
- ,3105929214,,,,,,,,The 909 Niner Faithfuls,Joe,Del Rio,[email protected],Fontana,Ca,United States,Boston's Sports Bar and Grill,16927 Sierra Lakes Pkwy.,30.0,http://www.facebook.com/The909NinerFaithfuls,,,,,,5a3edf14-ae01-4654-b562-669cf1ed8ddf
357
- ,6264459623,,,,,,,,Arcadia Chapter,Allyson,Martin,[email protected],Arcadia,CA,United States,4167 e live oak Ave,4167 e live oak Ave,25.0,,,,,,,429e6376-361c-46fb-88f2-459de5eaec25
358
- ,5592897293,,,,,,,,Thee Empire Faithful,Joe,Rocha,[email protected],Fresno,California,United States,Buffalo Wild Wings,3065 E Shaw Ave,50.0,,,,,,,d09046d4-bdfa-41b1-ab4b-b0b159f555bb
359
- ,5412063142,,,,,,,,The Oregon Faithful,Jeff,Sutton,[email protected],Eugene,OR,United States,The Side Bar,Side Bar,12.0,,,oregonfaithful on Twitter,,,,8848f4d4-58ab-47ae-8f91-11c5947b2501
360
- ,9082475788,,,,,,,,The ORIGINAL Niner Empire-New Jersey Chapter,Charlie,Murphy,[email protected],Linden,NJ,United States,Nuno's Pavilion,300 Roselle ave,35.0,,,,,,,1ec79271-8c21-4966-8bae-d0ca12e84974
361
- ,5852788246,,,,,,,,What a Rush (gold),Paul,Smith,[email protected],Rochester,NY,United States,The Scotch House Pub,373 south Goodman street,15.0,,,,,,,0260e343-0aaf-47a5-9a99-ae53cb3c2747
362
- ,9519029955,,,,,,,,Moreno Valley 49er Empire,Tibor,Belt,[email protected],Moreno Vallay,CA,United States,S Bar and Grill,23579 Sunnymead Ranch Pkwy,15.0,https://www.facebook.com/pages/Moreno-Valley-49er-Empire/220528134738022,,,,,,278e71b3-2e69-4ee2-a7a3-9f78fee839ea
363
- ,14054370161,,,,,,,,"The Niner Empire, 405 Faithfuls, Oklahoma City",Maria,Ward,[email protected],Oklahoma city,OK,United States,Hooters NW Expressway OKC,3025 NW EXPRESSWAY,25.0,https://www.facebook.com/share/g/4RVmqumg1MQNtMSi/?mibextid=K35XfP,,,,,,09f9160d-e91c-472b-aee9-251881a2d1e6
364
- ,7072971945,,,,,,,,707 EMPIRE VALLEY,Tony,Ruiz,[email protected],napa,California,United States,Ruiz Home,696a stonehouse drive,10.0,,,,,,,fcd8cd95-35da-4d85-82db-40fcd48929ec
365
- ,208-964-2981,,,,,,,,Treasure Valley 49er Faithful,Curt,Starz,[email protected],Star,ID,United States,The Beer Guys Saloon,10937 W. State Street,100.0,https://www.facebook.com/TV49erFaithful,,,,,,dd93b349-8a58-4ae5-8ffc-4be1d7d8e146
366
- ,(804) 313-1137,,,,,,,,Hampton Roads Niner Empire,Nick,Farmer,[email protected],Newport news,VA,United States,Boathouse Live,11800 Merchants Walk #100,300.0,https://m.facebook.com/groups/441340355910833?ref=bookmarks,,,,,,e1caa71e-07e4-4d99-9c2d-e12064b1af58
367
- ,(971) 218-4734,,,,,,,,Niner Empire Salem,Timothy,Stevens,[email protected],Salem,OR,United States,AMF Firebird Lanes,4303 Center St NE,218.0,,,,,,,794f2ed1-b82f-4fb8-9bd4-fa69c4e9695d
368
- ,3234590567,,,,,,,,Forty Niners LA chapter,Tony,,[email protected],Bell,Ca,United States,Krazy Wings,7016 Atlantic Blvd,15.0,,,,,,,790c095e-49b2-4d58-9e8c-559d77a6b931
369
- ,(318) 268-9657,,,,,,,,Red River Niner Empire,Tyra,Kinsey,[email protected],Bossier City,LA,United States,Walk On's Bossier City,3010 Airline Dr,15.0,www.facebook.com/RedRiverNinerEmpire,,,,,,c8ffeb37-4dce-4610-bea3-1e848b34c034
370
- ,3058965471,,,,,,,,Ultimate 49er Empire,Nadieshda,Nadie Lizabe,[email protected],Pembroke pines,Florida,United States,Pines alehouse,11795 pine island blvd,14.0,,,,,,,82cd3ac8-2db0-493f-beff-5db479afe620
371
- ,8014140109,,,,,,,,Utah Niner Empire,Travis,Vallejo,[email protected],Salt Lake City,UT,United States,Legends Sports Pub,677 South 200 West,25.0,https://www.facebook.com/UtahNinerEmpire,,,,,,ba6c55f2-b95f-4c01-898b-327010c965c0
372
- ,(480) 493-9526,,,,,,,,Phoenix602Faithful,Vincent,Price,[email protected],Phoenix,AZ,United States,Galaghers,3220 E Baseline Rd,20.0,,,,,,,57ba8002-3c69-43da-8c14-9bfa47eab4d2
373
- ,3108979404,,,,,,,,WESTSIDE 9ERS,Naimah,Williams,[email protected],Carson,CA,United States,Buffalo Wild Wings,736 E Del Amo Blvd,20.0,,,,,,,8bcc18e7-f352-486d-93ca-535eafd7b0b3
374
- ,4696009701,,,,,,,,Addison Point 49ner's Fans,William,Kuhn,[email protected],Addison,Texas,United States,Addison Point Sports Grill,4578 Beltline Road,288.0,,,,,,,f09252d6-3449-4028-9039-9bc5c617606d
375
- ,3605679487,,,,,,,,49er Forever Faithfuls,Wayne,Yelloweyes-Ripoyla,[email protected],Vancouver,Wa,United States,Hooligans bar and grill,"8220 NE Vancouver Plaza Dr, Vancouver, WA 98662",11.0,,,,,,,78995f96-9862-40e7-9286-680115ec4afa
376
- ,5309086004,,,,,,,,Woodland Faithful,Oscar,Ruiz,[email protected],Woodland,CA,United States,Mountain Mikes Pizza,171 W. Main St,30.0,,,,,,,06036f2c-3694-4d8c-a275-2f201ae299d2
377
- ,3159448662,,,,,,,,Niner Empire Central New York,Michal,,[email protected],Cicero,New York,United States,Tully's Good Times,7838 Brewerton Rd,6.0,,,,,,,0a6d4071-14d2-4297-aee8-fe0706cb4cf6
378
- ,(970) 442-1932,,,,,,,,4 Corners Faithful,Anthony,Green,[email protected],Durango,CO,United States,Sporting News Grill,21636 Highway 160,10.0,https://www.facebook.com/groups/363488474141493/,,,,,,caacd0f1-bf97-40b2-bcb0-f329c33b3946
379
- ,(480) 708-0838,,,,,,,,480 Gilbert Niner Empire,Elle,Lopez,[email protected],Gilbert,AZ,United States,Panda Libre,748 N Gilbert Rd,30.0,,,,,,,832beeda-9378-4e28-8f27-25f275214e63
380
- ,(331) 387-0752,,,,,,,,Niner Empire Jalisco 49ers Guadalajara,Sergio,Hernandez,[email protected],Guadalajara,TX,United States,Bar Cheleros,Bar CHELEROS,190.0,https://www.facebook.com/NinerEmpireJalisco49ersGuadalajara/?modal=admin_todo_tour,,,,,,7af32566-8905-4685-8cda-46c53238a9ce
381
- ,3045457327,,,,,,,,49ERS Faithful of West Virginia,Zachary,Meadows,[email protected],Charleston,WV,United States,The Pitch,5711 MacCorkle Ave SE,12.0,,,,,,,24bdc01c-258e-481a-902d-c134a12917b7
382
- ,2016971994,,,,,,,,49 Migos Chapter,Manny,Duarte,[email protected],Saddle Brook,NJ,United States,Midland Brewhouse,374 N Midland Ave,10.0,,,,,,,f0202075-a64b-47e6-bddb-ef41452ab80d
383
- ,408-892-5315,,,,,,,,49ers Bay Area Faithful Social Club,Sarah,Wallace,[email protected],Sunnyvale,CA,United States,Giovanni's New York Pizzeria,1127 Lawrence Expy,65.0,,,,,,,4b00c24d-c714-4727-bc8a-c2a9f81392e1
384
- ,5404245114,,,,,,,,Niner Empire Of Indy,Jay,Balthrop,[email protected],Indianapolis,IN,United States,The Bulldog Bar and Lounge,5380 N College Ave,30.0,,,,,,,d225d3bf-a3ff-46b0-a33c-85d1287c1495
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/fans.csv DELETED
The diff for this file is too large to render. See raw diff
 
data/niners_output/load_embeddings.cypher DELETED
@@ -1,13 +0,0 @@
1
- // Load game summary embeddings into Neo4j
2
- // This script adds embeddings as vector properties to Game nodes
3
-
4
- LOAD CSV WITH HEADERS
5
- FROM 'file:///game_summary_embeddings.csv'
6
- AS row
7
- MATCH (g:Game {game_id: row.game_id})
8
- WITH g, row,
9
- [x in keys(row) WHERE x STARTS WITH 'dim_'] AS embedding_keys
10
- WITH g, row,
11
- [x in embedding_keys | toFloat(row[x])] AS embedding_vector
12
- CALL db.create.setNodeVectorProperty(g, 'summaryEmbedding', embedding_vector)
13
- RETURN count(*) as UpdatedGames
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/roster.csv DELETED
@@ -1,74 +0,0 @@
1
- Player,Number,Pos,HT,WT,Age,Exp,College,status,player_id
2
- Israel Abanikanda,20,RB,5-10,216,22,2,Pittsburgh,Active,c1f595b7-9043-4569-9ff6-97e0f31a5ba5
3
- Brandon Allen,17,QB,6-2,209,32,8,Arkansas,Active,86f109ac-c967-4c17-af5c-97395270c489
4
- Evan Anderson,69,DL,6-3,326,23,R,Florida Atlantic,Active,7774475d-ab11-4247-a631-9c7d29ba9745
5
- Tre Avery,36,CB,5-11,181,28,3,Rutgers,Active,59e3afa0-cb40-4f8e-9052-88b9af20e074
6
- Robert Beal Jr.,51,DL,6-4,250,25,2,Georgia,Active,dcecbaa2-2803-4716-a729-45e1c80d6ab8
7
- Tatum Bethune,48,LB,6-0,299,24,R,Florida State,Active,f51beff4-e90c-4b73-9253-8699c46a94ff
8
- Nick Bosa,97,DL,6-4,266,27,6,Ohio State,Active,9cf4b059-d05c-4d22-9ca3-c5aee41ebfdc
9
- Jake Brendel,64,OL,6-4,299,32,7,UCLA,Active,b7c1b4e2-4d9c-47cc-8ac2-b6e0d2493157
10
- Ji'Ayir Brown,27,S,5-11,202,25,2,Penn State,Active,e5950f0d-0d24-4e2f-b96a-36ebedb604a9
11
- Chris Conley,18,WR,6-3,205,32,10,Georgia,Active,f35d154a-0a53-476e-b0c2-49ae5d33b7eb
12
- Jacob Cowing,19,WR,5-9,171,24,R,Arizona,Active,564daa89-38f8-4c8a-8760-de1923f9a681
13
- Kalia Davis,93,DL,6-2,310,26,3,Central Florida,Active,9ecde51b-8b49-40a3-ba42-e8c5787c279c
14
- Khalil Davis,50,DL,6-2,315,28,4,Nebraska,Active,5162b93a-4f44-45fd-8d6b-f5714f4c7e91
15
- Joshua Dobbs,5,QB,6-3,220,30,8,Tennessee,Active,44b1d8d5-663c-485b-94d3-c72540441aa0
16
- Jordan Elliott,92,DL,6-4,303,27,5,Missouri,Active,f037f86a-6952-49a5-b6d3-6ce43b8e1d3d
17
- Luke Farrell,89,TE,6-5,250,27,4,Ohio State,Active,ba2cf281-cffa-4de5-9db9-2109331e455d
18
- Tashaun Gipson Sr.,43,S,6-1,212,34,13,Wyoming,Active,14026aa2-5f8c-45bf-9b92-0971d92127e6
19
- Jalen Graham,41,LB,6-3,220,25,2,Purdue,Active,00d1db69-8b43-4d34-bbf8-17d4f00a8b71
20
- Richie Grant,27,S,6-0,200,27,4,UCF,Active,c737a041-c713-43f6-8205-f409b349e2b6
21
- Renardo Green,0,CB,6-0,186,24,R,Florida State,Active,21d23c5c-28c0-4b66-8d17-2f5c76de48ed
22
- Yetur Gross-Matos,94,DL,6-5,265,27,5,Penn State,Active,cde0a59d-19ab-44c9-ba02-476b0762e4a8
23
- Isaac Guerendo,31,RB,6-0,221,24,R,Louisville,Active,4ca8e082-d358-46bf-af14-9eaab40f4fe9
24
- Charlie Heck,75,OL,6-8,311,28,5,North Carolina,Active,7d809297-6d2f-4515-ab3c-1ce3eb47e7a6
25
- Matt Hennessy,61,OL,6-3,315,27,4,Temple,Active,2f95e3de-03de-4827-a4a7-aaed42817861
26
- Jauan Jennings,15,WR,6-3,212,27,4,Tennessee,Active,16794171-c7a0-4a0e-9790-6ab3b2cd3380
27
- Mac Jones,10,QB,6-3,200,26,4,Alabama,Active,18df1544-69a6-460c-802e-7d262e83111d
28
- George Kittle,85,TE,6-4,250,31,8,Iowa,Active,3fe4cd72-43e3-40ea-8016-abb2b01503c7
29
- Deommodore Lenoir,2,DB,5-10,200,25,4,Oregon,Active,79a00b55-fa24-45d8-a43f-772694b7776d
30
- Nick McCloud,35,CB,6-1,193,26,4,Notre Dame,Active,c3b8f82b-92c0-4a5d-85ef-7ddaec7d3a87
31
- Colton McKivitz,68,OL,6-6,301,28,5,West Virginia,Active,63b288c1-4434-4120-867c-cee4dadd8c8a
32
- Jake Moody,4,K,6-1,210,25,2,Michigan,Active,9328e072-e82e-41ef-a132-ed54b649a5ca
33
- Malik Mustapha,6,S,5-10,206,22,R,Wake Forest,Active,6cb2d19f-f0a4-4ece-9190-76345d1abc54
34
- Pat O'Donnell,40,P,6-4,220,34,10,Miami,Active,61a0a607-be7b-429d-b492-59523fad023e
35
- Sam Okuayinonu,91,DL,6-1,269,26,2,Maryland,Active,c81b6283-b1aa-40d6-a825-f01410912435
36
- Ricky Pearsall,14,WR,6-3,192,24,R,Florida,Active,27bf8c9c-7193-4f43-9533-32f1293d1bf0
37
- Jason Pinnock,41,CB,6-0,205,25,4,Pittsburgh,Active,57f29e6b-9082-4637-af4b-0d123ef4542d
38
- Austen Pleasants,62,OT,6-7,328,27,1,Ohio,Active,d000d0a3-a7ba-442d-92af-0d407340aa2f
39
- Dominick Puni,77,OL,6-5,313,25,R,Kansas,Active,aeb5a55c-4554-4116-9de0-76910e66e154
40
- Brock Purdy,13,QB,6-1,220,25,3,Iowa State,Active,787758c9-4e9a-44f2-af68-c58165d0bc03
41
- Demarcus Robinson,14,WR,6-1,203,30,9,Florida,Active,c97d60e5-8c92-4d2e-b782-542ca7aa7799
42
- Eric Saubert,82,TE,6-5,248,30,7,Drake,Active,67214339-8a36-45b9-8b25-439d97b06703
43
- Patrick Taylor Jr.,32,RB,6-2,217,26,4,Memphis,Active,4bf9f546-d80c-4cb4-8692-73d8ac68d1f1
44
- Tre Tomlinson,,CB,5-9,177,25,2,TCU,Active,ad3e3f2e-ee06-4406-8874-ea1921c52328
45
- Jake Tonges,88,TE,6-4,240,25,2,California,Active,ad391cbf-b874-4b1e-905b-2736f2b69332
46
- Fred Warner,54,LB,6-3,230,28,7,Brigham Young,Active,cdd0eadc-19e2-4ca1-bba5-6846c9ac642b
47
- Jon Weeks,46,LS,5-10,245,39,15,Baylor,Active,587c7609-ba56-4d22-b1e6-c12576c428fd
48
- Brayden Willis,9,TE,6-4,240,25,2,Oklahoma,Active,d1b16c10-c5b3-4157-bd9d-7f289f17df81
49
- Dee Winters,53,LB,5-11,227,24,2,TCU,Active,514f3569-5435-48bb-bc74-6b08d3d78ca9
50
- Rock Ya-Sin,33,CB,5-11,195,28,6,Temple,Active,cb00e672-232a-4137-a259-f3cf0382d466
51
- Isaac Yiadom,22,CB,6-1,232,29,7,Boston College,Active,3227c040-7d18-4803-b4b4-799667344a6d
52
- Nick Zakelj,63,OL,6-6,316,25,3,Fordham,Active,59845c40-7efc-4514-9ed6-c29d983fba31
53
- Player,#,Pos,HT,WT,Age,Exp,College,Reserve/Future,724825a5-7a0b-422d-946e-ce9512ad7add
54
- Isaac Alarcon,67,OL,6-7,320,26,1,Tecnológico de Monterrey,Reserve/Future,262ea245-93dc-4c61-aa41-868bc4cc5dcf
55
- Russell Gage,84,WR,6-0,184,29,7,LSU,Reserve/Future,1537733f-8218-4c45-9a0a-e00ff349a9d1
56
- Isaiah Hodgins,87,WR,6-3,200,26,4,Oregon State,Reserve/Future,f4c2cec2-d0b4-45a9-ac1b-478ce1a32b2c
57
- Quindell Johnson,,S,6-2,208,25,2,Memphis,Reserve/Future,7bee6f18-bd56-4920-a132-107c8af22bef
58
- Jalen McKenzie,76,OT,6-5,315,25,1,USC,Reserve/Future,473d4c85-cc2c-4020-9381-c49a7236ad68
59
- Brandon Aiyuk,11,WR,6-0,200,27,5,Arizona State,Reserve/Injured,577eb875-f886-400d-8b14-ec28a2cc5eae
60
- Aaron Banks,65,OL,6-5,325,27,4,Notre Dame,Reserve/Injured,e665afb5-904a-4e86-a6da-1d859cc81f90
61
- Ben Bartch,78,OL,6-6,315,26,5,St. John's (MN),Reserve/Injured,6a1545de-63fd-4c04-bc27-58ba334e7a91
62
- Tre Brown,22,CB,5-10,185,27,4,Oklahoma,Reserve/Injured,839c425d-d9b0-4b60-8c68-80d14ae382f7
63
- Spencer Burford,74,OL,6-4,300,24,3,Texas-San Antonio,Reserve/Injured,31da633a-a7f1-4ec4-a715-b04bb85e0b5f
64
- Luke Gifford,57,LB,6-3,243,29,6,Nebraska,Reserve/Injured,069b6392-804b-4fcb-8654-d67afad1fd91
65
- Kevin Givens,90,DL,6-1,285,28,5,Penn State,Reserve/Injured,a9f79e66-ff50-49eb-ae50-c442d23955fc
66
- Darrell Luter Jr.,28,CB,6-0,190,24,2,South Alabama,Reserve/Injured,741c6fa0-0254-4f85-9066-6d46fcc1026e
67
- Jordan Mason,24,RB,5-11,223,25,3,Georgia Tech,Reserve/Injured,89531f13-baf0-43d6-b9f4-42a95482753a
68
- Christian McCaffrey,23,RB,5-11,210,28,8,Stanford,Reserve/Injured,052ec36c-e430-4698-9270-d925fe5bcaf4
69
- Elijah Mitchell,25,RB,5-10,200,26,4,Louisiana,Reserve/Injured,7dfc6f25-07a8-4618-954b-b9dd96cee86e
70
- Jaylon Moore,76,OL,6-4,311,27,4,Western Michigan,Reserve/Injured,c800d89e-031f-4180-b824-8fd307cf6d2b
71
- George Odum,30,S,6-1,202,31,7,Central Arkansas,Reserve/Injured,26e72658-4503-47c4-ad74-628545e2402a
72
- Curtis Robinson,36,LB,6-3,235,26,3,Stanford,Reserve/Injured,072a3483-b063-48fd-bc9c-5faa9b845425
73
- Trent Williams,71,T,6-5,320,36,15,Oklahoma,Reserve/Injured,bb8b42ad-6042-40cd-b08c-2dc3a5cfc737
74
- Mitch Wishnowsky,3,P,6-2,220,33,6,Utah,Reserve/Injured,fe86f2c6-8576-4e77-b1df-a3df995eccf8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/schedule.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,HomeTeam,AwayTeam,Result,game_result,game_id
2
- 1,1,10/09/2024 00:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,7d5492b7-6372-4ab6-b878-a6ad10936f3b
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,9c37ef4a-8887-4e16-a0e9-53dd21d0ed1c
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,b8c3e7f7-81ed-48c4-9a49-0897cac450e5
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,b4b49323-c84d-4414-bbd4-de399145db28
6
- 70,5,06/10/2024 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,efe67377-f218-4629-94d6-b0a28dae81b4
7
- 92,6,11/10/2024 00:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,be924e35-6c00-470a-a82e-f77e89f2fca9
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,c0efcedb-e8a0-4058-8ae8-df418a829c22
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,9d3c8085-3864-4c86-9a47-6d91f9561e68
10
- 149,10,10/11/2024 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,8c117905-4d53-4bfb-a85e-d4d0a52262a8
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,6ee0f83e-d738-43c7-95e2-472bdaa9c2e8
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,89aeb6ec-c102-442f-a2b2-862a58f08c72
13
- 181,13,02/12/2024 01:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,051a9bbd-41b1-4946-b366-2202b9b84646
14
- 199,14,08/12/2024 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,2bfc3060-5975-4c60-8cf2-cd359c318bcb
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,07182afe-36bf-44e4-a464-52a56e9e325d
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,0be9a14c-0017-46b8-96e8-7c446e78ea84
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,a6af1ef1-eece-43c2-b98f-c20494003cfe
18
- 257,18,05/01/2025 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,2c95b37b-b32d-4b30-a582-f04b8cbf12e4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/niners_output/schedule_with_result.csv DELETED
@@ -1,18 +0,0 @@
1
- Match Number,Round Number,Date,Location,HomeTeam,AwayTeam,Result,game_result,game_id,Summary
2
- 1,1,10/9/24 0:15,Levi's Stadium,San Francisco 49ers,New York Jets,32 - 19,Win,7d5492b7-6372-4ab6-b878-a6ad10936f3b,"Quarterback Brock Purdy threw for 231 yards, with running back Jordan Mason rushing for 147 yards."
3
- 28,2,15/09/2024 17:00,U.S. Bank Stadium,Minnesota Vikings,San Francisco 49ers,23 - 17,Loss,9c37ef4a-8887-4e16-a0e9-53dd21d0ed1c,"Purdy passed for 319 yards; Mason added 100 rushing yards, but the 49ers fell short."
4
- 38,3,22/09/2024 20:25,SoFi Stadium,Los Angeles Rams,San Francisco 49ers,27 - 24,Loss,b8c3e7f7-81ed-48c4-9a49-0897cac450e5,Purdy threw for 292 yards; Jauan Jennings had 175 receiving yards in a close loss.
5
- 55,4,29/09/2024 20:05,Levi's Stadium,San Francisco 49ers,New England Patriots,30 - 13,Win,b4b49323-c84d-4414-bbd4-de399145db28,Brock Purdy threw for 288 yards and a touchdown; Fred Warner returned an interception for a touchdown.
6
- 70,5,6/10/24 20:05,Levi's Stadium,San Francisco 49ers,Arizona Cardinals,23 - 24,Loss,efe67377-f218-4629-94d6-b0a28dae81b4,"Kyler Murray led a comeback, including a 50-yard touchdown run; Chad Ryland kicked the game-winning field goal."
7
- 92,6,11/10/24 0:15,Lumen Field,Seattle Seahawks,San Francisco 49ers,24 - 36,Win,be924e35-6c00-470a-a82e-f77e89f2fca9,Geno Smith's late 13-yard touchdown run secured the Seahawks' victory.
8
- 96,7,20/10/2024 20:25,Levi's Stadium,San Francisco 49ers,Kansas City Chiefs,18 - 28,Loss,c0efcedb-e8a0-4058-8ae8-df418a829c22,Specific game details are not available.
9
- 109,8,28/10/2024 00:20,Levi's Stadium,San Francisco 49ers,Dallas Cowboys,30 - 24,Win,9d3c8085-3864-4c86-9a47-6d91f9561e68,Specific game details are not available.
10
- 149,10,10/11/24 18:00,Raymond James Stadium,Tampa Bay Buccaneers,San Francisco 49ers,20 - 23,Win,8c117905-4d53-4bfb-a85e-d4d0a52262a8,"The 49ers narrowly avoided a collapse, with Jake Moody's game-winning field goal."
11
- 158,11,17/11/2024 21:05,Levi's Stadium,San Francisco 49ers,Seattle Seahawks,17 - 20,Loss,6ee0f83e-d738-43c7-95e2-472bdaa9c2e8,Geno Smith's last-minute touchdown run ended the Seahawks' losing streak against the 49ers.
12
- 169,12,24/11/2024 21:25,Lambeau Field,Green Bay Packers,San Francisco 49ers,38 - 10,Loss,89aeb6ec-c102-442f-a2b2-862a58f08c72,"Despite losing Deebo Samuel early, the 49ers secured a narrow victory."
13
- 181,13,2/12/24 1:20,Highmark Stadium,Buffalo Bills,San Francisco 49ers,35 - 10,Loss,051a9bbd-41b1-4946-b366-2202b9b84646,"Josh Allen scored touchdowns passing, rushing, and receiving, leading the Bills to victory."
14
- 199,14,8/12/24 21:25,Levi's Stadium,San Francisco 49ers,Chicago Bears,38 - 13,Win,2bfc3060-5975-4c60-8cf2-cd359c318bcb,Specific game details are not available.
15
- 224,15,13/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Los Angeles Rams,6 - 12,Loss,07182afe-36bf-44e4-a464-52a56e9e325d,"In a rainy defensive battle, the Rams secured victory with four field goals."
16
- 228,16,22/12/2024 21:25,Hard Rock Stadium,Miami Dolphins,San Francisco 49ers,29 - 17,Loss,0be9a14c-0017-46b8-96e8-7c446e78ea84,A high-scoring game marked by a scuffle involving Jauan Jennings; the 49ers fell short.
17
- 246,17,31/12/2024 01:15,Levi's Stadium,San Francisco 49ers,Detroit Lions,34 - 40,Loss,a6af1ef1-eece-43c2-b98f-c20494003cfe,Specific game details are not available.
18
- 257,18,5/1/25 21:25,State Farm Stadium,Arizona Cardinals,San Francisco 49ers,47 - 24,Loss,2c95b37b-b32d-4b30-a582-f04b8cbf12e4,Specific game details are not available.